Tips & Tricks - PIC

 

 

Pilotaggio di carichi esterni da GPIO


In modalità uscita (relativo bit del registro TRISx = 0) i pin GPIO possono essere utilizzati per comandare direttamente una buona varietà di carichi esterni, ad esempio LED , display o piccoli relè fino ad una corrente massima di ben 25 mA.

Dato che tutte le uscite possono fornire (source) o assorbire (sink) corrente (ad eccezione dei pin open drain, solitamente limitati a RA4), Il carico può essere applicato tra il pin e la Vdd o tra il pin e la Vss;  occorrerà inserire una resistenza di limitazione della corrente al massimo consentito.

 

Ad esempio, per pilotare un LED tra un pin del micro e la Vss, il calcolo è molto semplice. Basta considerare che :
  • la tensione sul pin a livello basso (Vl) è tipicamente 0.7 V (par. D092)
  • il LED ha una sua caduta di tensione tipica (Vled)
  • il LED richiede una certa corrente tipica (Iled)

 

Il valore della resistenza in serie, conoscendo questi dati e la Vdd , sarà :

Rled = (Vdd -Vl -Vled) / Iled

Ad esempio, un LED con caduta di tensione di 1,7V e che richiede una corrente di 10 mA, alla Vdd di 5V necessiterà di :

            

Rled = (5 - 0.7 - 1,7) / 0,010 = 260 ohm

Se il LED è collegato tra il pin e la Vss va valutata la tensione disponibile al pin a livello alto (Vh) che tipicamente è Vdd-07V (par. D083):

Rled = (Vdd  - Vh  - Vled) / Iled = (5 - 0.7 -1,2) / 0,01 = 270 ohm

La differente caduta di tensione sugli interruttori MOSFET interni al PIC è molto simile sia che si stia fornendo corrente, sia che si stia assorbendo, per cui, all' atto pratico, nella stragrande maggioranza dei casi si può ricorrere a valori resistivi standard (nel caso indicato 270 ohm che fa parte di una comune serie E12).

Allo stesso modo si potranno pilotare carichi "appesi" alla Vdd.

Nel caso in cui il carico richieda più dei 25 mA disponibili, sarà necessario applicare un  buffer, ad esempio un transistor, un MOSFET o un  driver integrato tali da pilotare la corrente richiesta.

Vanno comunque considerati alcuni punti :

  • i 25mA sono applicabili ad ogni pin, ma con il limite di una massima corrente complessiva non superiore a 200 mA !
    Si tratta di un Absolute Maximum Rating, quindi un valore massimo che non è opportuno superare pena la distruzione del chip.
    Le specifiche dei microcontroller precisano nella lista iniziale dei valori massimi che non va superato un assorbimento di corrente dal pin Vdd di 200-250 mA. Possiamo considerare ragionevole, poichè sarà necessario lasciare un margine di sicurezza su questo valore e un ulteriore margine per la corrente consumata dalle altre parti del microcontroller, non superare in alcun caso un centinaio di mA continui, ovvero 5 LED a 20 mA o 10 LED a 10 mA. Minore stress per il microcontroller sarà il caso di una gestione impulsiva dei LED, con tempi di on minori del 100%. Teoricamente si potranno anche comandare 20 mA da 9 pin, ma non sarà possibile disporre di 25 mA per più di 8 pin. Praticamente è molto consigliabile non avere il package del microcontroller "caldo", per non abbreviarne decisamente la vita.
    L'uso di buffer sarà vivamente consigliato non solo nelle applicazioni in cui si superano le correnti gestibili dai singoli pin, ma anche per ridurre questa corrente a valori tali da far circolare il minimo di potenza nel package del microcontroller.
     
  • il carico esterno dovrà avere una bassa capacità (dell' ordine delle centinaia di picofarad) se il segnale deve essere all' interno delle temporizzazioni standard. Questo aspetto è più sensibile nel caso di porte di comunicazione, come I2C, SPI, ecc..
    Non ci sono grossi problemi a comandare anche capacità elevate, ma va ricordato che maggiore è la capacità, maggiore sarà il tempo necessario a caricarla e quindi a raggiungere la Vdd. Altrimenti, nel caso di PIC16, ci si potrà scontrare con il problema R-M-W.
    Nel caso di capacità elevate, il problema RMW nei PIC18 viene semplicemente sovrapassato con l' uso dei registri LATx, ma, ugualmente, si dovrà considerare che un carico con elevata capacità necessiterà di un tempo di assestamento proporzionale.
     
  • dovrà essere eliminata la componente di extra tensione di carichi induttivi , generata ad esempio dalle bobine dei relè, inserendo il classico diodo di protezione

I pin non dispongono di limitazione della corrente, per cui, anche se essa è limitata dalle impedenze interne, un corto circuito tra un pin di uscita e la tensione di alimentazione tenderà a creare situazioni in cui il chip viene danneggiato in modo permanente.
Così pure per quanto riguarda la tensione del carico, che non deve superare la Vdd; se si devono alimentari carichi a tensioni più elevate occorre interporre un opportuno buffer.


Altri argomenti correlati

Ulteriori approfondimenti disponibili:

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 12/09/12 .