I am using an Arduino Uno to communicate over SPI to 3 cascaded TLC5917 chips corresponding to the Red, Green and Blue rows of an RGB LED Matrix. I am using direct output IO from the Arduino to power the columns.

Now I intend to use multiplexing to avoid drawing too much current at once, although it could still potentially be quite alot (3 x 8 x 20ma).

I have managed to display a full white screen using multiplexing with quite a high brightness, however this should not be possible to my knowledge.

Looking at the data sheet I found that at both at 3V and 5V the Output Voltage is rated at Vdd - 0.4 for Voh (Voltage High Level Output). This means that at 5V the minimum output voltage should be 4.6V and at 3V it should be 2.6V.

Disabling multiplexing and simply writing to the registers and columns, and then measuring the voltage shows 2.5V, 2.8V and 1.8V for different colors. This contradicts the data sheet.

The circuit contains no resistors except from GND to REXT using a 680Ohm Resistor. The Arduino is powered over USB.


Why is the Voltage so low, should it not be higher given the data sheet? Am i reading the correct attribute? How can my Arduino manage to drive so many LEDs (albeit through LED Drivers)?

What can I do to make this circuit more electronically safe and stable?

  • You are confusing logic signals with constant current sinks.
    – Majenko
    Commented Jun 12, 2018 at 13:11

1 Answer 1


The concepts of HIGH and LOW, and thus the voltages associated with those concepts, apply only to logic signals.

LED drivers are not logic signals - they are constant current sinks. The voltages you are measuring are the forward voltages of the LEDs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.