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

 
 
> 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
Ответов (1 - 12)
Yura_K
сообщение Dec 10 2007, 17:33
Сообщение #2


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

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Какие-нибудь силовые цепи есть (может быть рядом)?
Может, просто проц сменить (например, глюкавый попался)?


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
man with no name
сообщение Dec 10 2007, 22:36
Сообщение #3


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

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



На этапе отладки силовых цепей нет. Т.е. они есть, но пока не задействованы. Проц сменить я уже думал. Сегодня ковырялся с остальными, более очевидными вариантами. Завтра попробую сменить проц. Думал, здесь предложат что-нибудь более поддающееся пониманию...
Go to the top of the page
 
+Quote Post
-SD-
сообщение Dec 11 2007, 07:02
Сообщение #4


Участник
*

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



Цитата(man with no name @ Dec 10 2007, 21:55) *
Вот такая проблема. Кто-нибудь сталкивался с таким?


Да, сталкиволся с похожей ситуацией. Микросхема MCP2510 (реализует CAN интерфейс) глучила. Она то полностью нормально работала, то работала только в части связи с контроллером по SPI. Как раз в этот момент только сделал ПО для неё и оно ещё было не отлажено. И бывало так что изменю чуток прогу, а связь по CAN перестаёт работать, вроде и совсем в другом месте менял, а не работет sad.gif
И при этом состояние рабочее на не рабочее (и обратно) могло поменяться только при выключении питания, сброс не помогал.
Мучился, мучился, не понимал в чём дело. То верну старую прогу которая точно работала и вдруг оказывается что не работает. Себе даже верить перестал smile.gif
Когда понял что дело не в проге, начал разбиратсья с железом. И кварц проверял и дорожки пропаивал и выводы микросхемы ещё раз пропаял. Не помогало.
В итоге заменой микросхемы вся проблема решилась.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 11 2007, 09:14
Сообщение #5


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(man with no name @ Dec 10 2007, 19:55) *

Для начала попробуйте увеличить период сторожевого таймера.
Go to the top of the page
 
+Quote Post
man with no name
сообщение Dec 11 2007, 10:28
Сообщение #6


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

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



-SD-, спасибо за ваш опыт. Однако, глюков стало на порядок меньше (теперь железка не запускается в одном случае из ~15-20) после того, как отключил в загрузчике приёмник отладочного UART'а. Странно, т.к. прерывания в загрузчике отключены, просто работал приёмник с подвешенным в воздухе RXD.

alexander55, watchdog у меня отключен, да и проц не перезагружается. Как-то не в тему...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 11 2007, 11:19
Сообщение #7


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(man with no name @ Dec 11 2007, 13:28) *
alexander55, watchdog у меня отключен, да и проц не перезагружается. Как-то не в тему...

Понятно.
Попробуйте установить SUT максимальное время старта.
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 11 2007, 13:00
Сообщение #8


кекс
******

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


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

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


Знающий
****

Группа: Свой
Сообщений: 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
man with no name
сообщение Dec 12 2007, 14:44
Сообщение #11


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

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



Цитата(Igor26 @ Dec 12 2007, 12:30) *
Если Вы в Москве, то я Вам подарю плату JTAG-USB. Сам пользуюсь года четыре. Остались "невостребованные" платы.

Да, в Москве. Буду очень признателен.
PS: А кто ароме AVR Studio и gdb его поддерживает?
Go to the top of the page
 
+Quote Post
Igor26
сообщение Dec 13 2007, 07:30
Сообщение #12


Знающий
****

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



Цитата
PS: А кто ароме AVR Studio и gdb его поддерживает?

Кроме AVR Studio внутрисхемную отладку поддерживает IAR
Цитата
Да, в Москве. Буду очень признателен.

Кидайте телефон в личку.
Go to the top of the page
 
+Quote Post
man with no name
сообщение Dec 21 2007, 08:38
Сообщение #13


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

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



Спасибо. Пока проект отложили. Не знаю на долго ли, но вернуться к нему ещё придётся smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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