EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Simple "LED driver" chip?

Started by Richard H. April 6, 2006
On Thu, 06 Apr 2006 17:10:12 GMT, the renowned Jonathan Kirwan
<jkirwan@easystreet.com> wrote:

>On Thu, 06 Apr 2006 13:05:38 -0400, Spehro Pefhany ><speffSNIP@interlogDOTyou.knowwhat> wrote: > >>On Thu, 6 Apr 2006 09:44:34 -0700, the renowned Mark Borgerson >><mborgerson.at.comcast.net> wrote: >> >>>You can avoid startup glitches by using a simple NPN transistor >>>driver instead of an FET. This requires a base current limiting >>>resistor, but you don't get a glitch if the MCU pin floats, as >>>the transistor responds to current, not voltage. >> >>Unless you are using one of those execrable pseudo-bidirectional >>ports, such as on some 8051 variants, that too-closely mimic the >>original. In such a case, two transistors and four resistors per LED >>might be required to allow the higher voltage positive supply and >>glitch-free operation. > >I remember you saying that the 8051 port uses a strong pullup with a >weak pullup and that the strong pullup is switched on briefly when the >pin is driven high. > >But can you expand on this a little more?
When powered up the pins are pseudo-inputs (outputs set to "high"), which means the weak pullups are on. That's enough to drive (or, perhaps worse, partially drive) a BJT.
>In the case of a higher V+ for the LED, how does the old 8051 port pin >require two BJTs for glitch free operation, perhaps in the context of >your earlier point about the pullups? > >Jon
Something like this (you drive the pin LOW to turn the LED on). The weak pullup holds the PNP transistor 'off', at least on modern CMOS parts, when the part is reset. Vled + | VCC .-. + | | | | | Port pin | '-' ___ |< | o----|___|--| | |\ V LED | - | | .-. | | | | | | | '-' | | |/ +-----| .-. |> | | | | | | '-' | | | +-------- | | GND Best regards, Spehro Pefhany -- "it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com
Hello Richard,

> I'm looking for a driver chip to run several "high-current" (20-30mA) > LEDs from a single MCU. I've got enough MCU pins for a 1:1 solution, > but the current exceeds the MCU ratings for direct connection. > > There's no shortage of advertisements for LED driver chips like Maxim's > MAX6966, which could do the job (via SPI). I've got to think there's a > simple multi-channel transistor package for this purpose, but Digikey > searches on "buffer" or "driver" turn up too many hits to filter through. > > What generic part number should I be searching for (and how does one > find these generic numbers in the first place)? >
Check out the Philips PCA9532, around $2 and Digikey has them. But abs max is 25mA per output and watch the grand total limit. It has a nice PWM scheme to adjust all the LEDs and you can control it via I2C. Regards, Joerg http://www.analogconsultants.com
On Thu, 06 Apr 2006 13:38:13 -0400, Spehro Pefhany
<speffSNIP@interlogDOTyou.knowwhat> wrote:

>On Thu, 06 Apr 2006 17:10:12 GMT, the renowned Jonathan Kirwan ><jkirwan@easystreet.com> wrote: > >>On Thu, 06 Apr 2006 13:05:38 -0400, Spehro Pefhany >><speffSNIP@interlogDOTyou.knowwhat> wrote: >> >>>On Thu, 6 Apr 2006 09:44:34 -0700, the renowned Mark Borgerson >>><mborgerson.at.comcast.net> wrote: >>> >>>>You can avoid startup glitches by using a simple NPN transistor >>>>driver instead of an FET. This requires a base current limiting >>>>resistor, but you don't get a glitch if the MCU pin floats, as >>>>the transistor responds to current, not voltage. >>> >>>Unless you are using one of those execrable pseudo-bidirectional >>>ports, such as on some 8051 variants, that too-closely mimic the >>>original. In such a case, two transistors and four resistors per LED >>>might be required to allow the higher voltage positive supply and >>>glitch-free operation. >> >>I remember you saying that the 8051 port uses a strong pullup with a >>weak pullup and that the strong pullup is switched on briefly when the >>pin is driven high. >> >>But can you expand on this a little more? > >When powered up the pins are pseudo-inputs (outputs set to "high"), >which means the weak pullups are on. That's enough to drive (or, >perhaps worse, partially drive) a BJT.
Thanks, that's dead clear.
>>In the case of a higher V+ for the LED, how does the old 8051 port pin >>require two BJTs for glitch free operation, perhaps in the context of >>your earlier point about the pullups? >> >>Jon > >Something like this (you drive the pin LOW to turn the LED on). >The weak pullup holds the PNP transistor 'off', at least on modern >CMOS parts, when the part is reset. > > > Vled > + > | > VCC .-. > + | | > | | | > Port pin | '-' > ___ |< | > o----|___|--| | > |\ V LED > | - > | | > .-. | > | | | > | | | > '-' | > | |/ > +-----| > .-. |> > | | | > | | | > '-' | > | | > +-------- > | > | > GND
Or assuming that +V >= Vcc+1V or so, then something like:
> | +V +V +V > | | | | > | | | | > | \ | | > | / R2 _|_ D1 | > | \ 22k /_\ 1N4148 | > | / | | > | | | |<e Q1 > | ,--+--------+--+-----| 2N3906 > | | | |\c > | |/c Q2 | | > | Vcc---| 2N3904 | | > | |>e | | > | | | | > | | --- C1 | > | | --- 22p --- > | \ | \ / D2 > | / R1 | --- DD > | \ 5.6k | | > | / | | > | | | | > | | R3 | \ > | +------/\/\----' / R4 > | | 56k \ set as > | | / needed > | CONTROL---------' | > | | > | gnd
C1 and R3 just being an oft-useless, but sometimes useful, speed up to overcome Q1's capacitance. D1 just to provide a path for C1 charge when 'going the other way' (or pushing instead of pulling.) So it really can be reduced to a much simpler:
> | +V +V > | | | > | | | > | \ | > | / R2 | > | \ 22k | > | / | > | | |<e Q1 > | ,--+-----------| 2N3906 > | | |\c > | |/c Q2 | > | Vcc---| 2N3904 | > | |>e | > | | | > | | | > | | --- > | \ \ / D2 > | / R1 --- DD > | \ 5.6k | > | / | > | | | > | | \ > | | / R4 > | | \ set as > | | / needed > | CONTROL---------' | > | | > | gnd
One less resistor. The pin still has to handle enough current for driving Q1 as needed, though, so your circuit is better that way. Thanks for the information. I just couldn't remember the details about the 8051 pins. Jon
"Richard H." <rh86@no.spam> schrieb im Newsbeitrag
news:IR9Zf.12763$kT4.6195@fed1read02...
> I'm looking for a driver chip to run several "high-current" (20-30mA) > LEDs from a single MCU. I've got enough MCU pins for a 1:1 solution, > but the current exceeds the MCU ratings for direct connection. > > There's no shortage of advertisements for LED driver chips like Maxim's > MAX6966, which could do the job (via SPI). I've got to think there's a > simple multi-channel transistor package for this purpose, but Digikey > searches on "buffer" or "driver" turn up too many hits to filter through. > > What generic part number should I be searching for (and how does one > find these generic numbers in the first place)? > > Also, is there any trick to driving blue & white LEDs, or just > additional current and higher forward voltage? > > Thanks, > Richard
This one is a good one, but not very popular at the moment: http://www.ebv.com/services/mip/mip200401/english/nlsf595.pdf and: http://www.onsemi.com/pub/Collateral/NLSF595-D.PDF MIKE -- www.oho-elektronik.de OHO-Elektronik Michael Randelzhofer FPGA und CPLD Mini Module Klein aber oho !
Richard H. scrobe on the papyrus:

> I'm looking for a driver chip to run several "high-current" (20-30mA) > LEDs from a single MCU. I've got enough MCU pins for a 1:1 solution, > but the current exceeds the MCU ratings for direct connection. > > There's no shortage of advertisements for LED driver chips like > Maxim's MAX6966, which could do the job (via SPI). I've got to think > there's a simple multi-channel transistor package for this purpose, > but Digikey searches on "buffer" or "driver" turn up too many hits to > filter through. > > What generic part number should I be searching for (and how does one > find these generic numbers in the first place)? > > Also, is there any trick to driving blue & white LEDs, or just > additional current and higher forward voltage? > > Thanks, > Richard
What about the old faithful MM5450 with an SPI compatible interface. It will drive 35 LEDs @ 15mA each and as the outputs are constant current, they can be paralleled up for higher drive currents. -- John B
Spehro Pefhany wrote:
> <jkirwan@easystreet.com> wrote: >>
... snip ..
> > Something like this (you drive the pin LOW to turn the LED on). > The weak pullup holds the PNP transistor 'off', at least on modern > CMOS parts, when the part is reset. > > Vled > + > | > VCC .-. > + | | > | | | > Port pin | '-' > ___ |< | > o----|___|--| | > |\ V LED > | - > | | > .-. | > | | | > | | | > '-' | > | |/ > +-----| > .-. |> > | | | > | | | > '-' | > | | > +-------- > | > | > GND >
Consider a current mirror, which can be fabricated from a matched set of transistors. The thing that counts is the ratio of emitter areas. Note that it is a three terminal device, and that all the dissipation is in the device. One input control resistor sets the output current delivered. Vcc Current mirror, shown 4x gain | +---+----+----+----. | | | | | >| >| >| >| >| |---------|----|----|-+ /| /| /| /| /| | | | | | | | +----+----+----' | | | +---+ | | | | | | | .-. V LED | | - | | | '-' | | /| | -O< |- === \| GND Open collector drive (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de) -- "The power of the Executive to cast a man into prison without formulating any charge known to the law, and particularly to deny him the judgement of his peers, is in the highest degree odious and is the foundation of all totalitarian government whether Nazi or Communist." -- W. Churchill, Nov 21, 1943
Richard H. wrote:

> I'm looking for a driver chip to run several "high-current" (20-30mA) > LEDs from a single MCU. I've got enough MCU pins for a 1:1 solution, > but the current exceeds the MCU ratings for direct connection. > > There's no shortage of advertisements for LED driver chips like Maxim's > MAX6966, which could do the job (via SPI). I've got to think there's a > simple multi-channel transistor package for this purpose, but Digikey > searches on "buffer" or "driver" turn up too many hits to filter through.
Sounds like the venerable, (but still very cheap & widely sourced,) ULN2003, and the ULN2803 darlington arrays. These will give a sizable boost in current drive.
> > What generic part number should I be searching for (and how does one > find these generic numbers in the first place)? > > Also, is there any trick to driving blue & white LEDs, or just > additional current and higher forward voltage?
The forward voltage needed seems to vary by supplier. -jg
"Richard H." <rh86@no.spam> wrote in message 
news:IR9Zf.12763$kT4.6195@fed1read02...
> I'm looking for a driver chip to run several "high-current" (20-30mA) LEDs > from a single MCU. I've got enough MCU pins for a 1:1 solution, but the > current exceeds the MCU ratings for direct connection. > > There's no shortage of advertisements for LED driver chips like Maxim's > MAX6966, which could do the job (via SPI). I've got to think there's a > simple multi-channel transistor package for this purpose, but Digikey > searches on "buffer" or "driver" turn up too many hits to filter through. > > What generic part number should I be searching for (and how does one find > these generic numbers in the first place)? > > Also, is there any trick to driving blue & white LEDs, or just additional > current and higher forward voltage?
Depending on where you are buying stuff you'll find these chips are crazily expensive. You can get a serial in parrallel out shift register for 10c along with 4c transistors and resistors and you are set. Blue and white just have different forward voltage. Blue typically switches alot slower if it matters, you cant get a good signal above about 10khz on most of them.
Spehro Pefhany wrote:
> If it's several, as in 2 or 3, just use transistors, BJT or MOSFET. > Darlington arrays as others have suggested would be better if you have > more than four... keep in mind that they have significant foward drop > on a 3-5V circuit (which may be a factor if you're using blue or white > LEDs). You might also be able to use a HCMOS shift register.
Thanks to everyone for the quick comments! The need here is very simple, so I'm reluctant to use a feature-rich / pricey part (we'll be making a lot of these; the forward voltage drop would also be an issue). We'll probably do 4-5 LEDs per MCU. The flexibility of discrete transistors sounds good (and possibly very cheap); since I'm doing SMT, we could get them pretty small too. Hmmm. I'll do some AoE reading and look at the discrete designs offered here. That brings me back to the question about the generic part numbers - in this case, a general-purpose transistor. Is there a book (website?) that offers a good reference for these part numbers and their characteristics? (E.g., Lancaster's TTL and CMOS cookbooks have about 100 pages of reference for logic chips, but it seems there's a lot more, and there are newer processes.)
> If you're running small LEDs at that high a current you > may well have reliability and lifetime problems, particularly when the > ambient temperature gets high.
No problem here. They're not normal LEDs; they're high intensity (several hundred mcd, but not the multi-candela ones), and I'll be running them well below rating. Thanks! Richard
On Fri, 7 Apr 2006 18:26:52 +1000, "DAC" <Mister@Enigma.net> wrote:

>"Richard H." <rh86@no.spam> wrote in message >news:IR9Zf.12763$kT4.6195@fed1read02... >> I'm looking for a driver chip to run several "high-current" (20-30mA) LEDs >> from a single MCU. I've got enough MCU pins for a 1:1 solution, but the >> current exceeds the MCU ratings for direct connection. >> >> There's no shortage of advertisements for LED driver chips like Maxim's >> MAX6966, which could do the job (via SPI). I've got to think there's a >> simple multi-channel transistor package for this purpose, but Digikey >> searches on "buffer" or "driver" turn up too many hits to filter through. >> >> What generic part number should I be searching for (and how does one find >> these generic numbers in the first place)? >> >> Also, is there any trick to driving blue & white LEDs, or just additional >> current and higher forward voltage? > >Depending on where you are buying stuff you'll find these chips are crazily >expensive.
I assume you mean the driver chips.
>You can get a serial in parrallel out shift register for 10c >along with 4c transistors and resistors and you are set.
That would be my take. I prefer discrete to specialized drivers that almost always cost a fair piece and may not always be around when you need them.
>Blue and white just >have different forward voltage. Blue typically switches alot slower if it >matters, you cant get a good signal above about 10khz on most of them.
But I don't understand why that would be an inherent property of the blue LED. I don't think there are any physical processes going on there that are that slow. So can you expand on the details you were using when you observed this limitation and what you meant by "good signal"? Jon

The 2024 Embedded Online Conference