Tutorials - Elettronica

 
 

Resistenza o non resistenza...


Resistenza o non resistenza, questo è il problema...

Si incontrano spesso discussioni attorno alla necessità o meno di mettere una resistenza in serie ad un LED comandato dal pin di un microcontroller.

In linea di massima, abbiamo due posizioni:

La prima, che è quella che pone il problema, è data dai seguaci dei moduli genere Arduino.
In questo ambiente nasce e si sviluppa l'idea che il microcontroller debba lavorare senza alcun elemento esterno "privo di funzione chiara".
Ad esempio: a che serve l'inutile resistenza in serie ai LED?
Tanto:
  1. la resistenza dissipa potenza inutilmente dato che il LED
  2. funziona anche senza, anzi
  3. se non la metto, è più luminoso!
  4. Dunque, perchè sobbarcarsi la "fatica" di collegare una resistenza, oltre all'aumento del costo dovuto all'acquisto di questo componente?
  5. E, sopratutto, in alcune pagine web che si definiscono "tutorial" di questa materia, i LED sono collegati direttamente ai pin, senza alcuna resistenza di limitazione della corrente. E se lo dice il guru del WEB...

... la resistenza è un pezzo eliminabile.

 

La seconda posizione a riguardo della resistenza serie è quella dei conservatori, difensori delle regole e della tradizione. Sostenitori che, abbastanza spesso, danno a queste "regole" un valore di dogma la cui violazione è un peccato capitale a prescindere. Armati di Leggi di Ohm e di principi teorici di funzionamento dei componenti elettronici, prevedono botti e fumate non appena si dà tensione al circuito che accende il LED senza resistenza (anche se non portano alcun esempio a sostegno delle proprie tesi).

Se la prima posizione è chiaramente dettata da una sensibile ignoranza, a nostro parere, la seconda è affetta da preconcetti.

Per quanti ci riguarda, riteniamo che la linea di condotta debba essere questa:

quando si fa qualcosa si dovrebbe avere ben chiaro quello che si fa.

Questo vale per ogni campo dell'agire umano.

Però, in ambito tecnico-scientifico non ha neppure le scusanti di filosofie o weltanschuung varie: se, per fare passare la corrente di 1 ampere con la tensione di 1 volt occorre la resistenza di 1 ohm, e non metto 1 ohm, la corrente voluta non ce l'ho. Posso essere anarchico, anti sistemico, ecologico, verde, vegano, marziano, arcobaleno o semplicemente un tamarro ignorante, ma se non obbedisco alla Legge di Ohm, non posso in alcun modo ottenere il risultato voluto.

I sostenitore del "senza resistenza va lo stesso" non sono in grado di fornire alcuna ragione per la loro affermazione; solo il fatto sperimentale che, evitando la spesa di 0.1 cent per una resistenza, il LED, almeno apparentemente, non brucia immediatamente e il chip pure.
Peraltro, i "conservatori" dovrebbero aver chiaro che se, nell'uso di Arduini e simili, non si determinano cumuli di LED e chip bruciati e che, anche cortocircuitando alla Vss o alla Vdd un pin del micro impostato come uscita, non si vedono fumate, una qualche ragione ci sarà.


Il LED.


Non facciamo qui un tutorial sul funzionamento dei LED, ne trovate in rete a iosa, ma dovrebbe essere nozione comune che si tratta di un componente da utilizzare "in corrente", ovvero, facendolo attraversare da una corrente ben definita, indipendentemente dalla tensione di alimentazione.

Se la corrente eccede il massimo consentito per quel componente, esso si danneggia per riscaldamento e si "brucia".
Questo è facilmente verificabile: collegate un LED ad un alimentatore in grado di fornirne una quantità di corrente sufficiente, ad esempio una batteria auto, senza alcuna resistenza in serie e la fumata è immediata.

Fino a questo punto tutti dovrebbero essere d'accordo: collegando un LED ad un alimentatore senza limitazione della corrente, se non inseriamo la resistenza in serie e se la tensione è sufficiente a mandare il LED in conduzione, esso viene distrutto immediatamente o, comunque, danneggiato tanto da non essere più affidabile.

Però, in genere non si tiene che se la corrente è superiore al massimo ammissibile, ma non tale da produrre l'immediata distruzione del componente, quello che viene ad essere danneggiato è la sua durata, che diventa aleatoria. Consultando qualsiasi documentazione tecnica sull'argomento, si rileva che, utilizzando il LED a correnti che nell'immediato non sono distruttive, ma che, comunque, eccedono i limiti indicati dal costruttore, la durata del componente si riduce e la qualità della luce emessa si degrada. Lo vediamo più avanti confermato da quanto scritto su un foglio dati richiamato come esempio.

Occorre, quindi, limitare la corrente al valore adeguato. Per fare questo si potrà usare un generatore di corrente costante, come è normale negli alimentatori per i sistemi di illuminazione a LED, ma, solitamente, avendo a disposizione una tensione stabile, per basse correnti, niente di più economico che inserire semplicemente in serie una resistenza calcolata con la Legge di Ohm.

I = V / R               (1)

che, in altre parole dice: a parità di tensione, aumentando la resistenza, la corrente si riduce.

Supponiamo di avere una sorgente di alimentazione con una determinata tensione, ad esempio una batteria da 12V. Vogliamo collegare un LED in modo che si accenda (ma non bruci...).

A questo punto, però, va fatta una considerazione: la dizione "che si accenda" non è certo una voce tecnica.

Dovremmo sapere che un LED ha alcuni parametri (che appaiono sui fogli dati del componente), tra cui la corrente nominale e la luminosità in relazione alla corrente.
In generale, la corrente nominale di un LED generico da 3 o 5mm si aggira attorno ai 20mA, oscillando tra 10 e 30mA: a queste correnti, abbiamo determinati valori di luminosità, in genere più che adeguata. Si osserva facilmente che, se la corrente è minore, la luminosità si riduce, se è maggiore, aumenta.

Però occorre ricordare che la risposta dell'occhio alla intensità luminosa NON è lineare, ovvero non siamo in grado di dire che un punto luminoso con 1mcd sia la metà luminoso di un punto con 2mcd. E' fatto verificabile da tutti che un LED indicato per 20mA nominali "si accenda" anche con solo 2mA o meno, mentre cercando di far passare 50mA la luminosità percepita non sia tanto diversa a quella ottenuta con 25mA.

Se applichiamo a questo punto la legge di Ohm per calcolare la resistenza serie, abbiamo:

Rled = Vcc / Iled (1.0)

Quindi, ad esempio, per 20mA in un LED rosso medio:

Rled = 12 / 0.020 = 600 ohm (1.1)

Sembrerebbe tutto a posto, ma se inseriamo un milliamperometro in serie, troviamo che la corrente non è 20mA, ma abbastanza di meno, probabilmente attorno ai 16mA. Perchè?

La motivazione è semplice: il LED è un semiconduttore, ovvero non è un componente la cui curva tensione-corrente è lineare, anzi.

In particolare, come comune ai diodi, evidenza una soglia di conduzione, ovvero una tensione al di sotto della quale non conduce. Questa tensione dipende dalla tecnologia costruttiva e può variare da 1.6 a 4.5V circa, principalmente a seconda del colore.

Nella figura a fianco vediamo il diagramma tensione-corrente per un LED della serie TLCX510 di Vishay: fino a circa 1.7V la corrente è trascurabile. Dopo questa soglia, il diodo entra in conduzione e la corrente sale rapidamente con la tensione.

 

 

 

 

 

 

Questa soglia non è un dato fisso, ma è soggetta a una certa dispersione per il processo produttivo e dipende sia dalla corrente che dalla temperatura.

Comunque, per semplificazione, possiamo considerare questi valori molto approssimativi:

Colore LED

Tensione di conduzione

Rosso

1.6 - 2.4

Giallo

2.1 - 2.2

Arancio

2.0 - 2.1

Blu

2.4 – 4.4

Verde

1.9 – 3.5

Bianco

3.2 – 3.6

I valori riportati posso essere anche abbastanza diversi a seconda del modello del LED e della sua tecnologia produttiva.

Comunque, possiamo dire con certezza che alla corrente nominale la tensione di accensione del LED è necessaria una certa tensione di conduzione

Questa tensione, nel calcolo della resistenza in serie, va sottratta alla tensione di alimentazione:

Rled = (Vcc-Vled) / Iled           (1.2)

Quindi, ad esempio, per 20mA in un LED rosso medio alimentato a 5V:

Rled = (5 – 2) /0.020 = 150 ohm          (1.3)

Dovrebbe essere chiaro che la resistenza in serie ha senso nel caso in cui la tensione sia costante. Se la tensione varia, varia anche la corrente.
Fortunatamente, nel caso che stiamo trattando, ovvero un LED comandato dal pin di un microcontroller, la tensione di alimentazione Vdd è quanto possibile costante (e con valori tipi ben definiti, in generale tra 5V e 3V), quindi il sistema "resistenza in serie" è adeguato.

Certamente la resistenza dissipa una potenza in calore per la Legge di Joule:

P = R * I2            (1.4)

e questo fato è inevitabile: ovunque ci sia una resistenza attraversata da una corrente, lì c'è produzione di calore in proporzione al valore della resistenza e al quadrato della corrente, formula che possiamo scrivere anche come:

P = V * I = V2 / R              (1.5)

e che possiamo leggere così: dove si determina una caduta di tensione a causa di una corrente che attraversa una resistenza, lì si produce calore.
Teniamo presente questo fatto, a cui faremo riferimento più avanti.


ATTENZIONE: Tutti i LED NON sono uguali.

Abbiamo caratterizzato tre LED che abbiamo usato per le prove.

Per primo un LED rosso generico, per correnti tra 5 e 70mA

Si tratta di un LED con corrente nominale tra 10 e 20mA, max. assoluto 50mA.
Osserviamo che la Vf è funzione della corrente e parte da 1.9V a 5mA per arrivare a 2,69V a 50mA.

Un LED verde:

Si tratta anche qui di un componente previsto per correnti da 10 a 20mA, con una If massima di 50mA. La tensione Vf è maggiore di quella del LED rosso, partendo da 2,38V a 5mA per arrivare a 3.14V a 50mA. Questo vuol dire che con un alimentazione a 3V sarà possibile solo una limitata gamma di correnti.

E un LED blu:

Si tratta di un componete ad alta efficienza previsto per operare sempre tra 10 e 20mA.
La tensione di conduzione è drasticamente maggiore di quella dei LED precedenti: 3.72V a 5mA e 4.92V a 60mA. E' evidente che potremo usare questo LED solo con tensioni di alimentazione di almeno 5V.
La tabella si arresta a 60mA perchè già a questa corrente non c'è più possibilità di alimentare il LED con una tensione di 5V, mentre con Vdd = 3V non c'è alcuna possibilità di utilizzarlo (dato che la tensione di conduzione è minore di quella con cui alimentiamo il LED...).

Teniamo presente queste argomentazioni, dato che da esse dipende la possibilità o meno di impiegare un certo LED con una certa tensione di alimentazione.

Le caratterizzazioni riportate sopra riguardano i LED che sono stati testati. Esistono LED con caratteristiche assai diverse, anche se dello stesso colore. Ad esempio, si possono trovare LED verdi o blu con Vf minore o LED a bassissima corrente (anche 0.5mA) o elementi a bassa efficienza che richiedono forti correnti per emettere una luminosità "decente".
Per conoscere i parametri corretti occorre dare uno sguardo al foglio dati.
Da qui la inconsistenza dell'acquisto di LED "cinesi" senza documentazione, che spesso vanno bene per applicazioni generiche che non richiedono alcuna precisione: basta che si accendano.

C'è da dire, in effetti, che il criterio generalmente adottato nel dimensionamento del circuito del LED è: "basta che si accenda con una luminosità sufficiente".

Per il LED rosso caratterizzato sopra usiamo la (1.3): abbiamo inserito una Vf di 2V per una corrente di 20mA; questa è una semplificazione, perchè, in effetti la Vf a quella corrente, per quel modello di LED è 2,2, per cui il calcolo renderà non 150ohm, ma 140ohm. Sono certamente dettagli, dato che la minima differenza sulla corrente non porta ad alcuna variazione visibile della luminosità. Peraltro la resistenza calcolata potrebbe non esistere nella serie E usata e quindi si debba ripiegare su un valore vicino.

Il fatto importante, però, è che, applicando la semplificazione comune, come quella di adattare la resistenza calcolata al valore disponibile, sia ben chiaro cosa succede in realtà. Quindi, potrò benissimo utilizzare un valore di Vf medio, basta che ne sia consapevole.
Nel caso sia necessaria una corrente precisa per una particolare situazione, saprò come comportarmi.


Vf e tensione di alimentazione.

Possiamo dire, senza alcun dubbio, che:

  • alla corrente nominale, per accendere il LED è necessaria una certa tensione di conduzione.
  • Quando il LED conduce, una resistenza in serie è indispensabile per limitare la corrente diretta

Nel circuito fonte di tensione-LED, senza resistenza in serie, l'unica limitazione della corrente è data dalla resistenza interna del generatore e dei cavi. Quest'ultima è trascurabile e la prima è volutamente molto bassa per non avere cadute di tensione nel generatore.

Supponiamo che la resistenza sia solo quella data dai conduttori e dalla batteria, ad esempio 2ohm:

Iled = (Vbatt-Vled) / R = (12 – 2) / 2 = 5A      (1.6)

Ecco perchè, collegando direttamente il LED alla batteria, in una frazione di secondo il silicio viene vaporizzato: la corrente è tale da surriscaldare il LED tanto da distruggerlo. E, data l'intensità di corrente disponibile, la cosa avviene in frazioni di secondo.

Va detto ancora, per avere un quadro completo, che la corrente nominale di un LED dipende dal modello. Ecco, ad esempio, la tabella dei Absolute Maximum Ratings di un LED della serie C503 di Cree. Si tratta di un elemento per uso generale, in colore rosso e case da 5mm.

Osserviamo che, per quello che riguarda la corrente di picco discontinua, il limite non superabile è 200mA, ma viene chiaramente indicato che questo è possibile solo per tempi minori di 100us e con con un duty minore di 1/10 (ovvero LED acceso per 100us ogni millisecondo).

Il concetto di questa informazione è il seguente: un breve impulso di sovra corrente riscalda il materiale del semiconduttore, ma se si lascia un tempo sufficiente, questo calore si smaltisce nell'aria circostante ed è possibile ripetere l'impulso ciclicamente.

Si tratta, comunque, di Absolute Maximun Ratings, ovvero di valori che il costruttore indica come massimi in assoluto e da non superare in alcun caso.


Absolute Maximun Ratings ?


La presenza di valori massimi di funzionamento non esiste solo per il dispositivi elettronici, ma è un principio comune a tutte le realizzazioni tecniche.  

Ogni realizzazione tecnica ha dei limiti nelle sue possibilità di funzionamento.

Se consideriamo una autovettura, troviamo che esiste sicuramente un Absolute Maximum nel numero dei giri: se facciamo superare al motore il valore limite, abbiamo sicuramente in breve tempo, a seguito del fuori giri, una rottura delle parti sottoposte ad eccessivo stress.

Ora, un fuori giri si sente acusticamente, mentre una sovra corrente elettrica non si vede, però non è un motivo per ritenere che il fuori giri per il motore sia inammissibile mentre lo sia la sovracorrente per il circuito elettrico. Anche il fatto che un'auto nuova costa migliaia di euro e un LED solo pochi centesimi non significa non si debba danneggiare la prima , ma i secondo si possa.

Continuiamo l'esempio automobilistico: se la velocità massima è tot km/h, mandando il motore a questa velocità per un lungo tratto autostradale, lo si riscalda in maniera pericolosa e, ripetendo la cosa per un tempo sufficiente, se ne riduce drasticamente la durata, se non si ottiene prima la rottura di qualche parte. A breve l'effetto dell'eccesso di potenza richiesta può non essere visibile, ma su un tempo più lungo è certamente causa di guasto. Un tentativo di porre rimedio a questo è l'arrestarsi per un certo tempo in modo da far raffreddare il motore prima di riprendere il viaggio.

Altrettanto è applicabile al LED: sovraccaricare con una corrente eccessiva porta ad un riscaldamento anomalo che, se sul breve non si percepisce, in un tempo più lungo porterà a guasti o riduzione di affidabilità. Se sovraccarichiamo il LED, è ben possibile che dopo pochi minuti non si noti nulla di anormale, ma dovrebbe essere chiaro che lo stress si farà drammaticamente sentire dopo qualche ora di funzionamento irregolare. Occorre che il componente possa smaltire il calore in eccesso.

Quello che vogliamo dire è che non si tratta di accettare acriticamente gli Absolute Maximun Ratings e adorarli come dogmi, ma

se il costruttore li ha fissati per la vostra auto e per il vostro LED, che senso ha accettare i primi e violare i secondi?


Dunque?

Per quanto detto sopra, (e per chi non ci crede è comunque facilmente sperimentabile) dovrebbe essere chiaro a tutti che collegare un LED ad una fonte di alimentazione che non limiti la corrente vuol dire distruggere il LED.

Allora, ci si può chiedere: se comando il LED con un pin del microcontroller (anche Arduino lo è, montato su una scheda e i cui pin sono accessibili dai connettori laterali , nonostante la nozione sia molto vaga per troppi utenti) perchè devo omettere la resistenza in serie?

Il "conservatore" dirà: da un punto di vista numerico, Herr Ohm dice che, se la tensione di alimentazione del microcontroller è 5V e la tensione diretta sul LED è 2V, collegando senza resistenza in serie (consideriamo solo 1ohm per contatti e connettori) abbiamo:

Ied = (5 – 2) / 1 = 3A        (1.7)

Col che il LED sarebbe vaporizzato immediatamente.

Però l'"arduinista" ribatte che, in pratica, se collega il LED tra il pin e la massa, questo si accende senza venire distrutto.

Per contro, se provasse a collegare il LED direttamente ai morsetti dell'alimentatore da banco a 5V, lo vedrebbe immediatamente bruciare: se avete un LED da sacrificare potete fare voi stessi la prova...

Ora, ci si dovrebbe chiedere: perchè, se l'alimentazione è sempre 5V, in un caso il LED brucia immediatamente e nell'altro no?

La risposta dovrebbe essere evidente: qualcosa nel circuito del microcontroller aggiunge una resistenza serie tale da limitare la corrente e impedire i fuochi artificiali.

Questo qualcosa è la resistenza di conduzione Rdon dei MOSFET che costituiscono il buffer di uscita del pin.

La struttura totem pole prevede due MOS complementari, uno P verso la Vdd e uno N verso la Vss.
Questo è tipico delle tecnologie a MOS complementari (CMOS). Quando i MOS sono disabilitati, l' impedenza di uscita è virtualmente infinita. 
Quando uno dei due viene attivato, la sua resistenza cade a valori dell'ordine di un centinaio di ohm o meno.
Il MOS N collega il pin di IO alla Vss e il MOS P lo collega alla Vdd.

In effetti , quando ci si riferisce a MOSFET e non a transistor a giunzione, è più corretto parlare di resistenza più che di caduta di tensione: un transistor o un diodo ha una tensione di conduzione tipica, mentre un dispositivo MOS presenta una resistenza di conduzione Rdon.

Una ulteriore considerazione che si può aggiungere è quella che, per ragioni di tecnologia costruttiva, la resistenza interna degli elementi P è generalmente più alta di quella degli elementi N.
La conseguenza è che, a pari corrente, la caduta di tensione introdotta sarà maggiore per un  carico pilotato verso la Vss (attraverso il MOS P) piuttosto che dalla Vdd (attraverso il MOS N).

Ed infatti la conferma è nei parametri D090 e D080 del foglio dati dei Midrange, dove vengono fornite le seguenti indicazioni :

Param. no.

Symbol

Characteristic

Min.

Max.

Conditions

D080

Vol

Output low voltage

-

0.6 V

Iol = 8.5 mA Vdd = 4.5 V

D090

Voh

Output high voltage

Vdd-0.7

-

Ioh = -3 mA Vdd = 4.5 V

Ovvero, ci potranno essere nelle peggiori condizioni, una caduta di tensione di 0.6 V sul MOS N e 0.7 V sul MOS P.

Osservate che le correnti indicate nel test sono molto minori del limite di 25mA. Questo è corretto perchè se è evidente che il microcontroller è un tutto-in-uno, non si deve per questo pretendere che sia in grado di comandare direttamente carichi di potenza.
I pin in uscita funzionano molto bene se sono utilizzati a valori di corrente minori della massima. Se dobbiamo guidare carichi con correnti superiori, la soluzione è quella di utilizzare dei buffer esterni ( BJT o MOSFET), per cui il pin emette solamente la bassa corrente di comando della base o del gate (da osservare che, comunque, quando si comanda la base di un BJT, occorre interporre una resistenza in serie, onde evitare una corrente eccessiva...). Vediamo qualcosa in merito ai famosi 25mA più avanti.

Un buona progettazione che privilegia l'affidabilità, inserirà dei buffer tra il pin e il carico. Questo non toglie che il progettista possa usare la corrente erogabile dal pin per comandare piccoli carichi come LED o SSR.

Supponendo di alimentare il LED tra il pin di I/O e la massa (Vss),  la corrente che scorre nel LED non è determinata solo la caduta di tensione della resistenza dVR e da quella del LED dVled , ma anche da quella sul MOS P (current source) del drive dVP.

 

E nel caso del drive dalla Vdd, attraverso il MOS N (current sink).

Da osservare che in entrambi i casi la corrente del LED attraversa i pin di alimentazione del chip.

Quindi, la corrente di più carichi seguirà la stessa via, richiedendo una verifica per evitare il superamento della massima ammissibile per il chip.

 


25mA?

La stragrande maggioranza degli utilizzatori di PIC, alla domanda: quanta corrente posso estrarre da un pin, risponde con sicurezza : 25mA.

Purtroppo la risposta, per lo meno, manca di precisione. Siccome siamo in ambito tecnico, è opportuno che quanto si sostiene sia preciso e documentabile.

Se consultiamo i fogli dati dei vari PIC, possiamo trovare in alcuni (ma non in tutti) dei diagrammi che mettono in rapporto la tensione a livello basso (VOL) o quella a livello alto (VOH) dei pin configurati come uscite, e la corrente erogata, in relazione con la temperatura.

Ad esempio, per 12F683, abbiamo un grafico per la VOL vs. IOL, per una Vdd di 5V , in relazione alla temperatura.

Osserviamo che, come ci si poteva aspettare dal comportamento tipico dei MOSFET, l'aumento di temperatura corrisponde ad un aumento della Rdson e quindi ad una riduzione della corrente.

Il diagramma riporta solo il tratto della curva, dove il rapporto tra tensione è corrente è più o meno lineare

La stessa curva per VOH vs. IOH. Il tratto della curva "lineare" riguarda correnti decisamente minori.

In tutti i casi, i diagrammi non si estendono al valore massimo della corrente nominale, ovvero i famosi 25mA; tanto meno riguardano una situazione di corto circuito.

Possiamo comunque trarre da questi diagrammi alcune deduzioni:

  • parrebbe evidente che il consiglio del costruttore sia quello di usare il pin con correnti decisamente inferiori al valore massimo (25mA è un Absolute Maximum...)
     
  • per queste correnti il livello logico della tensione al pin è all'interno dei parametri dell'interfaccia TTL (VOL<0.8V e VOH>2V)

Questo secondo punto può essere considerato trascurabile se usiamo il pin per alimentare un LED, ma non lo è se ci aspettiamo che, caricato il pin con una corrente oltre i limiti dei diagrammi, il livello di tensione sia ancora compatibile con quelli previsti per l'interfaccia TTL o anche CMOS.

Quindi, non c'è nel foglio dati indicazione che giustifichi il raggiungimento (e tanto meno il superamento) del valore di corrente massimo di 25mA.

Peraltro, risulta evidente che la corrente a livello alto (MOSFET P) è decisamente minore di quella a livello basso (MOSFET N).

Se, però, consultiamo il data sheet di un componente recente, ad esempio il16F1614/18, troviamo delle curve estese del rapporto tra tensione al pin e corrente (perfino a colori) in funzione della Vdd e della temperatura.

Vediamo i diagrammi.

Per tutte le situazioni, il rapporto corrente/tensione dipende fortemente dalla temperatura: aumentando questa, la corrente si riduce.

Il diagramma riguarda la curva
VOH vs. IOH per una Vdd = 5V.
Il pin è a programmato a livello alto e il carico è tra pin e Vss (MOSFET P).

La curva verde, a 25°C , si estende fino alla corrente di corto circuito, che poco più di 25mA.

Siamo al di fuori della specifica TTL (2V) per correnti oltre i 24mA circa.

 

Il diagramma riguarda sempre la curva
VOH vs. IOH, per una Vdd = 3V.

Pur restando la differenza sensibile dovuta alla temperatura, la corrente di corto circuito si è ridotta a 9mA circa.

Siamo fuori dall'area LVTTL-CMOS (2V) per correnti sopra i 7mA

La stessa curva
VOH vs. IOH, per una Vdd = 1.8V.


Non siamo più in interfaccia compatibile con i livelli TTL.

La corrente erogabile è drasticamente ridotta. In corto, si tratta di poco più di 2mA

Siamo fuori dalla specifica CMOS (1.7V) già con 1mA.

 

Drastica differenza con i pin High Current, per una Vdd = 5V.

La corrente di corto circuito sale a ben 160mA.

Da notare che un corto circuito, qui, avvicina drammaticamente la sua corrente alla massima ammessa per il chip: dovrebbe essere evidente che una cattiva gestione dei pin High Current può mettere a rischio il chip.

Il livello TTL (2V) è mantenuto fino a 150mA circa.

Abbiamo qui la VOL vs. IOL con Vdd = 5V.

Il pin è a programmato a livello basso e il carico è tra pin e Vdd (MOSFET N).

Le correnti, dovute alla minore resistenza del MOSFET N, son ampiamente più elevate di quelle di source.

Il corto circuito vale oltre 55mA.

Il livello TTL (2V) è violato per correnti oltre i 50mA.

Come prima, con una Vdd = 3V, le correnti si riducono.

Il corto circuito vale poco oltre 20mA.

Il livello logico è violato per correnti oltre i 20mA.

Per la Vdd = 1.8V, le correnti sono ancora più ridotte.

Il corto è a 6mA.

Il livello logico è violato per correnti oltre i 5mA circa.

Per i pin High Current, con una Vdd = 5V, le correnti sono sensibilmente maggiori.

Il corto circuito è a 140mA.

Anche in questo caso, ci si avvicina drammaticamente alla corrente massima ammessa per il chip: dovrebbe essere evidente che una cattiva gestione dei pin in uscita a livello basso può mettere a rischio il componente.

Osserviamo il diagramma relativo al rapporto Tensione/Corrente/Temperatura del pin a livello basso


Consideriamo la curva Typical (verde) che si riferisce ad una temperatura di 25°C. La Vdd è 5V.
Possiamo dividerla in 4 sezioni:
  • una prima sezione (limite viola) in cui la Vol resta all'interno della caratteristica di compatibilità TTL (0.8V). Il rapporto V/I è abbastanza lineare (aumento della corrente, aumento della tensione, ovvero resistenza del MOSFET abbastanza costante)
  • un secondo tratto (limite marrone) dove si supera la VolTTL, ma la variazione è ancora abbastanza lineare, anche se inizia a vedersi una certa curvatura
  • un terzo tratto (limite arancio) dove la la variazione diventa fortemente non lineare, con un deciso ginocchio.
    Per un aumento della corrente, la tensione aumenta in modo maggiore. La resistenza del MOSFET sta salendo.
  • un ultimo tratto (oltre l'arancio) dove il rapporto è lineare, ma la pendenza è praticamente verticale. Un piccolo aumento della corrente produce un elevato aumento della tensione. La resistenza del MOSFET si alza rapidamente.

Per quanto riguarda le altre curve (rossa e blu), si nota come la temperatura, aumentando, aumenti significativamente la resistenza del MOSFET, mentre riducendosi, si riduca anch'essa.
Il chip molto caldo potrà gestire una corrente minore. Il chip molto freddo potrà gestire correnti maggiori.

Osserviamo che per questo chip, la corrente con livello TTL è superiore ai 25mA genericamente indicati come limite per i PIC.
A 50mA, che è il lite specifico per questo modello, il livello basso non è più TTL compatibile, ma siamo ancora in un tratto di curva non proprio al limite.

L'ultimo tratto della curva conduce ad una corrente di corto circuito tra 55 e 60mA, ma siamo in una condizione limite: se colleghiamo un milliamperometro tra pin e Vdd e portiamo il pin oltre i 45-50mA osserviamo che l'indicazione scende progressivamente fino a stabilizzarsi ad un determinato valore, un poco inferiore a quello iniziale, segno che il MOSFET si è riscaldato.
Se mettiamo in corto l'uscita, la corrente inizia a scendere, anche qui fino a stabilizzarsi ad un valore minore, mentre la temperatura del chip aumenta.

Se osserviamo il diagramma del rapporto Corrente/Tensione per il pin a livello alto, abbiamo una situazione abbastanza simile:

  • Un primo tratto lineare (limite viola) che termina ad una corrente abbastanza inferiore a 25mA.
     
  • Da qui al limite marrone, la linearità è abbandonata e la curva inizia il ginocchio. Al limite marrone, il livello alto del pin è al limite accettabile per la compatibilità TTL (2V), mentre la corrente erogata è minore di 25mA
     
  • Dopo di che la pendenza è decisa e termina con una corrente di corto circuito di poco più di 25mA

Anche qui l'aumento della temperatura ha l'effetto di aumentare la resistenza del MOSFET e viceversa.

Notiamo che la corrente di 50mA non è raggiungibile con 5V di alimentazione e pertanto non lo sarà neppure per Vdd minori.

Questo indica chiaramente che la affermazione di 50mA per la corrente al pin è possibile solamente per un carico tra pin e Vdd (sink currente, MOSFET N).
Nel caso di carico tra pin e Vss (source current, MOSFET P), le correnti ottenibili saranno minori.

Inoltre, la corrente nominale (o anche solo i 25mA) può portare il pin in una condizione non compatibile con la specifica TTL.
Questo vuol dire che se usiamo il pin per comandare carichi con una certa corrente, non possiamo usarlo per interfacciare periferiche che necessitano di livelli TTL. Ad esempio, se comandiamo una memoria esterna o un buffer di potenza e mettiamo sul pin un LED per monitorare lo stato, dobbiamo far si che la corrente consumata dal LED sia la minima possibile. La cosa è facilmente ottenibile usando LED ad alto rendimento e bassa corrente (esistono LED anche da soli 0.5mA) oppure interponendo un buffer con ingresso a minima corrente.

Se confrontiamo i diagrammi per le altre Vdd proposte (3V e 1.8V) vediamo confermato quanto sopra:

  • la corrente ottenibile dal MOSFET P è inferiore a quella ottenibile dal MOSFET N
  • volendo usare il livello logico del pin, dobbiamo tenere bassa la corrente.

In relazione all'accendere LED, è evidente che se la tensione Vf è maggiore di quella ottenibile al pin, il LED non si potrà accendere. Ad esempio, un LED blu con Vf = 4V si potrà utilizzare solo con Vdd=5V. Inoltre, se la corrente che desideriamo far circolare impone una Vf minore di quella necessaria, il LED potrà lavorare solamente a correnti minori, con una possibile riduzione della luminosità.

Possiamo derivare alcune conclusioni:

  • la corrente nominale (25 o 50mA) è erogabile solo con Vdd =5V.
    La corrente per tensioni inferiori ai 4.5V è molto minore di quella ottenibile con Vdd=5V.
    La riduzione delle tensione produce una contemporanea riduzione della corrente massima erogabile, ovvero la cdt sui MOSFET è abbastanza uniforme.
     
  • Sussiste sempre una differenza tra la corrente assorbita e corrente emessa.
    La corrente nominale è ottenibile solo con Vdd=5V per sink , ma non per source, mentre già con 3V non è ottenibile in nessuna delle due direzioni.
     
  • La temperatura ha un effetto molto pronunciato sulla corrente. Una curva tipica è disegnata a 25°C, temperatura, però, facilmente superabile in estate e in tutto l'anno all'interno di scatole o quadri.
     
  • La corrente di corto circuito del pin è limitata dalla Rdson del MOSFET attivo ed diversa a seconda del collegamento
     
  • la corrente di corto circuito può essere sensibilmente elevata, tanto da far presumere danni al componente nel caso dell'evento protratto.

In sostanza, si può dire che:

  • I famosi "25mA" sono una corrente generica indicata come massimo assoluto erogabile da un pin
  • questo dato era originariamente inteso per Baseline e Midrange, ma si tratta di un dato inapplicabile agli Enhanced Midrange, che hanno caratteristiche superiori.

Alcuni nuovi chip possono, come quello visto ora, erogare anche 100mA su un paio di pin.

Quindi, il "25mA" è una delle tante "imprecisioni" che costellano l'ambiente che ruota attorno alla tecnologia, dove l'innovazione è sempre più veloce dell'apprendimento.(o meglio, della disposizione ad impegnare tempo nell'apprendimento delle novità...).

Perchè queste correnti maggiori? Proprio per poter pilotare carichi maggiori senza richiedere buffer esterni, rendendo più versatili i chip.
Una corrente maggiore si ottiene con una minore Rdson dei MOSFET, ma questo determina anche il fatto che i valori della corrente di corto circuito dei pin possono essere sensibilmente elevati, tanto da far presumere danni al componente.
Quindi, qui ancor più che per i chip precedenti, occorre limitare la corrente massima.

Quanto sopra dovrebbe già dare una risposta chiara agli "arduinisti" e sfatare un po' di dogmi dei tradizionalisti.

Però, per completezza, abbiamo voluto fare una breve ricerca su alcuni chip comuni, nei cui fogli dati le curve tensione vs. corrente sono assenti o parziali, per verificare il limiti reali.


Fogli dati e test.

I fogli dati citati prima sono particolarmente completi e ben fatti, ma, sfogliandone altri, in relazione al problema delle correnti/tensioni in uscita, si rileva una sensibile mancanza di uniformità.

Nella ricerca non sono stati considerati i PIC18F che sono relativamente poco usati dagli hobbisti e così pure i PIC 26 e 32, limitandosi a Baseline, Midrange ed Enhanced Midrange.

Per tutti i Baseline e Midrange viene dato come Absolute Maximim Ratings la corrente di 25mA, ma varia la corrente massima del chip, quella dai port e i grafici VOH/IOH e VOL/IOL.

Elenchiamo alcuni chip:

PIC

Max current
al chip

Sink/sourc totale

Tot. power

Grafici
VOL vs. IOL
VOH vs. IOH

12F683

95mA

25mA per pin
90mA tot.

800mW

si

16F690

@Vss 300mA
@Vdd 250mA

25mA per pin
200mA tot.

800mW

Non presenti

16F84A

@Vss 150mA
@Vdd 100mA

Separati per PORTA e PORTB

800mW

si

12F629/675

@Vss 300mA
@Vdd 250mA

25mA per pin
125mA tot.

800mW

Non presenti

16F688

100mA

25mA per pin
200mA tot.

1W

si

16F88x

95mA

25mA per pin
90mA tot.

800mW

si

10F322

250mA

50mA per pin

800mW

Non presenti

12F1571

250mA

50mA per pin

800mW

Non presenti

16F1826

@Vss 396mA
@Vdd 292mA

50mA per pin

800mW

si

16F1614/8

250mA

50mA per pin
100mA per 2 pin high current

800mW

si

Un particolare che dovrebbe essere tenuto in conto è che esiste una potenza massima dissipabile dai chip e che è praticamente, salvo alcune eccezioni, fissa a 800mW (quello che sorprende è che questo valore è dichiarato identico, sia che si riferisca a un SOT23-6 sia ad un DIP-40..).

In ogni caso, notiamo che:

  • NON è possibile fornire la corrente massima se non da un numero limitato di pin contemporaneamente. Ad esempio, negli Enhanced con i pin High Current, uno solo per volta potrà dare i 100mA, dato che la corrente massima complessiva non deve superare i 250mA (che comprende anche quelle corrente necessario a al funzionamento del chip stesso e dei moduli attivati).

Quindi, una cosa è prelevare 25 o più mA da un pin o due, una ben diversa è cercare di ottenere queste correnti da un intero port, come capita quando si comandano display a 7 segmenti.
Se un pin sottoposto a riscaldamento per una corrente elevata creerà una piccola area calda, un intero port sovraccaricato determinerà un'area calda molto più importante, con conseguenze non certo positive.

Se consideriamo i MOSFET, troviamo che la Rdson aumenta con la corrente che lo attraversa e anche con l'aumentare della temperatura, fatto questo che limita il run down termico che colpisce, invece, i BJT.

Ma:

ATTENZIONE

questo non vuol dire minimamente che un MOSFET sia auto protetto contro le correnti eccessive

ma solo che la tendenza è quella di un aumento della resistenza interna. Questo aumento, però, non è per nulla in grado di evitare che una corrente troppo elevata o un aumento di temperatura eccessivo distruggano il chip.

E una corrente che scorre in una resistenza determina potenza persa in calore per l'effetto Joule.

Se consideriamo il PIC16F1614 visto sopra, un corto circuito del pin ad alta corrente verso massa è di 160mA; questi vuol dire che a 5V la potenza dissipata dal MOSFET è di ben 800mW, ovvero, da sola, il limite massimo per il componente intero. E' possibile che il silicio regga per certo tempo, ma siamo nella situazione dell'automobile mandata alla massima velocità: dopo un tempo adeguato, il motore (e il chip) cedono...


Se per gli Enhanced Midrange i fogli dati sono abbastanza esaustivi, per i Baseline e Midrange posso non esserlo affatto. Come abbiamo visto nella tabella sopra, possono mancare del tutto i grafici corrente/tensione.

Abbiamo allora effettuato una serie di test con alcuni chip Midrange, genere 12F683, 16F684, 16F690 e simili.

Non si tratta di una ricerca estesa a centinaia di elementi, dato il tempo e le risorse che questa richiederebbe, ma solo una breve analisi di alcuno modelli molto comuni.
Però, dato che i risultati sono stati parecchio uniformi, ci si può azzardare a dire che quanto ricavato ha un valore abbastanza generale.

Sono stati realizzati due collegamenti base:

  • il primo con un carico variabile costituito da una scatola di resistenze di precisione, collegandola tra pin e massa e tra pin e Vdd (current source), con un voltmetro per misurare la tensione al pin.
    In questo caso, è il MOSFET alto, canale P, a collegare il pin con la Vdd.
    La corrente, per non introdurre la cdt dello strumento, sensibile su tensioni così basse, è stata misurata ai capi di una resistenza di precisione in serie al circuito.
  • il secondo circuito è del tutto identico, ma con il carico tra pin e Vdd (current sink). In questo caso è il MOSFET basso, canale N, a collegare il pin alla Vss.

In questo modo si può tracciare una tabella di valori per vari carichi e correnti, fino a corto circuito.

Ecco i dati rilevati per il carico verso la Vss (MOSFET P) per un Midrange genere 12F683:

Osserviamo che la resistenza è contenuta tra 52 e 68 ohm per una variazione di corrente da 5 a 25mA. Oltre, la resistenza sale bruscamente, mentre anche la temperatura del chip sale: sul breve periodo la cosa non è evidente all'esterno, ma si nota dal fatto che la corrente diminuisce; questo significa che il MOSFET si scalda e la sua Rdson aumenta.

Da notare con con il carico costituito dal solo milliamperometro, la corrente arriva al massimo a 33-34mA.

Ovvero: in queste condizioni, il corto a massa del pin non distrugge il chip, almeno non istantaneamente.

Ripetiamo:

ATTENZIONE

Questo non vuol dire che il componente dispone di un limitatore di corrente, come sostiene erroneamente qualcuno, ma che la resistenza del MOSFET è il limitatore.

Questo fatto non va considerato un fattore positivo, da sfruttare.

Si tratta infatti di una condizione limite che scarica calore per effetto Joule sulla giunzione del MOSFET che finiamo per utilizzare come resistenza limitatrice della corrente: non è questa la funzione dei MOSFET del drive di uscita dei pin.

Il fatto che ogni prodotto tecnologico dichiara dei massimi non vuol dire minimamente che questi massimi possano essere costantemente sfruttati o addirittura superati: la durata del prodotto si riduce drasticamente. Ricordate l'esempio dell'automobile.

Se a breve termine la cosa non pare portare problemi evidenti, è chiaro che sul lungo termine stiamo usando il pin al 130% e più delle sue possibilità nominali, il che è fattore di riduzione della vita del componente e, sopratutto, della sua affidabilità.

Questa è la tabella per il carico tra pin e Vdd (MOSFET N).

Osserviamo che la resistenza del MOSFET N è, come previsto, minore di quello P e varia tra 17 e 20 ohm circa nell'arco utile dei 25mA. 
Poi, anche qui, sale con l'aumentare della corrente.

Dato che la resistenza è minore, la corrente in uscita può ampiamente superare i 25mA, arrivando attorno ai 70mA in caso di corto circuito.

L'effetto "limitatore" della Rdson c'è, ma a valori di corrente tali da essere troppo oltre i limiti di sicurezza.
Ovvero: anche qui, il corto non distrugge il chip, almeno non istantaneamente.
Ma la corrente è quasi il 300% di quella nominale....

Ed, in effetti, si,nota il progredire di un riscaldamento dal ridursi progressivo della corrente oltre i 35mA, ma anche da un leggero riscaldamento del chip, indice che la situazione è foriera di danno.

Verificando altri chip, i dati di corto circuito sono stati mediamente questi

Connessione

Corrente di cortocircuito

pin H a Vss, Vdd = 5V

>30mA

pin H a Vss, Vdd = 3V

>10mA

pin L a Vdd, Vdd = 5V

>70mA

pin L a Vdd, Vdd = 3V

>30mA

Osserviamo che la resistenza del MOSFET N è, come previsto, minore di quello P e varia tra 17 e 20 ohm circa nell'arco utile dei 25mA. Poi, anche qui, sale con l'aumentare della corrente.
Dato che la resistenza è minore, la corrente in uscita può ampiamente superare i 25mA, arrivando attorno ai 70mA in caso di corto circuito.

Qui siamo in condizione molto più pericolosa della precedente, dato la corrente di corto è quasi tre volte la massima nominale. L'effetto "limitatore" della Rdson c'è, ma a valori tali da essere troppo oltre i limiti di sicurezza (250% della corrente massima ammessa).
Anche qui, si nota il progredire di un riscaldamento dal ridursi progressivo della corrente oltre i 35mA, ma anche da un leggero riscaldamento del chip, indice che la situazione è foriera di danno.

E, consideriamo che è stato sovraccaricato un solo pin per volta. Chi ha qualche chip da buttare potrebbe provare a cortocircuitare un intero port e vedere cosa succede...

Dal punto di vista dell'interfaccia logica, se osserviamo, il livello degli 0V, oltre i 40mA è inadeguato. Quindi, se carichiamo troppo un pin, un eventuale dispositivo ad esso collegato potrebbe ritrovarsi con livelli logici del tutto inadeguati e funzionare in modo aleatorio

L'osservazione principale che si può fare è:

  • cortocircuitando un pin impostato come uscita a livello 1 con la Vss o a livello 0 con la Vdd non si crea alcuno spettacolo pirotecnico, né il pin si distrugge immediatamente.

Questo avviene perchè la corrente è fortemente limitata dalla resistenza interna dei MOSFET del buffer di uscita

ATTENZIONE- RIPETIAMO: quanto sopra non vuole minimamente dire che i pin siano a prova di corto circuito!
E' evidenziato solamente che la corrente erogata è limitata dalla resistenza dei MOSFET.

In altre parole: la dissipazione di potenza in calore si concentra sui MOSFET; questa certo non è una buona cosa.


E l'Arduino?

Se colleghiamo il LED al famoso pin 13 senza resistenza in serie e misuriamo la corrente assorbita, questa si posiziona oltre i 70mA.

Non è quello che si intende normalmente come "uso coretto dei componenti".

Il fatto che né il chip, né il LED "brucino" istantaneamente e che lo stesso costruttore indichi che :"...collegarlo direttamente tra un pin e la massa non è consigliabile, se non per tempi molto brevi" conferma che si tratta di una pratica da evitare per i motivi fino ad ora spiegati, anche se, fortunatamente, non porta alla morte immediata dei componenti.

Però la relazione tra i fatti e la teoria non è quella che "tanto funziona, quindi si può fare", ma "sappiamo di cosa si tratta, ovvero di una forzatura dei limiti di funzionamento e la applichiamo sapendo cosa stiamo facendo".

Qui altre informazioni sul pin 13.


Un intermezzo per chiarire alcuni punti.

Qui può essere utile aggiungere una considerazione importante, che spesso è trascurata o non conosciuta.

A causa delle induttanze/capacità inevitabilmente introdotte da qualsiasi cablaggio:

E' ALTAMENTE SCONSIGLIABILE COLLEGARE O SCOLLEGARE QUALSIASI CARICO DAI PIN DEL MICROCONTROLLER CON L'ALIMENTAZIONE INSERITA !

Tutte le prove sono state fatte effettuando le connessioni necessarie e poi fornendo tensione al circuito.

Fili volanti, connessioni incerte, cablaggi malfatti, breadboard economiche con contatti difettosi, sono tutti possibili fonte di danno ai pin del micro, a causa delle sovratensioni che si generano nel collegare/scollegare con la tensione di alimentazione presente: a causa delle componenti reattive sempre presenti nei circuiti, le sovratensioni che si possono formare sono mortali per i componenti elettronici complessi.

Quindi, prima togliere tensione, poi effettuare le modifiche.

Va fatta attenzione che un danno immediato e irreversibile lo possiamo determinare semplicemente collegando il pin ad una tensione più alta della Vdd (per non dire ad una tensione negativa).
In tal caso, se la corrente erogata dall'alimentazione è sufficiente, abbiamo anche l'attesa scintilla e il relativo botto con fumata. Quindi va applicata sempre la massima cura nel maneggiare il chip, sopratutto quando su breadboard o montaggi volanti il rischio di contatti indesiderati e cortocircuiti è in agguato.

Non ultimo, va considerato il problema dell'elettricità statica; anche se i pin hanno diodi interni di protezione, questi non sono sufficienti se la tensione applicata è troppo elevata. Quindi, sempre norma essenziale quella di manipolare i chip con le dovute precauzioni antistatiche ed evitare pin flottanti.


Alcune conclusioni.

Tornando al nostro tema, possiamo dire che : 

  • la condizione migliore per pilotare un carico è tra il pin e la Vdd, sfruttando la bassa resistenza dell' interruttore a canale N
     
  • la condizione in cui si dissipa la maggiore potenza (persa per effetto Joule sulla resistenza di conduzione) è con il carico tra il pin e la Vss (interruttore a canale P)

Fino a qui abbiamo descritto cosa succede al pin con un carico resistivo o un corto circuito. Ma se colleghiamo il LED?


Mettiamoci il LED...

Come abbiamo detto, il LED non è un carico resistivo lineare, ma un semiconduttore, con una soglia di tensione di conduzione che dipende dalle caratteristiche costruttive del componente, dalla corrente che lo attraversa e dalla temperatura.

Abbiamo effettuato le prove inserendo in serie il LED rosso caratterizzato all'inizio, la cui tensione di conduzione tipica di 2V, in pratica sale da 1.9V @ 5mA a 2.88V @ 63mA

Per una Vdd di 5V, collegando il LED tra Vss e pin, senza resistenza in serie, la situazione è la seguente:

Connessione

5V

3V

LED rosso tra pin e Vss

30mA

9mA

LED verde tra pin e Vss

26mA

6mA

LED blu tra pin e Vss

16mA

-

Collegando il LED tra pin e Vdd:

Connessione

5V

3V

LED rosso tra pin e Vdd

60mA

20mA

LED verde tra pin e Vdd

54mA

12mA

LED blu tra pin e Vdd

25mA

-

Possiamo fare, quindi, alcune altre osservazioni:

  • se il LED è collegato tra pin e Vss, la resistenza interna del MOSFET P, come atteso, limita la corrente ad un valore non troppo diverso da quello nominale, ma comunque superiore, se la Vf è sufficientemente bassa (la tensione al pin si abbassa a quella di conduzione del LED).
     
  • se il LED è collegato tra pin e Vdd, la minore resistenza del MOSFET N fa si che passi una corrente decisamente troppo elevata, sia per il pin che per il LED.

Questo è comunque in relazione con le caratteristiche del LED. Se utilizziamo un LED con una Vf maggiore, abbiamo una minore corrente.

Ne deriva che:

  • né il LED, né il pin vanno in fumo. Questo da ragione agli arduinisti
  • ma il chip lavora fuori dalle sue caratteristiche , con un riscaldamento anormale, situazione che riduce l'affidabilità, tanto più rapidamente quanto maggiore è la differenza tra i parametri nominali e quelli applicati. Il che da ragione ai tradizionalisti.

In tutti i casi stiamo sempre usando la resistenza di conduzione del MOSFET per limitare la corrente. Non è questo il modo corretto di utilizzare il componente.

Ovviamente il numero di chip provati è limitato a qualche decina di tipi e a qualche pezzo per tipo. Uno screening serio si dovrebbe basare su quantità maggiori e più diversificate.
Anche le "prove di durata" dovrebbero essere estese per tempi molto più lunghi e sopratutto per range di temperatura più estesi. E aggiungere test per la corrente massima, ecc.
Però, dovrebbe essere ovvio che cicli di prove del genere richiedono tempo e risorse che non sono sempre disponibili.

Comunque, per quanto provato, i risultati sono stati molto simili e quindi si dovrebbe poter dire ragionevolmente che c'è una situazione abbastanza uniforme.

E, praticamente, quanto fatto serve a ben poco:

se usiamo il chip all'interno degli Absolute Maximum Ratings, non abbiamo ragione di porci alcun problema del genere...

Il nostro progetto non corre alcun rischio e ci si può aspettare una durata ed una affidabilità elevate.
Se non rispettiamo le regole, il progetto potrà anche funzionare, ma in che condizioni di durata ed affidabilità?


Cosa concludiamo, dunque?

Dire che le obiezioni "arduiniste" iniziali sono solo delle bestialità può essere ora meglio argomentato con dati reali:

  1. la resistenza dissipa potenza inutilmente
  2. Affermare questo, obiettivamente, è una assurdità: sia che introduca una resistenza esterna, sia che metta a carico della Rdson dei MOSFET la caduta di tensione che limita la corrente nel LED, in ogni caso c'è INEVITABILMENTE una dissipazione di potenza per effetto Joule. 
    Ma se non è la resistenza a dissipare il calore, questo diventa compito dei MOSFET: pensare di utilizzare la Rdson dei MOSFET come resistenze di limitazione è una pessima idea. Il silicio, sovra riscaldato, perde di affidabilità o si danneggia in tempo molto più breve che se fosse usato a temperatura minore

  3. dato che il LED funziona anche senza
  4. Certamente funziona, ma abbiamo visto a quali correnti. Il progetto è alla mercè di fattori aleatori, come temperatura, variazioni delle Vdd, caratteristiche dei LED, caratteristiche del chip.

    Anche solo se confrontiamo le correnti di corto circuiti di questi Midrange provati con quelle del foglio dati dell'Enhanced Midrange caratterizzato prima, vediamo che, se nel primo caso i limiti di corrente possono essere ancora "bassi", nel secondo caso i valori salgono in modo drammatico.
    Per lo meno, lo stesso hardware non potrà avere lo stesso effetto su entrambi chip.

  5. se non la metto, è più luminoso
  6. Per forza: la corrente diventa assai maggiore e la luminosità del LED è proporzionale alla corrente.
    Ma, per avere più corrente, basta usare un buffer esterno.
    Per continuare con l'esempio automobilistico: se il limite massimo dei giri è 3000rpm e a 4000rpm si va un po' più veloci, per questo forzate il motore in fuori giri? Anche l'automobile fuori giri va più veloce come il LED sovraccaricato fa più luce...finchè reggono. Se non c'è ragione per mandare l'auto fuori giri , perchè si deve mandare il LED e il chip in sovracorrente? Solo perchè il LED costa 5 cent e l'auto 15k euro?

  7. perchè sobbarcarsi la "fatica" di collegare una resistenza, oltre all'aumento del costo dovuto all'acquisto di questo componente?
  8. Questa è proprio una tamarrata odiosa!
    Per quanto riguarda il costo, anche solo a voler essere minimamente pragmatici, si dovrebbe dire che la discussione resistenza si-resistenza no non ha giustificazioni. Un resistore 0603 (0.1-0.2W) o 0805 (0.12-0.5W) costa tra 0,0005 e 0,001€ e occupa uno spazio trascurabile sul circuito stampato.
    Non esiste alcuna ragione pratica, né economica per ridurre affidabilità e portabilità del proprio progetto. Oppure, dato che un fusibile costa, esigete elettrodomestici senza fusibili per risparmiare qualche cent? 

  9. in quelli che si definiscono "tutorial" di questa materia i LED sono collegati direttamente ai pin, senza alcuna resistenza di limitazione della corrente. E se lo dice il WEB...

Se il WEB è fonte di informazione della quale ormai non si riesce a fare a meno, è anche fonte di un mare di stupidaggini incredibili. Ogni volta che viene indicata una "soluzione", ma senza il minimo supporto di elementi validi, è il caso di sospettare, quale sia l'aspetto brillante dei siti.
Qui una trattazione relativa al caso del pin13 di Arduino.


In sostanza:

... la resistenza in serie al LED non è un pezzo eliminabile.

Certo, contrariamente alle aspettative dei "tradizionalisti", né il LED né il chip vanno in fumo istantaneamente e, pare, neanche su un breve periodo.

Ma dopo un po' di tempo? Prima di affermare che un circuito che lavora "oltre gli Absolute Maximum Ratings" sia funzionante, occorrerebbe testarlo ai limiti di temperatura per cui è previsto che funzioni e per un tempo ragionevole per poter dare un giudizio di un minimo di valore. Cosa che non è semplice né economica da fare.

Chi ritiene spreco di denaro e di tempo l'inserimento della resistenza serie è meglio che si dedichi a qualche altra attività (possibilmente una dove non gli sia facile fare danni...).

Tanto meno ha senso il dire che si tratta di circuiti "hobbistici": forse che l'hobbista deve essere per forza un ignorante o un arrangione senza arte né parte?

Non stiamo trattando di pareri sulle squadre di calcio, ma di fatti tecnici e scientifici per i quali esistono ben determinate leggi la cui violazione (o ignoranza) è comunque un non senso, anche se si è "hobbisti"; anzi, questa "scusante" è indice di un approccio alle cose decisamente condannabile.
Se voglio realizzare un circuito inadeguato, errato, e della sua durata non mi interessa nulla, devo aver ben chiaro che questa scelta personale non ha nulla a che fare con la correttezza di un approccio tecnicamente corretto.
 
L'hobbista potrà voler usare scorciatoie economiche, ma se lo fa, deve farlo sapendo cosa e come e non per sentito dire o a seguito di informazioni farlocche dal web (dall'amico, dal cuggino, dal vicino, ecc).

Il fatto che l'oggetto resti confinato tra le pareti del nostro Laboratorio non giustifica comunque la violazione delle comuni leggi di una buona progettazione.

Quindi, in conclusione, perchè non mettere la resistenza che risolve il problema alla radice?

Ovviamente, se so cosa sto facendo, valuto le possibili conseguenze, verifico almeno con una misura sul prototipo ed ho ragioni per farlo, posso benissimo forzare gli Absolute Maximim Ratings, a mia responsabilità: so cosa succede nel circuito e non mi accontento di un "tanto va lo stesso", bensì inserisco una forzatura che so essere tale.

Chi sceglie di violare le specifiche del costruttore sta rischiando di avere una grande opportunità di fallimento del suo progetto.  Il fatto che avete ottenuto i risultati positivi a temperatura di 20°C e per qualche decina di minuti non è una prova che qualche problema potrà verificarsi quando la temperatura sarà di 40°C o dopo qualche decina di ore di lavoro.  E' stato controllato ogni parametro operativo?  O basta che, una volta acceso il circuito, non sia subito uscita una colonna di fumo?

Quando avrete intenzione di rendervi conto che la fantastica idea di eliminare le resistenze nel driver dei LED è una scelta di nessun valore pratico?


PWM.

Resta un punto da discutere, che, però, qui trattiamo rapidamente.

Si sostiene da più parti che gli Absolute Maximum Ratings a riguardo della corrente possono essere violati se si fa uso di un PWM, ovvero se si applica la sovra corrente per un tempo limitato.

Ci sarebbe in primo luogo, da chiedersi perchè si voglia superare la massima corrente, mentre non c'è nessuno che parla di superare la massima tensione!
Alimentando il PIC a 6V, per esempio, si potrebbe aumentare la frequenza del clock oltre il valore massimo nominale. E i LED sarebbero più luminosi.
Perchè la corrente si e la tensione no?  Pragmaticamente, si può ritenere dovuto a pigrizia mentale: eliminare una resistenza è un attimo, realizzare un regolatore che dia 6.8V invece che usare il solito 7805 è supera le possibilità dell'hobbista mediocre.

In secondo luogo, c'è assai spesso una errata lettura dei fogli dati. Come visto in un esempio precedente, un costruttore serio riporta sia l'indicazione di una corrente massima (50mA), di una corrente di funzionamento normale (tra 10 e 30mA) e di una corrente di picco di ben 200mA, ma possibile solo per meno di 100us ogni millisecondo.
Peraltro, la stessa cosa è comune a tutti i semiconduttori: si può applicare una extra potenza, ma solo per un tempo breve del ciclo, in modo da consentire l'eliminazione del calore nelle fasi di off, ma per avere certezza dei limiti, occorre disporre del foglio dati del componente, cosa non sempre possibile nel caso di LED e display di provenienza cinese.

In generale, la corrente media è pari alla corrente di picco per il duty cycle; così, se abbiamo un D=50%, una corrente di picco di 50mA corrisponde ad una corrente media di 25mA.
Nel caso sopra indicato, si tratterà di un duty al 10% e quindi di una corrente media di 20mA.

ATTENZIONE: corrente media, perchè quella di picco è comunque 200mA
E NON va applicata per un tempo diverso da quello indicato dal costruttore; quindi non posso fare un duty di 1/10 con 1ms ogni 10ms: in mancanza di altri dati, devo attenermi ai 100us massimi di accensione e a 900us ulteriori di attesa per la dissipazione dell'energia termica.

Peraltro, nel caso di un display o un array di LED comandati in multiplex, si tratta di una situazione che possiamo considerare un PWM a duty e frequenza fissi, dato che il ciclo on/off dei LED deve rispondere a due esigenze:

  • essere di durata minore del tempo di risposta della retina, ovvero con una frequenza maggiore di 50-60Hz
  • il periodo di on dipende dal numero di elementi del multiplex

Così, considerando un ciclo di 16ms come durata massima del tempo necessario al rinfresco di ogni elemento, per evitare l'effetto di flickering, possiamo tracciare una tabella:

Numero elementi
n
Ton max @16ms
Ton= 16/n
Duty Frequenza
2 8ms 1/2 125
4 4ms 1/4 250Hz
6 2.66ms 1/6 376Hz
8 2ms 1/8 500Hz
10 1.6ms 1/10 625Hz
12 1.33ms 1/12 833Hz
16 1ms 1/16 1kHz

In base a quanto sopra, possiamo determinare le correnti ed adeguare quella di picco al valore medio voluto.

ATTENZIONE, ripetiamo: quanto sopra NON vuol dire che alimentando il LED a impulsi la corrente è minore, ma solo che la corrente media è minore di quella di picco, che, comunque, sarà più elevata di quella media e, in generale, più elevata di quella che applicheremmo nel caso di una alimentazione in corrente continua. elevata.

Ricordiamo che la luminosità del LED è in relazione con la corrente (e quindi con la potenza trasferita) e per pareggiare la luminosità di una corrente continua di un certo valore, in un PWM o multiplex la corrente di picco dovrà essere maggiore, in funzione del duty cycle.
Non si tratta però di rapporti lineari (doppia corrente= doppia luminosità), ma si avranno rapporti secondo curve che dipendono da molti fattori: ad esempio, la risposta dell'occhio è di genere logaritmico. Poi va considerata la risposta del LED, che pure non è lineare, ecc.

In ogni caso, non sarà possibile superare la corrente di picco massima specificata dal costruttore e/o per un tempo maggiore di quello indicato.

Dove non si riesce a mettere a carico della resistenza interna dei driver o del sistema di alimentazione la caduta di tensione necessaria a limitare la corrente nel LED, UNA RESITENZA LA DOBBIAMO INSERIRE PER FORZA PERCHE' DOBBIAMO LIMITARE LA CORRENTE DI PICCO AL VALORE MASSIMO AMMESSO!

Se non si fa questo, la minima conseguenza è una durata molto limitata del componente, se non un guasto in tempo breve.
Peraltro, va ricordato che, comunque, quanto più forziamo il componente verso i suoi limiti, tanto minore sarà la sua durata. Ricordiamo l'esempio automobilistico: se usiamo l'auto sempre a tavoletta, la vita del motore sarà abbreviata e se tendiamo ai fuori giri, il motore avrà vita breve o grippaggio in breve tempo.

Comunque esistono realizzazioni "senza resistenze": non si tratta però di una abolizione delle resistenze senza motivazioni, ma di una forzatura degli Absolute Maximum Ratings (spesso colposamente) applicata, dato che la sicurezza/durata/affidabilità del circuito non è la prima condizione del progetto:
qui un esempio
Anche una situazione di bassa durata dei componenti è progettabile (colposamente o dolosamente), ma dove si sa cosa si sta facendo si ha una situazione diversa da dove non si ha idea delle conseguenze.
E se il target dell'oggetto non è quello della durata/affidabilità, bensì solo la minimizzazione dei costi, ecco che si applica l'abolizione delle resistenze in serie ai LED.

Nel caso di alimentazione del LED a impulsi,come quello esemplificato , sia che si tratti di un PWM che di un multiplex, c'è poi un rischio: finchè gli impulsi sono attivi, i LED sono accesi segmenti per brevi periodi, ma supponiamo che il ciclo si arresti con i LED accesi in sovracorrente: non è una bella prospettiva nè per LED, nè per i componenti elettronici di pilotaggio.

Peraltro, nel caso di un display o un array di LED comandati in multiplex, si tratta di una situazione che possiamo considerare un PWM a duty e frequenza fissi, dato che il ciclo on/off dei LED deve rispondere a due esigenze:

  • essere di durata minore del tempo di risposta della retina, ovvero con una frequenza maggiore di 50-60Hz
  • il periodo di on dipende dal numero di elementi del multiplex

Così, considerando un ciclo di 16ms come durata massima del tempo necessario al rinfresco di ogni elemento, per evitare l'effetto di flickering, possiamo tracciare una tabella indicativa:

Numero elementi
n
Ton max @16ms
Ton= 16/n
Duty Frequenza
2 8ms 1/2 125
4 4ms 1/4 250Hz
6 2.66ms 1/6 376Hz
8 2ms 1/8 500Hz
10 1.6ms 1/10 625Hz
12 1.33ms 1/12 833Hz
16 1ms 1/16 1kHz

Quindi la conclusione è quella precedente.

Se so cosa sto facendo, valuto le possibili conseguenze, verifico almeno con una misura sul prototipo ed ho ragioni per farlo, posso benissimo forzare gli Absolute Maximim Ratings, a mia responsabilità: so cosa succede nel circuito e non mi accontento di un "tanto va lo stesso".


Copyright © afg. Tutti i diritti riservati.
Aggiornato il 25/02/18.