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)
- la tensione disponibile al pin a livello alto (Vh) che tipicamente è Vdd-07V (par. D083):
- il LED ha una sua caduta di tensione tipica (Vled)
- il LED richiede una certa corrente tipica (Iled)
|
Per il LED collegato tra pin e Vss, il valore
della resistenza in serie, conoscendo la Vdd , sarà :
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 Vdd la resistenza sarà analoga, dato che la caduta di tensione sugli interruttori MOSFET interni al PIC è
molto simile sia che si stia fornendo corrente, sia che si stia assorbendo. All' atto pratico, nella stragrande maggioranza dei casi si può
ricorrere a valori resistivi standard (nel caso indicato si usa 270 ohm, che fa parte
di una comune serie E12). 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 e negli Enhanced Midrange 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.
Va aggiunto che negli Enhanced
Midrange sono disponibili vari chip che permettono di comandare
correnti maggiori (50-100mA). Si rimanda ai fogli dati specifici per maggiori
dettagli.
Altri argomenti correlati
Ulteriori approfondimenti disponibili:
|