AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
03.08.2009, 22:29
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
RESET в AVR
Здравствуйте!
Иквестно, что вывод "RESET" применяктся при программировании и при перегрузке микроконтроллера.
можно ли пользоватся перегрузкой микроконтроллера установкой вывода RESET в нуль часто,щтатно? Не приведет ли это к порче программы или потере информации в EEPROM ?
заранее благодарен.
|
|
|
|
03.08.2009, 23:45
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Одним из источников аппаратного сброса, например в MK AVR, является встроенная схема монитора питания BOD, сброс от которой и призван устранить порчу данных (произвольную перезапись при плавном понижении питания) EEPROM - ПЗУ данных. Вопрос звучал насчет этого? Не путайте с памятью программ.
Вывод делайте сами.
|
|
|
|
04.08.2009, 08:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
RESET можно производить сколько угодно раз, т.к. для ВКЛЮЧЕНИЯ (по умолчанию он отключен) режима программирования после ресета нужно ещё подать специальную команду - очень маловероятно что она сформируется "случайно" наводками и внешними сигналами на ножках. В старых семействах АВР (АТ90S) прошивка слетала в основном только от понижения питания, в новых семействах просто включайте фузами BOD и такое будет просто невозможно. Сколько я работаю с тинями и мегами, такого ещё ни разу не было
|
|
|
|
04.08.2009, 22:18
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Больщое спасибо за разъяснения.
Значит ксли запрограммировать BOD можно сутками держать RESET в "0" ,не боясь ничего ?
|
|
|
|
05.08.2009, 07:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
да
|
|
|
|
05.08.2009, 09:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Несколько не в тему, да MCLR(тот же RESET) ПИКов можно пользовать свободно, в частности как защита от сверх тока в выходе регуляторов моторов. При превышении ПИК ресетится за время меньше 1мкс. Искры летят, одако ничто не горит :P
__________________
Мыслю, следовательно существую
|
|
|
|
05.08.2009, 13:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
только маленькое дополнение.
В РЕСЕТе на ножке SCK контроллера должен быть определенный уровень 0 или 1 без разницы - то есть ножка должна быть подключена к выходу внешнего элемента или подтянута резистором к плюсу или минусу. В режиме РЕСЕТ все ножки переходят в 3-е состояние и SCK без подтяжки будет ловить все наводки
|
|
|
|
05.08.2009, 23:23
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Если так ,то имеет смысл подтянуть внещними резисторами все свободные ножки и особенно MOSI, MISO,
и sck и спокойно можно RESET- ится в любое время.
Считаю что на вопрос получен исчерпающий ответ и по сему тему можно закрыть, принося огромную благодарность
всем участникамю
|
|
|
|
06.08.2009, 05:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Re: RESET в AVR
Сообщение от begun
|
Здравствуйте!
можно ли пользоватся перегрузкой микроконтроллера установкой вывода RESET в нуль часто,щтатно? Не приведет ли это к порче программы или потере информации в EEPROM ?
|
Часто - можно, но если в этот момент у тебя происходила запись в EEPROM, то данные повредятся.
Может, я чего путаю, но при появлении нуля на входе RESET процессор "обнуляется" не дожидаясь окончания записи в EEPROM. Если в этот момент происходила запись в EEPROM, она отменяется, данные в записываемой ячейке теряются (в зависимости от стадии, на которой произошёл сброс).
Это же может произойти при возникновении прерывания во время записи в EEPROM. Поэтому настоятельно рекомендуется запретить все прерывания на момент записи.
Процессор находится в состоянии "сброса" пока на RESET низкий уровень. После появления высокого уровня запускается внутренний таймер по исчетении которого процессор стартует.
Причину сброса (включение, аппаратный сброс, сброс по сторожевому таймеру, сброс при понижении питания или сброс по JTAG) можно впоследствии узнать по состояниям регистров.
|
|
|
|
06.08.2009, 08:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Скорее всего путаете с ПИКами, потому что у всех АВР семейств тини и мега (и может 90) в даташитах написано "If a reset occurs while a write operation is in progress, the write operation will be completed provided that the power supply voltage is sufficient"
" Если сброс происходит, пока операция записи находится в прогрессе, операция записи будет успешно завершена при условии, что напряжение электропитания достаточное"
Поэтому химичить с прерываниями не нужно. В момент записи ядро само тормозит на 4 цикла, дальше делайте программой что угодно, естественно кроме ещё одной записи пока не обнулятся биты BUSY
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:05.
|
|