Control lots of LEDs with PCA9673
Rayman
Posts: 14,646
in Propeller 1
Was looking for solution to control many (>100) LEDs (many of them white or blue) and decided that PCA9673 is best solution.
I've attached a driver that seems to work (input mode not tested) [See Attached]
Great things about PCA9673 are:
small surface mount package (sorry, no DIP), and 16 outputs with just 2 Prop Pins
5V tolerant outputs (lets me drive white/blue LEDs with +5V and series resistor to control current)
Up to 16 devices on I2C bus with just 2 address pins (neat trick they pulled off here!)
Can sink >20 mA on all output pins at the same time!
Super simple I2C commands
Can work up to 1 MHz (but my driver is rigged for 400 kHz) (fast enough to allow digital dimming)
I've attached a driver that seems to work (input mode not tested) [See Attached]
Great things about PCA9673 are:
small surface mount package (sorry, no DIP), and 16 outputs with just 2 Prop Pins
5V tolerant outputs (lets me drive white/blue LEDs with +5V and series resistor to control current)
Up to 16 devices on I2C bus with just 2 address pins (neat trick they pulled off here!)
Can sink >20 mA on all output pins at the same time!
Super simple I2C commands
Can work up to 1 MHz (but my driver is rigged for 400 kHz) (fast enough to allow digital dimming)
Comments
Assembly will let me change led states quickly...
One thing I need to do though is make sure it is playing nice with SDA and SCL.
Sometimes I force these high instead of letting them float up...
http://www.ti.com/lit/ds/symlink/tlc5955.pdf
If you want a ton of LEDs and want to offload the brightness to the chip, that makes a lot of sense.
It would be very nice for a video display. But, with maximum current of 30 mA, that would mean
each LED gets it's own pin, so no multiplexing. Makes it easier, but you'd need a lot of chips.
The Adafruit 16x32 LED panel used just a few chips, but had a complex multiplexing scheme...
For what I'm doing, I just need the LEDs either on or off, so don't really need this complexity.
On the other hand, this would give me a brightness control that I don't currently have (although I could PWM the outputs to dim the LEDs if I wanted to).
Interesting to think about. If I'd seen this TLC5955, I might have picked it instead, not sure... Price seems about equivalent.
PCA9673 can be also used as input, so maybe could be useful in other applications.