Arduino Uno, TLC5940 and CAT4201 how do I make them work?

Hello there!

I've been reading the forum for some time now but this is my first post and as I don't know anything about electronics <.<, please be nice ; )

So what I'm trying to do is essentially to drive 14 strings with varying numbers of 1W LEDs (2 to 10 to be precise). The strings will need voltages from ~3V to 24V and all LEDs need a current of 350 mA. I would like to be able to regulate the brightness via a computer that communicates with an Arduino Uno connected to a TLC5940. The LEDs will get their power from a CAT4201 from ONSEMI.

I was able to hook up the TLC5940 and the Arduino nicely. The system also accepts commands from my computer but now I'm stuck with the high powered LEDs as I don't have a clue what to do with the driver. I saw that most of the people use a CAT4101 to drive the LEDs, but this requires the use of a resistor to limit voltage and I would like to prevent that. After digging a bit I found the CAT4201, which is a step down LED driver for up to 350 mA which sounded perfect. I added a link to the data sheet at the end.

So my questions are

Does the following schematic work (I'm a bit worried if I wired the CTRL correctly)? Input would be directly from a Meanwell 70 W 24 V power source and PWM would come from the TLC5940 through the R2 to CTRL.
Would I need a transistor between the TLC5940, which is a current sink, and the CTRL?
If it works can I add any number of LEDs (not exceeding the 24V) with each requiring 350 mA to the output?
In the CAT4201 data sheet it is noted that a 2 Ohm resistor should be added between the 24V input and C1 to protect against too high current. Is it really necessary as I would like to keep the efficiency high and this would dissipate 2.5 W (if I calculated correctly)?
Is the Meanwell power source of the correct type (there seem to be infinite different variants <.<) and 70 W enough headroom if there are 60 W of LEDs?

Thanks in advance!
Greetings
Tristan

Data
Datasheet CAT4201
Datasheet Meanwell NES 75-24
LEDs 2.3 to 3.5 V, 350 mA, 1 W

/P.S sorry for the strange schematic. I tried to do it with EagleCADs free version but it kept crashing when I wanted to save (very frustrating >.<).

From the CAT4201 datasheet:

When the CTRL voltage is less than 0.9 V (typ), the LEDs will shutdown to zero current. When the CTRL voltage is greater than about 2.6 V, full scale brightness is applied to the LED output.

The TLC5940 sinks current (acts like a ground when turned on) so the CTRL voltage will never go positive. You want a schematic closer to Fig. 27 of the datasheet. Instead of the mosfet, however, the connection would be to one of the outputs of the TLC5940. R1 would be 90K (highest recommended value to output minimum current) and Rmax would be 11.25K (90K and 11.25K in parallel = 10K). Fig 27 also shows a transistor Q1 but that is not required -- Just connect directly to CTRL through R2.

  • Hopefully someone will check my work or offer a second opinion.

Hi!

Thanks for your reply.
What you proposed seems easier than using a UNL2003 for inverted input as I was thinking at first ; )

So then the circuit would look at follows? I also noticed I got the diode type wrong but it should be correct now.

why not look at the cat4101 - less additional hardware needed to accomplish same thing

Yes, that's it, Xenosaga. Word of caution though - while the datasheet states that 90K is the maximum recommended Rset value I believe that that translates to the datasheet's stated minimum 50ma of LED current (never fully off). The datasheet never fully answers that question and only shows current up to 35K (Fig. 7 pg. 3).

why not look at the cat4101 - less additional hardware needed to accomplish same thing

CAT4101 is a "linear" device meaning that any supply voltage over your LED voltage gets blown off as heat (just like a linear voltage regulator). There's also a 500mv dropout voltage but that's pretty small. I agree it's not a bad solution under the right circumstances.

abrookfield:
why not look at the cat4101 - less additional hardware needed to accomplish same thing

Yes I had a look at that driver too but exactly as Chagrin stated, I would waste a lot of power and would need a heat sink especially for strings that only have two LEDs and need 6 V.

Chagrin:
Yes, that's it, Xenosaga. Word of caution though - while the datasheet states that 90K is the maximum recommended Rset value I believe that that translates to the datasheet's stated minimum 50ma of LED current (never fully off). The datasheet never fully answers that question and only shows current up to 35K (Fig. 7 pg. 3).

Thanks a lot! I think I will just get the components and see how and if it works and if not I will bug you guys with some questions about that inverted input on CTRL ; )

Greetings

Hello there,

I finally got around to building the circuit as depicted in post #3. As stated by Chagrin earlier the LEDs do not fully switch off.
To make matters worse, even at full PWM Input from the TLC5940 the LEDs (350 mA) are orders of magnitude dimmer than
a standard 5 mm red LED.

In the light of the not-switching-off issue, is there a possibility to invert the input from the TLC5940?

Greetings
Tristan

Hi Tristan,

I made some related comments recently in a thread regarding the "always on" issue with the TLC5940 here:

http://arduino.cc/forum/index.php/topic,144330.15.html

The PWM output on that chip can never be truly at 100% duty cycle, only slightly under. As youve figured out, the PWM is inverted due to the fact the chip is a current sink so the LEDs can never be fully turned off. If that is a manditory requirement to your project You'll need to modify your design. Four high level ideas I have off the top of my head are:

  1. You can have the microcontroller cut the power to the LEDs using a relay/switch of some kind.
  2. It should be possible to invert the 14 TLC5950 PWM signals using a transistor for each.
  3. You could implement LED drivers that use P-FETs to switch current.
  4. Do away with the TLC and Impliment a simpler design using a SoftPWM solution as I explain in the post I made in the thread linked above.

Skorn:
Hi Tristan,

I made some related comments recently in a thread regarding the "always on" issue with the TLC5940 here:

http://arduino.cc/forum/index.php/topic,144330.15.html

The PWM output on that chip can never be truly at 100% duty cycle, only slightly under. As youve figured out, the PWM is inverted due to the fact the chip is a current sink so the LEDs can never be fully turned off. If that is a manditory requirement to your project You'll need to modify your design. Four high level ideas I have off the top of my head are:

  1. You can have the microcontroller cut the power to the LEDs using a relay/switch of some kind.
  2. It should be possible to invert the 14 TLC5950 PWM signals using a transistor for each.
  3. You could implement LED drivers that use P-FETs to switch current.
  4. Do away with the TLC and Impliment a simpler design using a SoftPWM solution as I explain in the post I made in the thread linked above.

Hi Skorn,

thanks a lot for your input. First thing I'm trying now is via Darlington arrays according to your suggestion #2. But while waiting for the parts I'm going
to try the SoftPWM, sounds intriguing. And as you mentioned in the thread, reduces the amount of parts needed.

Greetings