Circuiti di reset

3.1 Introduzione

Quando il micro viene alimentato, fase di power-up, non si ha una istantanea condizione di stabilità. La tensione, non potendo variare bruscamente, prima di raggiungere i 5V tipici della condizione di regime, assumerà dei valori intermedi insufficienti a garantire un corretto funzionamento del dispositivo.

Per questo è necessario affiancare al microcontrollore un circuito di reset che ne consenta una corretta inizializzazione.

3.2 Modalità di Reset Torna su

Dato che non tutti i blocchi elementari che rappresentano la logica interna del micro (Figura 3.2‑1) sono caratterizzati dalla stessa dinamica, la fase di power-up risulta essere particolarmente critica. Non tutte le celle si attivano simultaneamente in corrispondenza dello stesso livello di tensione e, le logiche più veloci[1], si “accenderanno” prima delle altre determinando uno stato di incertezza sulla configurazione finale.

Al fine di garantire l’instaurarsi di uno stato determinato all’avvio del microcontrollore, è necessario realizzare un controllo sul circuito di reset durante la fase di power-up.

Diagramma a blocchi rappresentativo dell’architettura interna del micro STX301

Figura 3.2‑1: Diagramma a blocchi rappresentativo dell’architettura interna del micro STX301

 

Questo garantisce che tutte le celle siano inizializzate solo dopo che la tensione abbia raggiunto un valore sufficientemente alto da consentire un corretto funzionamento di tutti i blocchi funzionali[2].

Il metodo più semplice ed economico per assicurare un corretto power-on, prevede di pilotare il pin di reset mediante un circuito RC esterno (Fig.3.2‑2).

Questa tecnica può essere impiegata solo per il power-on-reset (POR) e non è una soluzione idonea, ad esempio, per il brown-out[3].

Il pin di RESET è sottoposto alla stessa tensione esistente ai capi del condensatore. Quando il sistema viene alimentato il condensatore, comportandosi da cortocircuito, fa si che il livello logico sul RESET sia basso inibendo il microcontrollore. Durante il processo di carica, la tensione su questo pin crescerà sino a superare la tensione di threshold in corrispondenza della quale il livello logico sul pin di reset, diventando alto, abilita il micro che inizia ad eseguire il codice a partire dalla prima istruzione.

Esempio del più semplice circuito di reset. Power-on-reset (POR)

Figura 3.2‑2: Esempio del più semplice circuito di reset. Power-on-reset (POR)

 

È necessario che la costante di tempo, imposta dalla rete RC, sia tale che lo stato di reset[4] sia mantenuto basso, almeno per 100ns[5], a partire dall’istante in cui la tensione sul pin VDD raggiunga il valore minimo necessario all’attivazione di tutte le celle elementari che costituiscono il microcontrollore.

Circuiti di reset più complessi prevedono il ripristino delle condizioni iniziali in seguito al verificarsi di particolari condizioni. Un dispositivo di protezione di questo tipo è detto “supervisor device”.

Il funzionamento del supervisore si basa sul monitoraggio di alcuni parametri del sistema e sul conseguente intervento quando questi assumono valori non compresi nei limiti di tolleranza.

Il tipo di supervisore più diffuso è quello che effettua il controllo sulla tensione di alimentazione intervenendo, resettando il sistema, qualora la tensione diventi troppo alta o troppo bassa. Questo consente di evitare che il sistema digitale si porti in uno stato di funzionamento indeterminato che ne determinerebbe un malfunzionamento.

In questa occorrenza, lo stato di reset permane, per evitare appunto che si verifichi una condizione di funzionamento instabile, per almeno altri 100ns a partire dall’istante in cui si estingue la causa stessa che l’ha generato.

Le funzioni di un dispositivo supervisore non sono limitate a quelle citate ma si possono realizzare anche controlli, per citarne solo alcuni, sul runaway software e sui limiti di temperatura.

Il watchdog è un’altra tipica funzione di supervisione (Fig.3.2‑3).

Schema di principio del Watchdog reset

Figura 3.2‑3: Schema di principio del watchdog reset.


Esso consiste in un timer speciale che resetta il µP quando raggiunge un valore limite. Il software resetta periodicamente il timer prima che esso raggiunga il valore in corrispondenza del quale viene generato il segnale di reset. Qualora si verificasse una condizione di run-away il programma non potrà azzerare il watchdog-timer che, pertanto, raggiungerà sicuramente il valore limite in corrispondenza del quale viene emesso il segnale di reset che consentirà di ripristinare il normale funzionamento.

Un’altra configurazione molto utilizzata nella pratica è quella che consente di rilevare la riduzione della tensione di alimentazione. Questo tipo di controllo, noto come brown-out reset, è chiamato anche “Low Voltage Detect” (LVD).

Il segnale di “Brown out Reset” (BOR) viene generato quando la tensione diventa minore della tensione di riferimento Vref mentre viene ristabilito il funzionamento ordinario quando la stessa torna ad essere superiore del minimo valore consentito.

Principio di funzionamento di un LVD reset.

Figura 3.2‑4: Principio di funzionamento di un LVD reset.

 

In figura 3.2‑4 è rappresentato lo schema di principio del LVD.

La condizione di BOR può verificarsi per diverse ragioni e, a volte, è difficilmente rilevabile (specie se si verifica in meno di 20ns)[6].

Nei prodotti alimentati da batterie si possono verificare lunghi brown-out, specialmente quando le batterie stanno per esaurirsi.

Il fenomeno del BOR è, inoltre, particolarmente importante quando si utilizzano memorie flash. In questo caso, i circuiti preposti al rilevamento degli indirizzi, possono avere problemi nel rilevare le trasmissioni quando i livelli di tensioni diventano troppo bassi.

3.3 LVD-RESET Torna su

 

Il circuito di reset realizzato nel contesto di questo progetto è un LVD. La soluzione circuitale che ne ha consentito l’implementazione è mostrata in figura 3.3‑1.

 

Circuito utilizzato per realizzare il LVD

Figura 3.3‑1: Circuito utilizzato per realizzare il LVD.

Dal punto di vista qualitativo possiamo affermare che il condensatore C2 serve ad evitare che, eventuali interferenze presenti sul bus in continua, si mostrino, a meno della caduta di tensione Vce, sul pin di reset.

La caratteristica di un diodo zener è quella di mantenere, ai suoi capi, una tensione pari a al valore di breakdown nominale quando viene percorso da una corrente di intensità nota (Izt) e di essere interessato a piccole variazioni di tensioni per variazioni relativamente grandi della corrente che lo attraversa.

Il diodo utilizzato è uno zener da 4.3V e 1.3Watt nel package TO-41 caratterizzato da un valore tipico di Izt pari a 50mA.

Non è stato possibile risolvere il circuito analiticamente dato che, benché il diodo sia polarizzato inversamente, è percorso da una corrente troppo piccola (<<50mA) per indurlo a funzionare sul tratto lineare della sua caratteristica.

 

Andamento della tensione agente sul pin di reset durante il power-on.

Figura 3.3‑2: Andamento della tensione agente sul pin di reset durante il power-on. La curva fucsia è quella di nostro interesse, quella verde è stata ottenuta utilizzando un diodo con Izt minore. Il micro viene alimentato con una tensione di 5V nell’istante iniziale, ma diventa attivo solo quanto la tensione sul pin di reset non supera la soglia di 2V.

 

Per quanto detto, ai capi del diodo non è presente la tensione ai 4.3V del valore di breackdown nominale, come ci si aspetterebbe dato l’uso che generalmente si fa di questo componente, ma un valore notevolmente minore.

Il circuito di reset di figura 3.3‑1, è stato analizzato mediante simulazioni realizzate con OrCad PSPICE.

Per quanto riguarda lo studio del power-on, ho alimentato il circuito con una tensione di 5V a partire dalla condizione iniziale in cui tutti i condensatori erano scarichi. La figura 3.3‑2 mostra l’andamento ottenuto per la tensione che agisce sul pin di reset in funzione del tempo.

Le due curve mostrano due differenti dinamiche. La prima, che raggiunge più rapidamente il valore di regime, è stata ottenuta utilizzando un diodo avente un valore di Izt minore di quello tipico del diodo richiesto, mentre, la seconda, è quella di nostro interesse.

Dato che, il data-sheet del micro non fornisce indicazioni specifiche circa le caratteristiche elettriche del pin di reset, ho equiparato questa porta a quella di un generico ingresso il cui schema è mostrato in figura 3.3‑3.

 

Circuito equivalente del pin di ingresso. Isteresi

Figura 3.3‑3: Circuito equivalente del pin di ingresso. Rs = 1 KΩ ; Cin = 10 pF.

 

Si osserva che gli ingessi del microcontrollore sono dotati di un trigger di Schmitt con tensioni di soglia compatibili con quelle della logica TTL.

Un segnale di questo tipo viene rilevato come alto, in salita, quando supera la tensione di 2V. Pertanto il segnale di reset, abiliterà il funzionamento del micro dopo 244ms (fig.3.3‑2).

Si osserva che, utilizzando uno zener con un minor valore di Izt, il segnale di reset, diventando alto più velocemente, potrebbe cause una scorretto power-up.

Il grafico di figura 3.3‑4, a differenza del precedente, non rappresenta un’analisi di tipo dinamico, ma di tipo statico. Sull’ordinata viene riportata la tensione che si ottiene sul pin di reset qualora il micro fosse alimentato con una tensione pari al valore riportato in ascissa. Le due curve, differiscono per l’impiego di due differenti diodi aventi stessa tensione di breackdown ma differente package.

Questo confronto è particolarmente significativo dato che mette in evidenza, come la protezione contro l’undervoltage sarebbe inefficace se si utilizzasse un diodo con differente valore di Izt.

Andamento della tensione sul pin di reset a regime

Figura 3.3‑4: Andamento della tensione agente sul pin di reset a regime (in ordinata), in corrispondenza di diversi valori della tensione di alimentazione (in ascissa). Quanto la tensione di alimentazione scende al di sotto di 4.53V (per la curva viola), il micro viene resettato. La curva verde mostro un intervento intempestivo ottenuto con l’impiego di un differente diodo zener.

 


[1] Il temine veloce, in queusto contesto, non è riferito alla velocità di risposta.

[2] A tal proposito si ricorda che la casa produttrice del componente ST52E301 ne garantisce le specifiche per tensioni di alimentazione di 5V±5%

[3] Detto anche LVD “Low Voltage Detect” reset

[4] Il segnale di reset per il microcontrollore ST52X301 è attivo sul livello logico basso. I livelli di riferimento sono quelli della logica TTL quindi il livello basso si ha tra 0 e 0.8 V.

[5] È un dato di targa del ST501X301: tempo minimo richiesto al segnale di reset affinchè risulti sicuramente efficace.

[6] A tal proposito si tenga presente che le capacità di disaccoppiamento sono in grado di rimuovere glitches corti e che un condensatore ceramico da 0.1mF percorso da una corrente di 20mA provoca una caduta di tensione 0.2V/ms.

Please publish modules in offcanvas position.

Free Joomla! templates by AgeThemes