Цитата(galjoen @ Feb 11 2008, 22:04)

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

. А обстановка с помехами там ещё та! Недалеко 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 тоже может оказаться установленным.
Как же при всем при этом идентифицировать причину сброса?