Perché i LED sulla maggior parte dei progetti integrati sono invertiti?


36

Ho notato che su tutte le mie schede di valutazione ho avuto fino a questo momento. I LED erano tutti collegati in basso attivo alla porta del microcontrollore. Capisco che dal punto di vista della sicurezza è meglio avere linee attive a basso RESET e così via. Ma perché i LED?


21
Ai vecchi tempi, i transistor NMOS e NPN erano molto più potenti di PMOS o PNP. Quindi abbiamo preso l'abitudine di disporre i LED in modo che l'ingresso logico affondi piuttosto che la corrente delle fonti. Per lo più non ha più importanza, ma le vecchie abitudini sono dure a morire. A volte ho collegato i LED dall'altra parte. Funziona bene fintanto che rispetti l'attuale limite dell'IO.
mkeith,

21
Accade spesso che i pin IO di un microcontrollore siano in grado di assorbire più corrente di quanta ne possano sorgente. Questo può rendere i LED più luminosi senza superare la sorgente di corrente massima totale per l'intero chip. Il tuo chilometraggio può variare ovviamente, controlla sempre la scheda tecnica.
Wossname

3
TTL nonno la nozione di unità attiva bassa e I / O CMOS è sempre inattivo alto o input mobile con / senza pullup attivo. quindi LED spento dopo RESET
Tony Stewart Sunnyskyguy EE75

1
Nota storica: gli ingressi TTL sono fluttuati in alto e, per abbassare un ingresso, è necessario prelevare corrente da esso. Questo è il motivo per cui le uscite TTL dovevano essere in grado di "affondare" corrente significativa nello stato basso, mentre non dovevano "alimentare" molta corrente nello stato alto. (In effetti, le parti TTL con uscite a collettore aperto non sono in grado di generare alcuna corrente in stato elevato.)
Solomon Slow

2
Un altro punto. In "i bei vecchi tempi" i LED erano molto inefficienti e avevi davvero bisogno di 20 mA per renderli ragionevoli. In questi giorni il 5mA è abbagliante, quindi la fonte o il dissipatore di solito non sono un problema.
Dirk Bruere,

Risposte:


42

È sempre vero che i pin I / O MCU hanno spesso una corrente di approvvigionamento dell'unità più debole rispetto alla corrente di affondamento.

In una tipica uscita MCU CMOS, quando guidano BASSO, attivano un MOSFET a canale N; e quando guidano ALTO attivano un MOSFET a canale P. (Non li accendono mai entrambi contemporaneamente!) A causa delle differenze di mobilità che si applicano per il canale N rispetto al canale P (circa un fattore di differenza da 2 a 3), ci vuole uno sforzo extra per rendere il P- il dispositivo di canale mostra una "qualità" simile a un interruttore. Alcuni vanno a quello sforzo extra. Alcuni no. In caso contrario, la capacità di affondare (canale N) o sorgente (canale P) sarà diversa.

Alcuni sono quasi simmetrici, in quanto possono procurarsi quasi quanto possono affondare. (Il che significa solo che sono circa un interruttore a terra quanto sono un interruttore per la guida di alimentazione.) Ma anche quando si tenta un ulteriore problema, ci sono altri problemi che rendono improbabile che i due dispositivi siano completamente simili e di solito, il lato di approvvigionamento è ancora almeno un po 'più debole.

Ma in ultima analisi, è sempre una buona idea andare a vedere il foglio dati stesso per vedere. Ecco un esempio dal PIC12F519 (una delle parti più economiche di Microchip che include ancora un archivio interno non scrivibile non volatile per i dati.)

Questo grafico mostra la tensione di uscita LOW (asse verticale) rispetto alla corrente di affondamento LOW (asse orizzontale), quando la CPU utilizza VCC=3V :

inserisci qui la descrizione dell'immagine

Questo grafico mostra la tensione di uscita HIGH (asse verticale) rispetto alla corrente di sourcing HIGH (asse orizzontale), anche quando la CPU utilizza VCC=3V :

inserisci qui la descrizione dell'immagine

Si può facilmente vedere che non si preoccupano nemmeno di mostrare le stesse capacità di affondamento e approvvigionamento attuali.

Per leggerli, scegli una corrente di magnitudo simile su entrambi i grafici (molto difficile, vero?) Selezioniamo 5mA sul primo grafico e4mA230mVRLOW=230mV5mA46Ω600mVRHIGH=600mV4mA150Ω25C

2V10mA

50Ω150Ω


Ciao jonk, per favore, vedi i miei commenti e alcuni esempi di Olin qui sotto e ripensaci. È giusto dire che le MCU erano in quel modo, e i chip logici in generale, ma non così oggigiorno. Il microchip sembra essere un'eccezione che avete entrambi visto ma non sono certo il mercato dei volumi là fuori :-)
TonyM

@TonyM Ho testato innumerevoli dispositivi circa dieci anni fa, dall'MSP430 ai dispositivi Microchip PIC. Mentre in molti casi le MCU si sono avvicinate molto di più alle funzionalità di origine e di sink, c'era SOLO un caso in cui ho trovato la capacità di origine uguale o superiore alla capacità di sink. E quello era in un dispositivo in cui era stato specificato e ottenuto SOLO UN PIN. Tutti, altrimenti, esibivano unità inferiore. Non al punto del dispositivo di esempio che ho dato, ma abbastanza lontano che vale la pena conoscerlo. MSP430, ad esempio, fornisce un dissipatore di circa 60 ohm e una sorgente di circa 100 ohm.
Jon

VCC=3V

Ora stai chiedendo, li ho chiusi tutti. Dai un'occhiata alla parte di Silicon Labs e di solito i fogli dati NXP sono buoni, dovrò ricontrollare un po '. Ma i miei esempi mostrano che i chip logici oggi sono bilanciati e solo scavando in profondità si trova uno squilibrio. Puoi chiaramente appendere un LED su entrambe le uscite e funzioneranno bene. Le uscite non devono essere bilanciate in modo molto preciso per vedere che la vecchia logica è andata, come le uscite 74LS con dissipatore da 1,6 mA e sorgente da 0,4 mA, un rapporto 4 a 1. Quindi non si può dire che il punto rimanga, per lo più sono solo vecchie abitudini che pervadono. A meno che tu non ami solo Microchip :-)
TonyM,

@TonyM Il mio punto è più quello di guardare i fogli dati e fare i relativi controlli di integrità, che non di qualsiasi dispositivo. Inoltre, non è irragionevole prevedere qualche differenza. E che se hai una scelta, potresti scoprire che è un po 'più sicuro usando active-LOW, anche oggi. Ma CONTROLLA sempre !! Chiaramente, per alcune applicazioni (ad esempio i LED) è molto più probabile oggi rispetto a 20 anni fa. Ma l'OP chiede "Perché?" trovano quello che trovano. La mia risposta è una risposta a quella domanda. Mi piacerebbe ancora vedere alcune curve (non righe di tabella) di alcuni dispositivi a 3V.
Jon

19

È abbastanza comune (anche se non così comune come una volta) che i pin di uscita del microcontrollore possano assorbire più corrente nello stato basso di quanto possano generare nello stato alto. Di conseguenza, i progettisti si sono abituati a mettere i LED o qualsiasi altra cosa che necessiti di una corrente elevata (per un pin del microcontrollore) tra alimentazione e pin anziché tra terra e pin. Quando il micro ha una capacità simmetrica sorgente / sink, questo non è necessario, ma non fa male.

Ad esempio, ecco un frammento della scheda tecnica PIC 16F1459 (una parte di produzione ragionevolmente recente e sicuramente mainstream):

Notare come le correnti per il caso di bassa tensione di uscita sono più elevate alla stessa tensione di alimentazione rispetto al caso di alta tensione di uscita . Inoltre, le correnti di dispersione sono specificate per un aumento di 600 mV, mentre le correnti di origine per un calo di 700 mV. Tutto sommato, questo micro ha driver low side sostanzialmente più potenti sui suoi normali pin I / O.

Molti micro più recenti sono simmetrici, apparentemente in particolare quelli che non hanno molta capacità di source / sink in primo luogo.

Quando il LED richiede più corrente di quella che può gestire un'uscita digitale, o almeno più di quanto si desideri lasciare, è necessario utilizzare un transistor esterno. Un interruttore laterale basso è la scelta naturale e semplice. Il LED viene quindi collegato tra l'alimentazione e questo transistor.


1
Ciao, una correzione per la tua risposta: [ era abbastanza comune che i pin di uscita del microcontrollore potessero sprofondare più corrente nello stato basso di quanto possano sorgente nello stato alto. I microcontrollori degli ultimi 10 anni o più hanno uscite bilanciate che provengono tanto quanto affondano ] Sono completamente d'accordo con 8048, 8051, 6811 e tutti gli altri vecchi ma non così con le cose post-2005 o successive come tutti gli ARM. Grazie.
TonyM,

1
@Tony: sorgente / sink asimmetrici è ancora comune, anche se meno di prima. Ho appena controllato una delle parti PIC 16F1xxx (16F1359 in particolare), che sono abbastanza nuove. Con 5 V Vdd un'uscita elevata può generare 3,5 mA con caduta di 700 mV. Un'uscita bassa può assorbire 8 mA con caduta di 600 mV. Questo è tutt'altro che andato, anche nei moderni micros.
Olin Lathrop

1
I PIC16F1xxxx sono un aggiornamento rispetto alla vecchia linea PIC16Fxxx ma ancora tecnologia antica. Sono tutti simmetrici ora il più vicino possibile con ampie tolleranze del 25% tip. e 1 / Vdd sensibile.
Tony Stewart Sunnyskyguy EE75

1
Grazie per la ricerca, ma la parte Microchip sembra fuorviante. Ho cercato: NXP P89LPC933 (8051, 2004) con Iol = Ioh = 20 mA; NXP LPC1111 (ARM, 2010) con Iol = Ioh = 4 mA; TI OMAP5910 con Iol = Ioh = stesso (configurabile) mA; TI TMS320C620 con Iol = Ioh = 8 mA; Silicon Labs EFM32GG380 (2014) con Iol = Ioh = stesso (configurabile) mA. Ignora il "-" mancante sui lavandini. Avrei potuto andare avanti, solo 5 minuti nella mia libreria di schede tecniche ... personalmente, non ne vedo uno sbilanciato da decenni. Per favore, puoi modificare la tua risposta in modo simile al mio commento precedente, buono per dare il quadro completo e innocuo per la tua risposta.
TonyM,

1
@OlinLathrop "La serie 6F1xxx è un sequenziale recente della vecchia serie 16Fxxx." Sì, ne sono consapevole, ma hanno scelto di non aggiornare le specifiche RdsOn in modo che Vol, Voh siano identici in modo che Q non cambierebbe nei design delle schede legacy che influiscono sulle caratteristiche della stripline e sul ringing. La modifica della metà del driver Z su tracce di impedenza incontrollate (lettura induttiva) può causare squilli di bordo falso), quindi le specifiche del driver nonno per coloro che operano a max f.clk. Q = 2pi * f * L (f) / ESR per unità sorgente
Tony Stewart Sunnyskyguy EE75

9

Utilizzando un design a discesa è possibile commutare un dispositivo (ad es. Un LED) con un'alimentazione a 5 V, utilizzando un microcontrollore con tolleranza 1,8 V ma 5 V senza componenti esterni.

Quando il pin (configurato con drain aperto) non viene tirato verso il basso, sta fluttuando, poiché non viene assorbita corrente, la tensione fluttuerà alla tensione di alimentazione del led in modo da raggiungere 5V. Questo va bene per alcuni, ma non per tutti i micro a bassa tensione.

In questo modo è possibile far funzionare i led direttamente da una linea di alimentazione e utilizzare un convertitore di tensione di corrente inferiore per il micro. Questo è l'unico modo di usare ad es. led blu su un micro da 1,8 V senza aggiungere altri componenti.

Ad esempio i pin della serie NXP LPC81xM sono tolleranti a 5 v quando il micro è alimentato, anche a 1,8 v

Set di dati di NXP LPC81xM

estratto dal foglio dati


0

Poiché i mosfet a drain aperto generalmente assorbono più corrente del push pull e talvolta tollerano anche un intervallo di tensione più ampio. L'uso di un LED con drain aperto funziona solo con una configurazione attiva bassa. Tuttavia, dipende dal micro, alcuni sono solo push pull.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.