Control lots of LEDs with PCA9673

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)
Prop Info and Apps:


  • Nice work Ray. Did you write the pasm i2c driver yourself?

  • RaymanRayman Posts: 9,210
    edited 2018-01-30 - 02:59:46
    yes, I adapted one from a long time ago...

    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...
    Prop Info and Apps:
  • TI makes some nice ones too.
    Particularly patient proactive practice positively predicates practically precise poly-processor Parallax Propeller programming paradigms.

  • RaymanRayman Posts: 9,210
    edited 2018-01-31 - 14:31:07
    That TLC5955 does look pretty nice.
    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.
    Prop Info and Apps:
Sign In or Register to comment.