I am using the TLC5940 (datasheet) in an upcoming project to control the cathode side of an LED matrix, but each of my LEDs needs 70mA of current. If more than one led in a given column are on at a time then that will end up being 70mA*n where n is the number of LEDs in the column that is on. The problem is that the TLC5940 has a maximum current sink of 120mA. Is there a way to sink the current somewhere else while also using the TLC5940?

I was thinking about using a PNP transistor of some sorts but I have no idea about how that would work.

The essentials of my circuit (sorry it is so crude but it includes everything necessary): Crude Schematic

Note: This is just two rows and one column of the led matrix.

The problem is not an issue if either A, B, or C send 70mA of current, but if any two or three of those are on then there is too much current.

  • \$\begingroup\$ What is the size of your dot matrix? Do you have a specific model, datasheet? \$\endgroup\$ Mar 31, 2020 at 23:31
  • \$\begingroup\$ @EdinFifić I am creating my own dot matrix, 8 by 16. \$\endgroup\$ Apr 2, 2020 at 0:28

1 Answer 1


You need to sink current so the transistor has to be on the low side so PMOS and PNP devices are at a disadvantage. Instead, use an logic-level NMOS or NPN driven by an inverter to fix the logic levels.


simulate this circuit – Schematic created using CircuitLab

The TLC5940 outputs are open-collector so they can only pull the line LO, not HI. So R1 exists to pull the line HI since the inverter is expecting an actual HI or LO input. The inverter is there to correct for the logic level from the TLC5940 output since the the NMOS conducts when a HI gate signal is supplied but you need it to conduct when the TLC5940 outputs a LO.

You may also modify by replacing the NMOS with an NPN and adding a series base resistor.

You may also replace the inverter with a PNP/PMOS that pulls the gate of the NMOS HI and a resistor that pulls the gate of the NMOS LO. But you need to pay attention to voltage levels here so that the PMOS works properly. But since this is an LED matrix I do not recommend this since it just means more discrete parts. You can get many inverters in a single IC.

  • \$\begingroup\$ Since OP is driving LEDs and current is probably gonna go up as they add more, I would use a power FET, like IRF630 (maybe overkill). I would also move R1 to the input of the NMOS as a pulldown because power FETs have high gate capacitance that needs to be discharged. You might also want to replace NOT1 with a POWER FET driver like the 4427 since it is designed for this, where 7400 or 4000 series gates are not (no pun intended). \$\endgroup\$
    – Freeman
    Mar 31, 2020 at 23:16
  • \$\begingroup\$ @PeterT As long as the Power FET driver is of the inverting variety. You need to have a pull-up resistor at at the output of the TLC5940 though since the TLC5940's outputs are open collector. \$\endgroup\$
    – DKNguyen
    Mar 31, 2020 at 23:18
  • \$\begingroup\$ Oh, yes, good point(s). I thought it was an MCU. (And the 4427 is the non-inverting version, I think the 4427A is the inverting version.) However, I just read the 5940's datasheet, and it appears both of our solutions break the 4,096 step current control though, assuming OP is using that feature. \$\endgroup\$
    – Freeman
    Mar 31, 2020 at 23:47
  • \$\begingroup\$ @PeterT Yeah I saw that too. If the OP wants to use that...then things just got really, really complicated. OP will have to have external means of current limiting and set the constant current driver in the TLC5940 to a low value...just enough pull the output down for the inverter or gate driver or whatever. \$\endgroup\$
    – DKNguyen
    Mar 31, 2020 at 23:57
  • 1
    \$\begingroup\$ @JaredCohen Yeah on both. The downward pointing triangle is ground. Sometimes it is 3 narrowing lines instead of a triangle. \$\endgroup\$
    – DKNguyen
    Apr 2, 2020 at 0:50

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.