[sdiy] 7-segment LED displays with 4511 driver chip - max current?

rsdio at audiobanshee.com rsdio at audiobanshee.com
Thu Aug 6 00:01:30 CEST 2015

On Aug 5, 2015, at 1:29 PM, Rick Jansen <rick.jansen at xs4all.nl> wrote:
> On 05/08/2015 19:34, Brian Willoughby wrote:
>> In the old days, a TTL chip like the SN74143 would drive up to 22 mA on each of its 7-segment driver outputs, and had what seems to be plenty of headroom since the chip could dissipate 1.4 W total. But that's an obsolete chip that only operated on a 5 V supply.
>> I agree with Richie: handle the BCD conversion in your code, and wire the individual LED segments so that you can create any pattern you want. Even old product designs from the pre-surface-mount decade of the eighties had direct drivers for the LED segments to save money on parts like special BCD decoder chips. Have fun.
> The CD4511 is 30 eurocents at Conrad!

I did not intend to imply that price was the most important consideration. I merely meant to give an example of an eighties product category where a 12 MHz (1 MIPS) processor (for one example) could handle the task and the designers decided that additional support chips were not necessary.

What's really funny is that the product I'm talking about - the Roland PG-300 - actually has no 7-segment LED in the circuit, but if you examine the firmware, you'll find that they're calculating the BCD conversion for two 7-segment displays and driving the Port A outputs for LEDs that aren't even there. I think that shows it doesn't take much CPU power if it can be wasted like this.

> The Arduino is not fast, and it *is* doing timing and interrupt stuff, so if I can offload the display of the numbers, which are just a nice extra, and not crucial, I don't mind doing that with three 30 cent chips.

True, the Arduino is not fast, but it's an order of magnitude faster than an MCU that can handle this.

Those three BCD chips will use 12 GPIO pins, unless you add more chips to expand I/O. With those same 12 GPIO pins, you can drive 36 LEDs in a simple matrix. That's enough for three 7-segment displays plus 15 more LED indicators. Or, you could use 10 GPIO pins and a cheap 2-to-4 decoder chip to drive 32 LEDs with 11 to spare beyond the three 7-segment displays.

One trick is to handle the conversion from BCD to raw LED outputs only when you change the value to be displayed, not on every interrupt. A scanned LED matrix interrupt should have very low overhead, especially if you write the interrupt handler in AVR assembly and structure your data so that no calculations are needed in the interrupt (other than advancing the column counter).

>> On Aug 5, 2015, at 9:50 AM, Richie Burnett <rburnett at richieburnett.co.uk> wrote:
>>> Provided you're not multiplexing the three displays on one 4511, then 7mA per segment should be more than enough current.  Make sure you choose decent high-efficiency 7-segment displays though.  Some of the old standard-
> The odd thing is that all 7-segment displays I looked at (Kingsbright) are spec-ed at 20 mA at Conrad, with a light yield of 4-21 mcd. In Kingsbright's catalog they use 10 mA for all displays, no specs for 5 mA.
> Oh well, I'll use the one with the highest yield , this looks like a nice one: http://www.kingbrightusa.com/images/catalog/SPEC/SC56-11SURKWA.pdf
> I think it will light up nicely at 5 mA.

Often, 20 mA is just the maximum constant current, not necessarily the recommended operating current. But it really does depend upon the available brightness versus what's needed. If you use the CD4511, you can always add 7 transistor drivers on the outputs to boost the current handling capacity. Yes, that adds cost, but it might be what you want.


More information about the Synth-diy mailing list