Reklama

Zjištění zdroje resetu pro mikrokontrolér ATmega32

Úvod

Tento příspěvek je zaměřen na možnost zjištění zdroje posledního resetu. Určitě jste již někdy měli aplikaci, kde jste používali více než jeden zdroj přerušení např. hardwarový a softwarový watchdog a zajímalo vás, který z těchto zdrojů vám zresetoval mikrokontrolér. Lze to zjistit pomocí prvních pěti bitů registru MCUCSR. Popis registru MCUCSR lze nalézt v Tab. 1.

Tab. 1: Popis registru MCUCSR, převzato z [1]

Pozice bitu Název Popis
0 PORF Power-on reset
1 EXTRF Externí reset
2 BORF Brown-out reset
3 WDRF Watchdog reset
4 JTRF JTAG reset
5 - -
6 ISC2 -
7 JTD -

 
 

Popis jednotlivých příznakových bitů

 
Power-on reset se nastaví kdykoliv je napětí pod hranicí 1,3 – 1,4 V.
 
Externí reset je generovaný, pokud je na RESET pin přivedena Log. 0 minimálně na 1,5us.
 
Brown-out reset se nastaví, pokud napětí klesne pod prahovou úroveň 2,7 V, nebo 4 V. Výběr prahového napětí se provádí pomocí programovací propojky BODLEVEL. Pokud je propojka BODLEVEL naprogramována, tak je vybrána prahová úroveň 2,7 V, v opačném případě je vybrána prahová úroveň 4 V. Obvod pro detekci podpětí lze aktivovat pomocí naprogramování propojky BOD.
Více informací o nastavení programovacích propojek lez nalézt zde: http://www.tajned.cz/2014/03/atmega_propojky/
 
Watchdog reset se nastaví, pokud zareaguje nastavený watchdog.
 
JTAG reset se nastaví, pokud JTAG reset registr je nastaven na hodnotu Log. 1.
Zjištění zdroje resetu a následné vynulování registru musí být v programu provedeno co nejdříve z důvodu možnosti vyvolání dalšího resetu. Pokud jsou příznakové bity registru MCUCSR před provedeným resetem vynulovány, tak lze jednoznačně určit poslední zdroj resetu. Vynulovat bity EXTRF, BORF, WDRF, JTRF lze zapsáním log. 0. Dále také dojde k vynulování těchto bitů po Power-on resetu. Bit PORF lze vynulovat pouze zapsáním log. 0.

 
 

[1] ATMEL. 8-bit AVR Microcontroller with 32K Bytes In-System Programmable Flash. [online] citováno 23. Srpna 2013. Dostupné na www: http://www.atmel.com/images/doc2503.pdf

 

Následující a předchozí příspěvek v kategorii:

 
Následující: Bitové operace nejen pro mikrokontroléry AVR
Předchozí: Zapojení ultrazvukového modulu HC-SR04 s mikrokontrolérem ATmega32

 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.