Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 19.08.2009, 08:34  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию

Хм...

Всё это НУЖНО обнулять программно. В начале программы ВСЕ используемые регистры нужно инициализировать.
Да, это сложно - но код не такой уж и большой, не так уж много регистров в АВР.
Хотя сейчас собираюсь переходить на хМеги - вот там виселица, одних только прерываний 122 штуки

А обнулять счетчик юсарта - зачем? Пусть досчитает биты и просто проигнорируем то, что он там принял. Но если надо - обнуляется он выключением/включением RXEN или TXEN. Так же обнуляются остальные счетчики - АЦП ТВИ и др

Так что begun мой вам совет - исправьте программу так, чтоб не нужно было ресетить контроллер. Пусть работает в бесконечном цикле, и в паузах переводите его в SLEEP. Будут вопросы - пишите, поможем, сами тоже когдато начинали)
Реклама:
niXto вне форума  
Непрочитано 19.08.2009, 12:33  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию

Друзья!
Сама плата стоит в разрез телефонной линии и каждый раз хочешь, не хочешь, подвергается коммутаци по питанию.
отсюда и все проблемы. Я бы запитал его параллельно, но тут вопрос энергопотребления.После установки VOD
уже информация при коммутации не стирается и RESET уже трогать не нужно.
Но, конечно ,гораздо привлекательнее поставить контроллер параллельно телефонной линии и так все пощитать.
Но вопрос об низком энергопотреблении ,как я понял, не простой и ,как уже спрашивал , не знаю можно ли его рассмотреть здесь, или это отдельная тема и нужно задать отдельно?
В дабавок ко всему Я от Вас учусь и как быть корректным на форумах, чтобы общение было нормальное.
Еще раз спасибо всем.
begun вне форума  
Непрочитано 19.08.2009, 13:08  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию

Ну давайте по порядку.
Сообщение от niXto
Хм...
Всё это НУЖНО обнулять программно. В начале программы ВСЕ используемые регистры нужно инициализировать.
Да, это сложно - но код не такой уж и большой, не так уж много регистров в АВР.
Хотя сейчас собираюсь переходить на хМеги - вот там виселица, одних только прерываний 122 штуки
Что - "всё"? Память? Да, нужно инициализировать то, что нужно. И это не сложно; это делается естественным образом наряду с инициализацией портов, счётчиков и т.д. Если так уж хочется обнулить память, можно так:
Код:
ldi  Yh,high(RAMEND)
ldi  Yl,low(RAMEND)
clr  r16
cyc:
st   Y,r16
sbiw Y,1
cpi  Yh,high(SRAM_START)        
brne PC+2
cpi  Yl,low(SRAM_START)
brne cyc
Сообщение от niXto
А обнулять счетчик юсарта - зачем? Пусть досчитает биты и просто проигнорируем то, что он там принял. Но если надо - обнуляется он выключением/включением RXEN или TXEN. Так же обнуляются остальные счетчики - АЦП ТВИ и др
Там много чего ещё есть АЦП, SPI, TWI, EEPROM на запись, UART, WatchDog - все они представлены автоматами с памятью, и доступа у программиста к этой памяти нет. Поэтому "пусть досчитает - проигнорируем" неприемлемо - мы не знаем, досчитал он или нормально сосчитал! Так можно пропустить байт или принять искажённый. Поэтому переход на 0 адрес при любых ухищрениях не тождествен ресету. Правильный способ сделать полноценный ресет из программы - использовать watchdog, как уже писали выше.
makakus вне форума  
Непрочитано 19.08.2009, 13:58  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию

Сообщение от makakus
Ну давайте по порядку.
Сообщение от niXto
Хм...
Всё это НУЖНО обнулять программно. В начале программы ВСЕ используемые регистры нужно инициализировать.
Что - "всё"? Память?

Там много чего ещё есть АЦП, SPI, TWI, EEPROM на запись, UART, WatchDog - все они представлены автоматами с памятью, и доступа у программиста к этой памяти нет. Поэтому "пусть досчитает - проигнорируем" неприемлемо - мы не знаем, досчитал он или нормально сосчитал! Так можно пропустить байт или принять искажённый. Поэтому переход на 0 адрес при любых ухищрениях не тождествен ресету. Правильный способ сделать полноценный ресет из программы - использовать watchdog, как уже писали выше.
Во-первых Я нигде не говорил, что надо переходить на 0000. ВСЕ мои программы вертятся в бесконечном цикле и ресет только аппаратный - а после него должно пройти 64мс прежде чем начнется работа по программе. Переходов на 0000 у меня нигде нет.

И если кому интересно - прикрепляю книгу
Евстифеев А.В.
Микроконтроллеры AVR семейств Tiny и Mega фирмы
ATMEL, 5-е изд., стер. — М.: Издательский дом «Додэка-XXI»,
2008. — 560 с.
ISBN 978-5-94120-220-1
Русский перевод АТМЕЛских даташитов, качество исходное, 2,5МБ

Прикрепленный файл: 8967238.pdf
niXto вне форума  
Непрочитано 19.08.2009, 15:41  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию

уважаемый niXto!
не могли бы Вы посаветовать,как можно перевести
микроконтроллер в режиме SLEEP.Я читал в книге Белова и в даташит на Atiny 2313 ,что нужно поставить бит SE
регистра SMCR в единичное состояние, затем выбрать один из возможных режимов с помощью битов SM1 и SM0
регистра MCUCR и далее дать команду SLEEP. Однако я
в списке регистров Atiny2313 не нашел упомянутый регистр и не знаю как в СИ CVAVR дать команду SLEEP.
В другой книге вычитал, что это Асемблерсуая команда.
значит так прямо записать в CVAVR на CИ нельзя.
Так какже войти в режим пониженого энергопотребления
если можно дать пару строчек кода?
Заранее благодарен.
begun вне форума  
Непрочитано 19.08.2009, 15:59  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию

вобщето я на ассемблере пишу
ИМХО под такие мелкие контроллеры (по сравнению хотябы с АРМ) лучше АСМ

А так все верно
niXto вне форума  
Непрочитано 19.08.2009, 16:47  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию

понял,
спасибо.
begun вне форума  
Непрочитано 31.07.2010, 11:35  
apr_
Прохожий
 
Регистрация: 31.07.2010
Сообщений: 2
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
apr_ на пути к лучшему
По умолчанию Re: RESET в AVR

Здравствуйте!

Столкнулся с проблемкой по программному ресету через сторожевой таймер: если контроллер (ATmega164) побывал в режиме сна (powersave), то сторожевой таймер переставал ресетить. Если кому встречался подобный случай, то прошу поделиться опытом.

Спасибо.
apr_ вне форума  
Непрочитано 31.07.2010, 13:52  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: RESET в AVR

Сообщение от apr_ Посмотреть сообщение
Столкнулся с проблемкой по программному ресету через сторожевой таймер: если контроллер (ATmega164) побывал в режиме сна (powersave), то сторожевой таймер переставал ресетить
Что записано в регистр WDTCSR?
При старте регистр MCUSR обнуляется?
Повер-сэйв не использую, но в повер-довне никогда на это не натыкался
niXto вне форума  
Непрочитано 31.07.2010, 15:52  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: RESET в AVR

Сообщение от begun Посмотреть сообщение
сечас этой проблемы нет .
Но нет никакой гаратии что сия проблема не вылезет в будущем ))))))) Зависит от алгоритма сохранения и восстановления.

Сообщение от Halex07 Посмотреть сообщение
Оригинальной решение!!! Только на фига оно надо.
Действительно странно, перегружать контролер после одного из действий по алгоритму.

Сообщение от begun Посмотреть сообщение
Друзья!Сама плата стоит в разрез телефонной линии и каждый раз хочешь, не хочешь, подвергается коммутаци по питанию. отсюда и все проблемы.
Питание комбинированое. Последовательное для основного режима, и паралельное для СЛИП.

В СЛИПЕ жрёт мало, подобрать резистор 100-1000 ком что бы хватало для подержания питания в СЛИП. Просыпатся по появлению питания последовательного.

60В / 1000 000 ОМ = 0,00006 А = 60МКА. А при грамотной схеме и програме, МК в СЛИПЕ потребляет несколько МКА.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 31.07.2010 в 16:02.
picavr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собираем глюки и "подводные камни" AVR и AVR Studi Don_Ambrosio Коллекция глюков 27 14.11.2010 12:24
reset pic16c67 smv2012 Микроконтроллеры, АЦП, память и т.д 3 27.09.2008 17:52
Как BOR-reset в MSP430F2013 sher007 Микроконтроллеры, АЦП, память и т.д 3 24.09.2008 12:56
RESET на AVR 4ubaika Микроконтроллеры, АЦП, память и т.д 5 22.03.2007 18:35
надежность линии RESET на микроконтроллерах AVR korobov_michael Микроконтроллеры, АЦП, память и т.д 5 15.01.2007 13:50


Часовой пояс GMT +4, время: 08:55.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot