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?