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

 
 
6 страниц V  « < 4 5 6  
Reply to this topicStart new topic
> Как заполнить свободную память?, программная защита
galjoen
сообщение Feb 11 2008, 19:04
Сообщение #76


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(xemul @ Oct 2 2007, 00:44) *
Можно продолжать бороться с бедами контроллеров 5-10-летней давности, но за прошедшее время потроха контроллеров слегка изменились. В частности, АВР могут в большинстве случаев вполне успешно обходиться без внешнего супервайзера.

+1
У меня так всё и сделано (без супервайзера). Я решил, что если уж атмел может процессоры делать, в которых мульён транзисторов, то уж супервайзер, в котором и два десятка транзисторов не наберётся, он туда уж точно какой надо запихнул.
Цитата(xemul @ Oct 2 2007, 00:44) *
Попробуйте не таскать шнурок на ногу сброса через всю плату. Или попробуйте для продолжения разговора пощёлкать рядом с AVRом люминесцентной лампой, отрезав этот шнурок под корень (т.е. по сбросу ничего, кроме внутреннего пуллапа), и отследить причину сброса. Если будет что-то кроме POR...

У меня процессор все логи, в т.ч. своё включение (от чего он сбросился) во FLASH пишет. А я потом эту FLASH как Mass Storage читаю. FLASH не быстрее чем за месяц заполняется. Так вот, ничего кроме PORF и BORF, я там не видел! А я всегда за этим следил. Вообще то я там WDRF искал и не находил smile.gif . А обстановка с помехами там ещё та! Недалеко 6 кВ 1кА. И всё это тиристорами коммутируется.

Щас пошёл - RESET на землю коротнул. Лог посмотрел. Всё как положено - EXTRF появился!
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 11 2008, 20:34
Сообщение #77


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(galjoen @ Feb 11 2008, 22:04) *
+1
У меня так всё и сделано (без супервайзера). Я решил, что если уж атмел может процессоры делать, в которых мульён транзисторов, то уж супервайзер, в котором и два десятка транзисторов не наберётся, он туда уж точно какой надо запихнул.

У меня процессор все логи, в т.ч. своё включение (от чего он сбросился) во FLASH пишет. А я потом эту FLASH как Mass Storage читаю. FLASH не быстрее чем за месяц заполняется. Так вот, ничего кроме PORF и BORF, я там не видел! А я всегда за этим следил. Вообще то я там WDRF искал и не находил smile.gif . А обстановка с помехами там ещё та! Недалеко 6 кВ 1кА. И всё это тиристорами коммутируется.

Щас пошёл - RESET на землю коротнул. Лог посмотрел. Всё как положено - EXTRF появился!

Вопрос по регистру MCUSR
Кому приходилось пользоваться флагами из регистра MCUSR?
Возьмем для примера tiny15. Рис.14 на стр.15 его описания. (rev.1187D-12/01)
Мне нужно, чтобы при включении питания не устанавливался флаг EXTRF.
На сколько может быть задержан фронт reset относительно фронта VCC, чтобы этот флаг не устанавливался? И каким внутренним сигналом происходит запись в регистр MCUSR?
На этой же странице написано, что сигнал reset гарантированно распознается, если его длительность превышает 500нс. При максимальном сопротивлении подтягивающего резистора 122кОм и входной емкости вместе с емкостью монтажа порядка 4пФ постоянная времени входной цепи уже как раз 500нс. Т.е. при таком раскладе получается, что при включении питания всегда будут устанавливаться два флага PORF и EXTRF. А для улучшения помехозащищенности рекомендуется еще шунтировать вход reset емкостью...
Судя по логике текста описания, если длительность сигнала reset будет меньше 500нс, то он все равно может быть распознан, хотя и не гарантированно.
Непонятно также с флагом BORF, если включена схема Brown-out. Поскольку порог срабатывания этой схемы больше, чем у схемы Power-on, то при включении питания она сработает позже и флаг BORF тоже может оказаться установленным.
Как же при всем при этом идентифицировать причину сброса?


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 11 2008, 21:05
Сообщение #78


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Дон Амброзио @ Feb 11 2008, 23:34) *
Мне нужно, чтобы при включении питания не устанавливался флаг EXTRF.

Из практики (ATmega64 и AT90CAN128) знаю, что EXTRF и как никогда не устанавливается (я RESET ни к чему не подсоединял). Но если что, его ведь сбросить всегда можно (и нужно). Я когда MCUCSR читаю (в числе первых 10 команд), после этого его сразу-же его сбрасываю (все флаги). Чтоб в следующий раз знать от чего сброс произошел.
Цитата(Дон Амброзио @ Feb 11 2008, 23:34) *
Непонятно также с флагом BORF, если включена схема Brown-out. Поскольку порог срабатывания этой схемы больше, чем у схемы Power-on, то при включении питания она сработает позже и флаг BORF тоже может оказаться установленным.

BORF иногда устанавливается. Если при включении дребезг контакта выключателя был. Напряжение питания увеличивалось-уменьшалось (кругом кондёры стоят).
Цитата(Дон Амброзио @ Feb 11 2008, 23:34) *
Как же при всем при этом идентифицировать причину сброса?

А вот так и идентифицировать.PORF=0 значит что-то не так. А что - другие флаги показывают. Но лучше всего опытным путём всё это проверить. Я проверял!

А вообще это bb-offtopic.gif .
Go to the top of the page
 
+Quote Post

6 страниц V  « < 4 5 6
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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