Источники сброса

 

Причинами (источниками) сброса могут являться различные воздействия: включение питания и кратковременные его изменения, сигналы формируемые аппаратно вне и внутри микроконтроллера, а также инструкции программы. В частности, инструкция безусловного перехода на адрес $0 всегда приводит к сбросу устройства.

 

 

Источники сброса микроконтроллера А Ттеда 163:

0 Сброс при включении питания (Power-on Reset.). Сброс происходит, если

напряжение питания ядра ниже определенного порога (Vpot).

0 Внешний сброс (External Reset). Сброс происходит при поступлении сигнала низкого уровня длительностью более 500 ns на внешний контакт reset микросхемы.

0 Сброс сторожевым таймером (Watchdog Reset). Сброс происходит по

команде сторожевого таймера.

0 Сброс при кратковременном провале напряжения питания (Brown-out

Reset). .... , .... ................ (Vbot).

По любой из этих причин микроконтроллер переходит к выполнению программы с адреса $0. В этой ячейке обычно размещают инструкцию jmp с адресом программы инициализации системы.

Структурная схема блока управления сбросом приведена на рис. 6.1.

 
 

 

 


Рис. 6.1 Функциональная схема управления сбросом

 

Все сигналы сброса детектируются на кристалле специальными схемами.

0 Схема сброса при включении питания (Power – On Reset Circuit) контролирует напряжение питания Vcc и запускается при Vcc > Vpot. При номинальном напряжении питания Vcc=5B, типовое значение порогового напряжения VPOT = 1,4 В.

0 Схема сброса при кратковременном провале напряжения питания (Brown- Out Reset Circuit) сравнивает напряжение питания Vcc с уровнем Vbot. Уровень сигнала Vbot программируется c помощью специального бита программирования уровня BODLEVEL. Этот бит относится к группе fuse- битов микроконтроллера, позволяющих задавать их некоторые конфигурационные особенности. Fuse-биты программируются при занесении программы в память и в процессе работы микроконтроллера не могут быть изменены. Схемой контроля питания (Brown-Out Reset Circuit) управляют fuse-биты BODEN и BODLEVEL. При BODLEVEL = 1 уровень Vbot равен 2,7В, а при BODLEVEL = 0 - 4B.

° Схема внешнего сброса (External Reset Circuit) управляется внешним сигналом низкого уровня #RESET.

 

Сигналы с этих схем и сигнал со сторожевого таймера (Watchdog Timer) фиксируются в регистре состояния процессорного ядра MCUSR (MCU Status Register) и объединенные по схеме ИЛИ, устанавливают RS-триггер. Длительность импульса внутреннего сброса (Internal Reset) на выходе триггера задается счетчиком задержки (Delay Counter). Фактически сброс микроконтроллера происходит по окончании импульса внутреннего сброса. Время задержки от момента поступления одного из сигналов сброса до окончания импульса сброса зависит от периода тактового генератора СК (Clock), от состояния fuse-бита BODLEVEL и может регулироваться /use-битами CKSEL[3. …0]. Время задержки при различных комбинациях битов CKSEL приведено в таблице 6.1.

 

Таблица 6.1. Программирование временной задержки при сбросе

 

CKSEL[3…0] BODLEVEL=0 BODLEVEL=1 Рекомендуемое использование
4,2 мс + 6 CK 5,8 мс + 6 CK Внешний генератор, быстрое включение
30 mkс + 6 СК 10mkс + 6СК Внешний генератор, BOD включен
67 мс + 6 СК 92 мс + 6 СК Внутренний RC генератор, медленное включение
4,2 мс + 6 СК 5,8 мс + 6 СК Внутренний RC генератор, быстрое включение
30 цс + 6 СК 10mkс + 6СК Внутренний RC генератор, BOD включен
67 мс + 6 СК 92 мс + 6 СК Внешний RC генератор, медленное включение
4,2 мс + 6 СК 5,8 мс + 6 СК Внешний RC генератор, быстрое включение
30 mkс + 6 СК 10mkс + 6СК Внешний RC генератор,ВOD включен
67 мс+ 32К СК 92мс + 32К СК Внешний низкочастотный кристалл
CKSEL[3…0] BODLEVEL=0 BODLEVEL=1 Рекомендуемое использование
67мс+ 1КСК 92мс+ 1КСК Внешний низкочастотный кристалл
67мс+16КСК 92мс+ 16КСК Кварцевый резонатор, медленное включение
4,2мс+16КСК 5,8мс+16КСК Кварцевый резонатор, быстрое включение
30mkс+16КСК 10цс+16КСК Кварцевый резонатор, BOD включен
67мс+1КСК 92мс+ 1КСК Керамический резонатор, медленное включение
4,2 мс+ 1КСК 5,8 мс+ 1КСК Керамический резонатор, быстрое включение
30цс+1КСК 10цс+1КСК Керамический резонатор, BOD включен
           

 

Регистр состояния процессорного ядра MCUSR (MCU Status Register) позволяет определить источник сброса. Он доступен программно в пространстве регистров ввода/вывода по адресу $34($54) (рис. 6.2).

 

 
 

 

 


Рис.6.2. Регистр MCUSR

0 Бит 3 - WDRF (Watchdog Reset Flag) - флаг сторожевого таймера. Бит устанавливается при сбросе процессорного ядра сторожевым таймером, сбрасывается при включении питания или путем записи логического нуля.

0 Бит 2 - BORF (Brown-out Reset Flag) - флаг сброса при кратковременном провале питания. Бит устанавливается при сбросе от кратковременного провала напряжения питания, сбрасывается при включении питания или путем записи логического нуля.

0 Бит 1 - EXTRF (External Reset Flag) - флаг внешнего сброса. Флаг устанавливается при сбросе от внешнего источника, сбрасывается при включении питания или путем записи логического нуля.

0 Бит 0 - PORF (Power-on Reset Flag) - флаг сброса при включении питания. Бит устанавливается при включения питания, сбрасывается только путем записи логического нуля.

Флажки сброса используются для определения причины сброса. Если регистр очищен программно до момента сброса, то источник сброса может быть найден чтением регистра целиком или его отдельных флажков.