Tutorials - PIC Peripherals

 

Il RESET

 


IL RESET

Quando arriva tensione ad alimentare un circuito digitale, se non si prendono opportuni provvedimenti, il contenuto dei registri e dei latch è casuale, dovuto soltanto alle caratteristiche costruttive e del materiale.

Ovviamente questo non va affatto bene in un sistema complesso come quello a microprocessore, dove, all' arrivo della tensione, ci si aspetta che il sistema si avvii ed inizi ad eseguire le istruzioni del programma che la sua memoria contiene.

Per poter fare questo occorre che, raggiunto un livello di tensione adeguato a far funzionare correttamente il circuito, un meccanismo interno predisponga i registri in modo tale che essi assumano valori definiti, detti di default, e che costituiscano una base sicura da cui le operazioni possano iniziare; tra questi, dovrà essere predisposto il contatore programma (Program Counter) per puntare sulla prima istruzione da cui iniziare la scansione dei codici e la loro esecuzione.

Occorre anche che, se la tensione cade oltre un livello minimo al di sotto del quale l' elettronica non avrebbe certezza di operare regolarmente, il funzionamento del processore sia interrotto.

Tutte queste operazioni sono svolte dalla circuiteria di RESET, che è integrata nel microcontroller.

Dunque, il RESET è:

  1. Una condizione, solitamente dipendente dalla tensione di alimentazione

  2. Cessata la causa del RESET, il processore partirà ad eseguire il programma contenuto nella sua memoria programma.

e ha lo scopo di:

  1. "azzerare" la situazione interna del processore e portarla ad un punto definito, predisponendo la logica interna alle condizioni necessarie alla partenza

  2. pre settare vari bit dei registri interni (i cosiddetti default al POR)

  3. caricare il program counter con il valore del vettore di reset


E nei PIC ?

Sarebbe più corretto dire i RESET, in quanto i PIC dispongono di una gamma considerevole di sorgenti del RESET.

Possiamo individuare le principali le cause principali in:

  • una azione esterna sul pin MCLR (Master Clear Reset)

  • una azione interna dovuta al sistema di supervisone della presenza-assenza della tensione di alimentazione (POR - Power On Reset)

  • una azione interna dovuta al sistema di supervisione del livello di tensione BOR - Brown Out Reset 

  • intervento del modulo di Watch Dog 

  • a seguito di un cambio di livello su alcuni pin pre definiti oppure dell' uscita del comparatore

  • a seguito di una istruzione specifica 

  • a seguito di un overflow dello stack  

Non tutti questi meccanismi sono presenti in tutti i PIC delle varie famiglie; ad esempi, gli ultimi due non sono disponibili nei Baseline e nei Mid-Range.

Per esemplificare, ecco lo schema logico del modulo di RESET del PIC10F206 (Baseline)

 

del PIC16F88 (Midrange)

del 12F1822 (Enhanced Midrange)

e del 18F2321 (High End PIC18)

Gli schemi qui sopra indicano in modo semplificato (!) le possibili fonti del RESET: osserviamo che, con l' aumentare delle prestazioni del chip, aumenta anche la complessità del suo sistema di reset.

In tutti i chip sono presenti tre sorgenti base:

  1. POR Power-On Reset da arrivo della tensione di alimentazione Reset 

  2. MCLR Master Clear Reset dovuto al pin MCLR portato a livello basso durante il funzionamento normale o durante il funzionamento in risparmio energetico

  3. WDT WatchDogTimer  Reset dovuto al time out del watchdog 

Nei Baseline si aggiungono altre relative alla filosofia di funzionamento di questi chip:

  1. a seguito di un cambio di livello su alcuni pin pre definiti

  2. a seguito di un cambio di livello dell' uscita del comparatore

Nei PIC della famiglia 18F4321 sono disponibili, oltre ai tre fondamentali, altri tre tipi diversi, alcuni comuni con i Midrange, altri propri della famiglia High End :

  1. Reset dovuto ad una sotto tensione di alimentazione (BOR - Brown Out Reset)

  2. Reset in seguito all' istruzione RESET

  3. Reset dovuto ad un overflow o underflow dello stack

A parte l' iniziale POR al momento dell' avviamento, le altre sorgenti di reset sono principalmente delle "emergenze" che forzano il riavvio del sistema a seguito di una situazione anormale (BOR, watchdog, stack overflow) oppure interrompono lo stato di sleep a causa del rilevamento di un qualche evento (variazione di livello su pin o sul comparatore).


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 16/05/13.