[sdiy] 7-segment LED displays with 4511 driver chip - max current?
rick.jansen at xs4all.nl
Fri Aug 7 09:04:30 CEST 2015
On 07/08/2015 08:17, rsdio at audiobanshee.com wrote:
> On Aug 5, 2015, at 10:29 PM, Rick Jansen <rick.jansen at xs4all.nl> wrote:
> > On 06 Aug 2015, at 00:01, rsdio at audiobanshee.com wrote:
> >> 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.
> > The 4511 has a latch that can remember the state of the digit. So you need 4 pins for the BCD value, plus one pin per LE signal to make that 4511 change state. Three 4511's cost 7 pins that way. I do have enough space in the I2C bus, so I will add an extra PCF8574 for that. One bit spare for blanking the upper digit even, if 0! :-)
> Sometimes, the absolute lowest pin count solution is not the best. An I2C GPIO expander will take more time to update than direct AVR GPIO pins. Also, I2C is a very slow protocol, and the more things you add to your bus, the lower the total available communications bandwidth to each one.
> If you have 7 or 8 GPIO pins to spare, then I still recommend the simply LED matrix with a 2-to-4 decoder. 8 pins will get you 24 LEDs in any pattern you want, with 25% duty cycle for each LED.
> Personally, I find it interesting to see how circuit design trends have changed since the early days of digital synth design. Old designs are more efficient, and cost even less today, while new designs tend to suffer from congested I/O and even slower firmware. That's the only reason I recommend the simpler designs. Of course, they're only an option when you haven't run out of GPIO pins!
I2C may be relatively slow, but this is a user-interface thingy, and we humans are very
very slow, compared to I2C. Well, I am.
I'll see how I fare. I really like I/O extension of the Arduino with the PCF8574 chips,
and the way that one pin change gives you an interrupt. (Shift registers don't do that.)
Max 2x8x8 = 128 signals!
PCF8574 drives (individual, not 7-seg) LEDs very nicely too. One disadvantage I find that
the PCF8574 outputs can only *sink* current well, so they're not very good for driving an
external bus with positive signal voltages. But a 74HC541 buffer solves that too.
(Unbelievable how many different chips I still had lying around..)
rick (now studying how you can have an Arduino track a whole bunch of rotary encoders,
like 16, and read them individually...)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Synth-diy