Девайс питается от 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
Вот такая проблема. Кто-нибудь сталкивался с таким?
|