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

 
 
> Флаг сброса по включению питания, Почему не устанавливается?
EugeNNe
сообщение Oct 16 2009, 04:51
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 424
Регистрация: 6-03-06
Из: Н.Новгород
Пользователь №: 14 997



Есть M640. В соответствии с алгоритмом работы программы требуется анализ флагов источников сброса. Выяснилось что со всеми флагами регистра MCUSR всё в порядке, устанавливаются когда надо. А вот флаг PORF, который указывает включение питания как источник сброса почему то упорно не хочет устанавливаться. В чём может быть причина?

Ещё вопросик по фьюзам:почему чип прекрасно входит в режим отладки даже со сброшенным фьюзом OnChipDebugEnable? Всё равно установлен он или сброшен без разницы. Отлаживаем с помощью JTAG ICE mkII.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Александр Куличо...
сообщение Oct 16 2009, 11:08
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Отладчик сам устанавливает этот бит (OnChipDebugEnable) при старте отладки. И снимает при завершении.
Цитата
А вот флаг PORF, который указывает включение питания как источник сброса почему то упорно не хочет устанавливаться.

Т.е. после сброса ни один из флагов сброса в MCUSR не установлен?

Как проверяли состояние флага? Я бы сделал следующим образом:
1. Запуск отладки с JTAG ICE mkII. При этом JTAG ICE mkII должен быть запитан от USB или от отдельного осточника, независимого от питания target'a
2. установка точки прерывания в начале работы программы
3. запуск программы на выполнение
4. отключение питания таргета на пару..десяток секунд (до полной разрядки конденсаторов по питанию)
5. включение питания таргета. При этом отладчик должен остановить выполнение программы контроллера на точке останова
6. проверяем состояние флага PORF.

Хотя... хто его знает, как там стартует отладчик при включении питания. Может надежней было бы проверить с помощью светодиода и с отключенной отладкой. Только питание с таргета снимать полностью, до полной разрядки кондесаторов питания. Иначе можете получить флаг BORF вместо PORF

Р.S. Очищать флаги после считывания не забываете? хотя для PORF этого вроде как и не надо.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 17 2009, 01:47
Сообщение #3


кекс
******

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



Цитата(Александр Куличок @ Oct 16 2009, 14:08) *
Отладчик сам устанавливает этот бит (OnChipDebugEnable) при старте отладки. И снимает при завершении.

Отладчик сам ничего не меняет!
А работает потому, что JTAG позволяет. FUSE OCDEN отвечает за перевод некоторой периферии в отладочный режим - к примеру эмуляция энергосберегающих режимов. Только с установленным фузом OCDEN можно безболезненно отлаживать программу в которой есть переход в PowerDown режим. Если этот фуз не установить, то при переходе в PowerDown получите дисконнект отладчика.

Цитата(BigBolt @ Oct 16 2009, 14:42) *
Оказалось что все биты установленны....

Если включен BOD и имеется емкость на RESET, то должны быть установлены не все, а 3 бита из 5-ти.
PORF, BORF и EXTRF.
PORF - из-за того что было включение.
BORF - из-за того, что напряжение после отработки POR все еще нарастало.
EXTRF - из-за емкости на RESET'е.

WDRF должен быть точно сброшен. В противном случае Вы что-то не то читаете или не туда пишете.

Цитата
Отключили житаг и стали записывать содержимое вышеуказанного регистра в епром сразу при старте программы.

А вообще, заморачиваетесь не тем. Вначале надо хотя бы UART консольку поднять, а потом когда есть куда отладочную информацию выводить, - то можно и reset смотреть...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 09:15
Рейтинг@Mail.ru


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