IL TEMPO DEL RESET ALL' ACCENSIONE
Particolare che viene raramente preso in considerazione è il tempo
necessario allo svolgersi della fase di reset al momento della messa sotto
tensione del processore : normalmente questo tempo non riveste particolare
importanza, ma posso esistere applicazioni critiche in cui, invece, se ne debba
tenere conto.
Nei PIC18F sono da considerare fondamentalmente 3 tempi :
Sul foglio dati, nelle page 46-47, il costruttore riporta i diagrammi delle
temporizzazioni in varie condizioni.
Il tempo di stabilizzazione del power up, ovvero dell' applicazione della
tensione di alimentazione, è abilitabile o disabilitabile al momento della
configurazione. Questo tempo viene valutato da un contatore interno a 11 bit
alimentato dal clock INTRC. Alla frequenza di 31 kHz, il tempo richiesto è
circa 66 ms, ovvero da quando la tensione applicata ha raggiunto un nvalore
sufficiente a mettere in funzione INTRC, vengono contati 66 ms prima di
rilasciare la linea di reset. Questo tempo, necessario per assicurare una
stabilizzazione della tensione di alimentazione e la predisposizione di tutte le
funzioni interne può venire omesso disabilitando !PWRTEN nel registro CONFIG2L.
Un secondo tempo richiesto riguarda l' oscillatore scelto per il clock, in
quanto è noto che, dal momento della messa sotto tensione a quando l'
oscillazione si stabilizza, è richiesto un certo tempo. Questo tempo riguarda i
modi di oscillazione HS, XT, LP e HSPLL, ovvero quelli che fanno uso di un
cristallo o risonatore esterno, ma non interessa i modi RC, EC e INTIO, ovvero
questi oscillatori sono valutati come privi della necessità di un tempo di
stabilizzazione alla messa sotto tensione.
Per gli altri, questo tempo viene valutato da un contatore interno che misura
1024 clock dell' oscillatore (quindi dipende dalla frequenza dello stesso) prima
di rilasciare la linea di reset.
Il tempo di stabilizzazione dell' oscillatore non è disabilitabile e viene
accodato al tempo di power up se questo è abilitato.
Il terzo tempo è quello necessario al PLL per agganciarsi alla giusta
frequenza ed è valutato in 2 ms. Ovviamente va conteggiato solamente se è
prevista una modalità con PLL. Anche questo tempo non è disabilitabile e va
sommato ai precedenti.
La tabella seguente raccoglie quanto detto finora :
Oscillatore
|
Power Up e Brown Out
|
Uscita dalle modalità
a risparmi energetico
|
!PWRTEN = 0
|
!PWRTEN = 1
|
HSPLL
|
66 ms + 1024 TOSC + 2 ms
|
1024 TOSC + 2 ms
|
1024 TOSC + 2 ms
|
HS, XT, LP
|
66 ms + 1024 TOS
|
1024 TOSC
|
1024 TOSC
|
EC, ECIO
|
66 ms
|
-
|
-
|
RC, RCIO
|
66 ms
|
-
|
-
|
INTIO1, INTIO2
|
66 ms
|
-
|
-
|
I fogli dati riportano una serie di diagrammi delle varie possibili
sequenze di power up .
A questi tempi sono da aggiungere eventuali tempi addizionali generati dal
condensatore o dall' eventuale supervisore di tensione collegati al pin MCLR.
Lo stato dei registri al reset
Per numerose applicazioni può essere importante conoscere lo
stato che i registri interni del PIC assumono dopo un RESET.
Ci viene ancora in aiuto il foglio dati (page 48 e seguenti) in
cui sono raccolti, in tabelle, i registri del processore e il valore che i vari
bit assumono dopo una condizione di RESET.
Nella tab. 4.3 sono indicati il Program Counter e i bit del
registro PCON. Al RESET, qualunque ne sia la causa, il PC punta alla locazione
0000h, da cui parte la prima istruzione del programma.
I bit di RCON sono settati o resettati in dipendenza della causa del RESET e,
come abbiamo visto, permetto di riconoscerla da programma ed attivare eventuali
procedure.
La TABLE 4.4 elenca gli altri registri e le condizioni dei bit
dopo il RESET, che è suddiviso in tre gruppi :