реклама на сайте
подробности

 
 
> ATmega162 стартует через раз, Или стартуе только загрузчик.
man with no name
сообщение Dec 10 2007, 16:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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

Вот такая проблема. Кто-нибудь сталкивался с таким?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Dec 11 2007, 13:00
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Странно, т.к. прерывания в загрузчике отключены, просто работал приёмник с подвешенным в воздухе RXD.

Если прерывания от UART'а в основной программе разрешены, а обработчика UART-RX - нет, то подвешенный в воздухе RXD как раз и может быть причиной глюка. (проц будет постоянно висеть на векторе RXC).

вместо увеличения SUT, лучше включить BOD, а SUT установить на минимальное время старта.

(Зы: подключитесь через JTAG да посмотрите где подвисает девайс).
Go to the top of the page
 
+Quote Post
man with no name
сообщение Dec 12 2007, 08:20
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 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 у меня нет.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Dec 12 2007, 09:30
Сообщение #4


Знающий
****

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



Цитата(man with no name @ Dec 12 2007, 11:20) *
В основной программе обработчик RXC есть, а в загрузчике прерывания запрещены. Тем не менее, уже несколько раз натыкался на такого рода грабли: включаю приёмник, не разрешая прерывания по приёму и проц затыкается.
С SUT и BOD разобрался. Вобще, если включен BOD, SUT надо отключать (как раз нулевое время старта). Иначе - глюк.
Спасибо, но JTAG'а для avr у меня нет.

Если Вы в Москве, то я Вам подарю плату JTAG-USB. Сам пользуюсь года четыре. Остались "невостребованные" платы.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.02725 секунд с 7
ELECTRONIX ©2004-2016