|
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
Вот такая проблема. Кто-нибудь сталкивался с таким?
|
|
|
|
|
 |
Ответов
(1 - 12)
|
Dec 10 2007, 17:33
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821

|
Какие-нибудь силовые цепи есть (может быть рядом)? Может, просто проц сменить (например, глюкавый попался)?
--------------------
Чудес не бывает - бывает мало знаний и опыта!
|
|
|
|
|
Dec 11 2007, 07:02
|
Участник

Группа: Новичок
Сообщений: 22
Регистрация: 29-08-07
Из: г.Копейск, Чел. обл.
Пользователь №: 30 121

|
Цитата(man with no name @ Dec 10 2007, 21:55)  Вот такая проблема. Кто-нибудь сталкивался с таким? Да, сталкиволся с похожей ситуацией. Микросхема MCP2510 (реализует CAN интерфейс) глучила. Она то полностью нормально работала, то работала только в части связи с контроллером по SPI. Как раз в этот момент только сделал ПО для неё и оно ещё было не отлажено. И бывало так что изменю чуток прогу, а связь по CAN перестаёт работать, вроде и совсем в другом месте менял, а не работет  И при этом состояние рабочее на не рабочее (и обратно) могло поменяться только при выключении питания, сброс не помогал. Мучился, мучился, не понимал в чём дело. То верну старую прогу которая точно работала и вдруг оказывается что не работает. Себе даже верить перестал  Когда понял что дело не в проге, начал разбиратсья с железом. И кварц проверял и дорожки пропаивал и выводы микросхемы ещё раз пропаял. Не помогало. В итоге заменой микросхемы вся проблема решилась.
|
|
|
|
|
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 у меня нет.
|
|
|
|
|
Dec 12 2007, 14:44
|

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

|
Цитата(Igor26 @ Dec 12 2007, 12:30)  Если Вы в Москве, то я Вам подарю плату JTAG-USB. Сам пользуюсь года четыре. Остались "невостребованные" платы. Да, в Москве. Буду очень признателен. PS: А кто ароме AVR Studio и gdb его поддерживает?
|
|
|
|
|
Dec 13 2007, 07:30
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата PS: А кто ароме AVR Studio и gdb его поддерживает? Кроме AVR Studio внутрисхемную отладку поддерживает IAR Цитата Да, в Москве. Буду очень признателен. Кидайте телефон в личку.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|