Il RESET nei microcontrollori.
La configuration word rappresenta una serie di settaggi da stabilire prima di programmare il micro, queste impostazioni attivano/disattivano delle periferiche interne che gestiscono il funzionamento del micro (si possono impostare direttamente nel codice o nel software di programmazione un attimo prima di scaricare il programma). Alcuni di questi flag riguardano la gestione del reset :
POWER-ON RESET (POR) : questo circuito mantiene resettato il micro fino a quando la tensione di alimentazione non raggiunge 1,2 … 1,7 V. Ma in molti casi questo non basta e non assicura un buon funzionamento. Allora si possono settare i due dispositivi interni seguenti.
POWER-UP TIMER (PWRT) : è un timer integrato nel micro con oscillatore RC. Se attivo genera un ritardo di 72 ms (TPWRT) alla fine dell'azione di POR. Quindi il micro rimane resettato fino al range di tensione (1,2 … 1,7 V) e per altri 72 ms, poi comincia ad eseguire il programma. Il nome di questo flag è PWRTE.
OSCILLATOR START-UP TIMER (OST) : genera un ritardo di 1024 segnali di clock (segnale presente su OSC1). Questo ritardo, se attivato, viene generato dopo il timer OST se attivo, altrimenti subito dopo POR. Il ruolo di questo dispositivo è di far stabilizzare il segnale di clock prima di avviare la CPU. Questo funziona solo per le configurazioni LP, XT e HS dell'oscillatore (vedi clock del micro). Non ha alcun effetto dopo un reset ma solo quando si fornisce tensione al sistema. Compie la sua funzione quando la CPU passa dallo stato di sleep (standby) al funzionamento normale (wake-up). E' importante notare che il periodo di ritardo dipende dal quarzo. Il nome di questo flag è PWRTEN.
Queste periferiche interne raggiungono l'obiettivo, e quindi sono utili, se il tempo che impiega l'alimentazione a rendere attivi tutti gli elementi del sistema è inferiore a .
TPOR + TPWRT + TOSC [s]
BROWN-OUT RESET (BOR): se attivato questa periferica interna resetta il micro quando la tensione di alimentazione scende al di sotto del valore di circa 4 V. Ovviamente è utile nelle applicazioni a batteria o per problemi sull'impianto di alimentazione ed evita malfunzionamenti strani. Il flag di attivazione è BOREN.
WATCHDOG (WDT) : è un timer autonomo che una volta abilitato rimane sempre in funzione. Genera un reset ogni TWDT = 18 ms. Può essere prolungato mediante il prescaler che condivide con il TIMER0 (vedi timer0 e registro OPTION). Per non far resettare il programma, quando è attivato, bisogna azzerarlo periodicamente (prima che raggiunga il tempo di lavoro stabilito). La funzione di questa periferica è di sbloccare il micro in caso di loop o in un bug percui non venendo più azzerato provvede al reset. Il watchdog rimane funzionante, se attivato, anche durante lo sleep. Il flag di attivazione è il WDTE.
Diversamente si usa in alternativa o insieme il reset hardware. Lo schema è stato presentato nella lezione di introduzione ai microcontrollori.