Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.09.2009, 15:08
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от Gn0me
|
А вот если пальцем водить по ножкам(В том числе и по XTAL1, XTAL2‹ тогда и происходит сбой, думаю в этот момент частота не стабильна.
|
Гых Когда частота нестабильна, контроллер может начать выполнять произвольную инструкцию из произвольного участка памяти, и это описано в даташите.
Так может вы просто охоту на ведьм устраиваете
Попробуйте не записывать бутлоадер - исчезнет ли затирание флэша? Пока не попробуете это все будет на уровне догадок.
|
|
|
|
07.09.2009, 16:00
|
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от alexgap
|
Попробуйте, может поможет.
Но, к примеру, в моем опыте с новыми 8-битными AVR не было случая, когда понадобились бы внешние резисторы на Reset.
|
А Атмеловские апноты рекомендуют не только подтягивающий резистор, но и диод с кондесатором.
А я для критичных к помехом проектах, защиваю меги параллельным программатором(что бы ресета вообще не было).
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
07.09.2009, 16:03
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Мельком прочитал и так не увидел, Gn0me, Вы пробовали внешний pull-up на Reset?
Вы смотрите в DS и видите там внутренний резистор. Вы точно знаете сколько там номинал?
В DS на ATMega8 (первый попавший в руку) написано - 20...100кОм.
Сопротивление участка кожи на пальце будет явно меньше 10кОм, создается делитель напряжения с Кдел ›3, и те +5В "подтяжки" на этой линии спокойно превращаются в нуль! Отсюда и сброс.
Возьмите за правило ставить внешний pull-up на цепь Reset.
PS. Везде ставлю 10кОм и подобных проблем ни разу не возникало.
|
|
|
|
07.09.2009, 16:20
|
|
Вид на жительство
Регистрация: 17.02.2009
Адрес: Закарпатская область
Сообщений: 379
Сказал спасибо: 146
Сказали Спасибо 123 раз(а) в 66 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Тут, похоже, дело не в Reset, ведь топикстартер говорит, что прошивка слетает.
Ну не может резет спалить прошивку, во всяком случае, мне такие примеры неизвестны.
Цитата:
|
условия перехода: подача "0" на один из входов с помощью переключателя
|
Уточните, пожалуйста, этот вход "висит" в воздухе?
__________________
Ты проштудируй-ка
анатомию глаза: откуда тут взяться, как ты говоришь, загадочному взгляду?
|
|
|
|
07.09.2009, 23:11
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от woroba
|
А Атмеловские апноты рекомендуют не только подтягивающий резистор, но и диод с кондесатором.
|
И КР580ГФ24 для тактового генератора. Апноты рекомендуют, ога
Ну а если серьезно, то вот это как раз вредный прием. Он использовался в старых контроллерах и процессорах у которых не было на борту BOD, таких как Z80, AT90XXXXX и т.д.
Вредность состоит в том, что если напряжение питания будет слишком медленно нарастать, то контроллер никогда не сброситься.
Поэтому идеальным вариантом является BOD, который всегда обеспечивает запуск контроллера, при любой скорости нарастания напряжения питания.
|
|
|
|
08.09.2009, 08:17
|
|
Временная регистрация
Регистрация: 15.08.2006
Сообщений: 54
Сказал спасибо: 3
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от mrKirill
|
Мельком прочитал и так не увидел, Gn0me, Вы пробовали внешний pull-up на Reset?
Вы смотрите в DS и видите там внутренний резистор. Вы точно знаете сколько там номинал?
В DS на ATMega8 (первый попавший в руку) написано - 20...100кОм.
Сопротивление участка кожи на пальце будет явно меньше 10кОм, создается делитель напряжения с Кдел ›3, и те +5В "подтяжки" на этой линии спокойно превращаются в нуль! Отсюда и сброс.
Возьмите за правило ставить внешний pull-up на цепь Reset.
PS. Везде ставлю 10кОм и подобных проблем ни разу не возникало.
|
Внешний подтягивающий резистор действительно не пробовал, надо будет попробовать. Но сам резет не страшен для работы устройства.
Сообщение от Shviric
|
Тут, похоже, дело не в Reset, ведь топикстартер говорит, что прошивка слетает.
Ну не может резет спалить прошивку, во всяком случае, мне такие примеры неизвестны.
Уточните, пожалуйста, этот вход "висит" в воздухе?
|
Вывод так же внутренним резистором подтянут к +5 В. И этот вывод находится с другос стороны микросхемы от резета и XTALов. Да и к тому же, если после сброса контроллер начнет выполнять бутлоадер, все равно стирание не должно произойти, т.к. оно происходит только если послать через UART 2 спец символа.
Сообщение от alexgap
|
Гых Когда частота нестабильна, контроллер может начать выполнять произвольную инструкцию из произвольного участка памяти, и это описано в даташите.
Так может вы просто охоту на ведьм устраиваете
Попробуйте не записывать бутлоадер - исчезнет ли затирание флэша? Пока не попробуете это все будет на уровне догадок.
|
Если закоментировать те строки, где непосредственно происходит изменение памяти программ, то с прошивкой все нормально.
После экспериментов с тыканьем пальцев обнаружил, сто стирание как раз происходит если палец подержать на кварцевом резонаторе, т.е. как говорил alexgap "Когда частота нестабильна, контроллер может начать выполнять произвольную инструкцию из произвольного участка памяти"
После некоторых доработок программы контроллер стал работать стабильнее, но все равно прошивка иногда слетает. Основное изменение сосстояло в том, что вход в бутлоадер возможен только при сбросе контроллера и больше к этому участку кода программа никогда не возвращается(если будет работать без сбоев).
Какую бы еще можно реализовать проверку в функции стирания, чтоб определить, что программа вошла сюда штатным способом, а не в результате сбоя?
|
|
|
|
08.09.2009, 09:49
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от Gn0me
|
Какую бы еще можно реализовать проверку в функции стирания, чтоб определить, что программа вошла сюда штатным способом, а не в результате сбоя?
|
1) Проверять целостность записываемых данных перед стиранием. Я, например, всегда использую протокол XModem для бутлоадеров - там каждый пакет данных защищен контрольной суммой и поддерживается повторная передача данных в случае ошибки
2) Вставить дополнительные проверки непосредственно перед алгоритмом записи, чтобы убедиться что поток управления попал сюда именно из-за ресета, а не из-за глюка процессора при нестабильной частоте. Ну проверки простые. Например, сразу в начале бутлоадера устанавливается спец. комбинация (ключ) в ОЗУ, и запись не должна начинаться если этот ключ не такой, как должен быть. По окончанию записи или выходу из бутлоадера этот ключик в ОЗУ затереть нулями или ff.
3) Точно не уверен, но наверное можно процессору взвести какой-нибудь регистр для защиты от записы во флэш. Надо смотреть даташит
|
|
|
Сказали "Спасибо" alexgap
|
|
|
08.09.2009, 10:16
|
|
Вид на жительство
Регистрация: 17.02.2009
Адрес: Закарпатская область
Сообщений: 379
Сказал спасибо: 146
Сказали Спасибо 123 раз(а) в 66 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Сообщение от Gn0me
|
Вывод так же внутренним резистором подтянут к +5 В.
|
Если хотите сделать прибор максимально помехозащищенным, то не стоит доверять только внутренним резисторам.
Цитата:
|
Внешний подтягивающий резистор действительно не пробовал, надо будет попробовать.
|
Никак не пойму, тема висит уже несколько дней, неужели так трудно было попробовать? Может, неудачная разводка печатной платы (ну, вроде как, резистору негде упасть)? Шучу.
__________________
Ты проштудируй-ка
анатомию глаза: откуда тут взяться, как ты говоришь, загадочному взгляду?
|
|
|
|
08.09.2009, 10:29
|
|
Временная регистрация
Регистрация: 15.08.2006
Сообщений: 54
Сказал спасибо: 3
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
По поводу 3 версии. Наверно помогут биты защиты BLB0, BLB1. Сейчас проведу эксперименты и напишу, что получилось.
|
|
|
|
08.09.2009, 11:03
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
|
Re: Слетает прошивка контроллера ATMEGA644
Экспериментатор - поставьте внешний резистор и проверьте. Действительно, так сложно за несколько дней 2 раза ткнуть паяльником?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:33.
|
|