elson at pico-systems.com
Sat Oct 31 16:15:38 CDT 2015
On 10/31/2015 03:11 PM, Charles Anthony wrote:
> What I don't know how to do is drive 500 or so LEDs.
> I am guessing a bunch of shift registers, but I've pretty much reached my
> design limits. I need some guidance on locating and understanding the
> technology to run that many LEDs.
it really isn't that complicated. The simplest might be a
byte shift register, ie. a bunch of octal D-FFs like
the 74HC374. Given a byte-wide group of GPIOs on the Beagle
Bone, you could send out 63 8-bit words
with one additional GPIO to act as a clock for the FFs. The
LEDs could be driven directly from the FF outputs with a
resistor. With the current generation of high-efficiency
LEDs 10 mA would be plenty of current, and so the FF outputs
would still be close enough the specs to drive the next
stage. One downside of this scheme is if the serial
transmission was slow, you'd see a blink each time the Bone
sent a new light pattern.
If you want to get more complicated, you could have one
HC374 for the shift register and one HC374 as the latch.
You'd shift all 63 bytes through the byte-shift register,
pulsing the byte clock 63 times, and then pulse the latch
clock once to latch all the 5xx bits of light info into the
latch register, which would allow the LEDs to be updated
without any flash as the shift reg is being shifted.
Now, another way to do this is with multiplexing. You could
maybe have 8 64-bit words that loaded to a small RAM, and
the RAM is scanned to load data to banks of 64 LEDs. This
reduces the number of drivers to, say, 64 cathode drivers
and 8 high-current anode drivers, but complicates the rest
of the thing a fair bit. It will also cause the whole panel
of LEDs to flicker at the multiplexing rate, which could be
annoying when you flick your eyes across the panel.
More information about the cctalk