|
ATmega162 стартует через раз, Или стартуе только загрузчик. |
|
|
|
Dec 10 2007, 16:55
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586

|
Девайс питается от 5В (выведены с цепи DC-DC -> линейный стаб.), частота - от резонатора 14.7456 МГц. МК ATmega162-16AU.
Прошивка: загрузчик, основная программа. И там, и там используется отладочный UART. Загрузчик пишет в UART, что он запущен и когда передаёт управление основной программе. Основная программа должна в начале моргнуть светодиодиком и выдать отладочную информацию.
Проц редко включается в нормальном режиме. Глюки бывают следующего вида:
1. Подаём питание, загрузчик показывает (по UART), что он выполнился, передаёт управление основной программе. Основная программа не выполняется.
2. Подали питание, загрузчик выдал строчку в UART на другой частоте (изначально работает на 115200, пишет на 230400, изредка пишёт на частоте, гораздо меньшей, чем 115200, но на какой именно не проверял). После чего основная программа также не стартует. При этом частота на ножках резонатора - та, которая и должна быть (14.7456 МГц), так же в отладке есть вывод UBRR, он также не меняется (всегда 007).
В обоих случаях дёрганье RESET'ом не помогает. А помогает только откл./вкл. питания, да и то не всегда.
Какие были подозрения: -на вход внешнего тактирования таймера подаётся частота, которая генерится на плате и задаётся с процессора. Думал, что частота при включении может быть слишком высокой (?). В итоге стал сначала ставить некую заданную частоту, потом включать таймер.
Пробовал: -менять кондёры резонатора -включать BOD, отключая ~RESET -отключать BOD, подключив ~RESET к RC-цепи -игрался SUT при обоих вариантах подключения ~RESET
Вот такая проблема. Кто-нибудь сталкивался с таким?
|
|
|
|
|
 |
Ответов
|
Dec 12 2007, 08:20
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586

|
Цитата(defunct @ Dec 11 2007, 16:00)  Если прерывания от UART'а в основной программе разрешены, а обработчика UART-RX - нет, то подвешенный в воздухе RXD как раз и может быть причиной глюка. (проц будет постоянно висеть на векторе RXC). В основной программе обработчик RXC есть, а в загрузчике прерывания запрещены. Тем не менее, уже несколько раз натыкался на такого рода грабли: включаю приёмник, не разрешая прерывания по приёму и проц затыкается. Цитата(defunct @ Dec 11 2007, 16:00)  вместо увеличения SUT, лучше включить BOD, а SUT установить на минимальное время старта. С SUT и BOD разобрался. Вобще, если включен BOD, SUT надо отключать (как раз нулевое время старта). Иначе - глюк. Цитата(defunct @ Dec 11 2007, 16:00)  (Зы: подключитесь через JTAG да посмотрите где подвисает девайс). Спасибо, но JTAG'а для avr у меня нет.
|
|
|
|
Сообщений в этой теме
man with no name ATmega162 стартует через раз Dec 10 2007, 16:55 Yura_K Какие-нибудь силовые цепи есть (может быть рядом)?... Dec 10 2007, 17:33 man with no name На этапе отладки силовых цепей нет. Т.е. они есть,... Dec 10 2007, 22:36 -SD- Цитата(man with no name @ Dec 10 2007, 21... Dec 11 2007, 07:02 alexander55 Цитата(man with no name @ Dec 10 2007, 19... Dec 11 2007, 09:14 man with no name -SD-, спасибо за ваш опыт. Однако, глюков стало на... Dec 11 2007, 10:28 alexander55 Цитата(man with no name @ Dec 11 2007, 13... Dec 11 2007, 11:19   man with no name Цитата(Igor26 @ Dec 12 2007, 12:30) Если ... Dec 12 2007, 14:44 Igor26 ЦитатаPS: А кто ароме AVR Studio и gdb его поддерж... Dec 13 2007, 07:30 man with no name Спасибо. Пока проект отложили. Не знаю на долго ли... Dec 21 2007, 08:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|