TLC5940 with PNPs

Hello everyone,

I am digging for a few days to use PNP transistors with TLC5940, because I want to use only PWM pulse not TLC’s current sink.

I will connect a PNP(2n2907) to each output on a TLC5940 with 2 resistors and 4 LEDs with a resistor connect to a PNP. So TLC5940 works only to generate PWM pulse.

I attached the circuits that I will apply.

I know Load on collector side is the ordinary circuit like ‘A’ when using PNP, but I could find an example like ‘B’ and I think it is more useful in my case.

But, I am not sure circuit ‘B’ is same as ‘A’. That is what I want to ask.
Is there any diffenence between ‘A’ and ‘B’ ?

One thing more, I will use two resistors before base on a PNP to reduce voltage on a TLC’s output.
Do you think that is rigth way to do ?



Yes there is a big difference between A and B, A is common emitter and B is common collector. With B you get no voltage gain (only current gain) With A you get current gain (and voltage gain)

A will not work as the TLC output won't go high enough to turn the transistor off.

B is better in that respect but still will not work, again it won't switch correctly.

I will use two resistors before base on a PNP to reduce voltage on a TLC's output.

Not sure what you mean, why not one resistor twice the value?

My goal in this project is controlling 16 RGB LED Modules with 3 TLC5940s. It was not difficult, because of the TLC5940 library for Arduino. The LED Module has 4 RGB LEDs, so I need to supply them 15V power. When I designed the LED Module, I put some sort of current limiting resistors. I just wanted to drop voltage on TLC’s outputs, to prevent from overheat. It worked perfectly, Voltage on TLC’s output was kept near 1.0V and TLCs never got any heat.

But there was a problem that all of LED Modules were slightly different working. The cause what I thought was the length of cable between TCL’s output and LED Modules, the longest one is near 2 meters long.

That is why I decided to use TLC’s PWM not current sink. I replaced resistors on my LED Modules to get forward current of 16mA and added a 2n2907 with a 10K pull-up resistor connected to 15V. It worked very well but TLCs were getting a bit hot. To make it perfect, after several times of digging, I replaced the 10K to 4.7K and put 1K resistor to the base of 2n2907 like circuit ‘A’. The result was that TLC’s output voltage dropped form 14.3V to 1~2V, so there was no more heat.

It is good enough to me I think.

Next step what I am going to do is using common collector like circuit ‘B’, because most led modules are common anode and circuit ‘B’ will be more convenient, isn’t it?

I am really not good at electronical work. Please tell how stupid or clever work I have done…

I don't think that the second (B) will work properly/at all. This TLC uses "open drain" outputs (so: if you write to a pin "4095" which is "totaly opened" your voltage will be 0V, if you write "0" you will get the Vcc of the chip due to pull-up resistor) so you have to use P-type transistors or you will get "reverse" logic (didn't test if it works). I've drawn you a schematic on how I drive my leds (I have 8 x RGB @ 3W each led). I use seperate leds for each color so I am using the "top" schematic but if you buy modules that have common "ground" you will have to use the "bottom" schematic.

Regards, Peter