This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Driver Choosing and Question about Dot Correction

Other Parts Discussed in Thread: TLC59731, TLC5916, TLC5922

Hi,

I'm trying to find the best driver for my application but I haven't be able to decide.  I think I can get some help choosing here.

I need to control the brightness of 4 groups of dual LEDs independently. The driver have to be as small as possible. The LEDs can use up to 70mA. The change in brightness should be fast, 600uS max between complete brightness set and turn off.  I only need 8 leves of brightness so if there is a part that doesn't use PWM to control the power would be even better.

The setup is as the following diagram:

S are light sensors, L Leds and C a connector where all control signals and power come from.

So I was trying to look for a driver like a ws2811 for each group so the current loop could be reduced. The closest thing I could find was the TLC59731 but it only can deliver up to 50mA of current.  I couldn't find any other driver that had an small package and low component count.

Then I thought of using a TLC5916 (8 channel) and then it would control a TL4242 for each LED. But then this wouldn't be fast enough and less cheap.

So now I think I will use the TLC5916 close to the connector and from there control the 8 LEDs. I will separate the power supplies of LEDs and Sensors  but I still fear I will have high emissions.

So what would you choose in my case? Do you know any better solution?

Also I would like to know how does the TLC5916 implements the Current Gain Control since is not clear in the datasheet. It seems to be just a linear implementation and I would like to know if this is correct. I mean, the method of controlling the current in the LED is not PWM. This is important for me because if I set the current to 30mA for example I won't have to wait several cycles of a PWM to get the correct reading from the light sensor.

Any help will be greatly appreciated!

  • Hello Alex,

    If you don't want control LED current by PWM, then a simple ON/OFF driver with Dot Correction(DC) function will be suitable for you. I suggest tlc5922, which is an ON/OFF driver, 16 channels, 80mA/channel. Each channel have 7bit DC, can adjust current amplitude in 128 steps.

    Only concern is its HTSSOP-32 package, not sure if OK for your space limitation. Please check datasheet.

    tlc59731 is 8bit PWM 3-channel LED driver, not suitable because you don't like PWM control.

    tlc5916 has 8bit global brightness control, can adjust LED current amplitude in 256 steps. However, it can't adjust each channel's current individually.

    Best regards

    Mike

  • Hi Mike,

    Thank you for your support. I think I will try the TLC5922. Can 2 outputs in this chip be parallel to obtain higher current? Since I only need 8.

    Also, I've thought of using a constant current driver with one channel and just a 8 MOSFETs to multiplex the driver to each LED. Can you recommend a fast driver of that kind?

    What I think would work in perfectly in our application would be having 8 small drivers with constant current with an ON/OFF Pin and a PWM Input just for control the LED current not to control the LED with the PWM it self.

    Thank you!

  • Hi Alex,

    tlc5922 support 80mA per channel. Of course, you can parallel two channels to drive one LED.

    All of our ON/OFF drivers are 16 channels at least. We have no small driver with just one channel.

    May I know the reason you want use such kind of solution?

    "What I think would work in perfectly in our application would be having 8 small drivers with constant current with an ON/OFF Pin and a PWM Input just for control the LED current not to control the LED with the PWM it self."

    Best regards

    Mike

  • Hi Mike, 

    Thank you, the reason we would need something like that is because first, it would only need 1 current adjustment pin which would be share by all LEDs and 1 pin to turn on/off each LED. A controller like that could probably be made in a sot-5 or smaller (if power isn't a problem) and be below (other side of the PCB) each LED so I would fit in a small board and current loop of the fast switching LED could be kept to a minimum. 

    The problem I'm facing right now, is that since my LEDs are at last 40mm apart the current for each LED have to travel from the driver to the LED and back and that not only will emit a lot but also it can affect my sensors, especially if they share power.

    I'm tempting of just using a very fast PWM signal and a transistor under each LED with a resistor. The problem is that like that I don't have current control so the tolerances in resistors and LEDS will make difference in the light they all emit for a certain power level. Also, I would have to wait at least a couple of cycles of the pwm to be able to read the RMS value read by each sensor. Since I have to read the value of  all the combinations of LEDs light and ambient light  of each sensor I end up doing 120 readings in 1000 mS that means that I have less than 1 mS for each conversion and commutation of each LED. In fact is only 500uS since the output of the sensor takes 500uS to settle.

    Anyway, I might need to go for the TLC5922 but I would prefer the same device with one channel and just multiplex the signal using transistors. Also I will have to give a different power supply with different ground for LEDs and Sensors.

    Thank you.

  • Hi Alex,

    Thanks for explanation.

    The way you use tlc5922 is putting channels always on, and adjust current amplitude by changing DC. In this way, there is no high speed turn on/off of channels, EMI performace should be no problem.

    40mm distance from LED cathode to tlc5922 output pins should be OK. You may put tlc5922 in the middle position of PCB bar.

    Best regards

    Mike

  • Hi,

    I thought of doing just that. But even if I do that I might have to go from no current to max power at least 20 times every 100 ms.  That means that there will be current going back and forth those times which might affect my sensors signals and that is the first I want to avoid.

    I can't put the TLC5922 in the middle since we have discarded using a big PCB but instead we will have a driver board and small PCBs with each pair of LEDs connected with cables to the driver board.

    What do you think?

    Thank you.

  • Hi Alex,

    You mean you will turn on/off these LEDs once per 5ms?

    Actually, I'm not very clear about your concern. It'll be better if you have some waveform/timing diagram, or picture to show your work-of-way, include how you plan change color/brightness of each LED? when will the sensor signals be used? etc.

    "will have a driver board and small PCBs with each pair of LEDs connected with cables to the driver board" -----This should be OK

    Thank you

    Mike

  • Hi Mike,

    That is correct. I will be turn on and off each LED with the corresponding power every 5 ms or so.

    Everytime I  turn on and off the LED (That might be, having them on always but with minimal power and then adjusting the power each 5ms and if the difference goes from minimum to maximum is basically a on/off situation in terms of current variation per milisecond). This sort of rapid change of current can cause noise in the signals coming from the sensors. That is why I want to reduce the current loop for the LEDs as much as possible.

    Sorry I meant to say "we''ll have" not "will have".

    Do you understand what I mean?

    Thank you

  • Alex,

    Each time turn on LED, will the LED current be same? I remember you said you need 8 level different brightness. Does this mean that sometime turn on with, say, 25% brightness(you write DC=32 to ICs), sometimes turn on with full brightness(you write DC=127 to ICs)?

    In the 5mS period, say, 4.9mS is on-period(non-zero DC value), 0.1mS is off-period(zero DC value)?

    How many times you need read signal from sensors in each 5mS period?

    Is it possible just wait 500uS (settle time as you said) before reading sensor each time?

    Best regards

    Mike

  • Hi Mike,

    I have to read 10 sensors 120 times in 100ms. For the different configurations I have, that is, LED off  sensor 1, LED 1 sensor 1

    LED 2 sensor1, etc for each of the 8 LEDs of each sensor. So what I mean is, I will need to be turning on and off each LED for each reading (Or what is the same, adjusting the power, which in the worst case is going from 0 DC to max power DC=127). So I have to be turning them on/off a bit fast and that makes a repetitive spike in current. 

    The problem is not only noise, even when I have time to let it settle, the current spikes produces spikes in the signal voltage. When then sensor is saturated (That is, 3.3V in my case) and I switch the LEDs (one bye one) I get spikes in the voltage of almost 4V in the sensor signal lines and power. That can reset mi MCU or damage it or the sensor. 

    Of course I can add TVS and other protections to avoid that situation but I want to avoid those spikes as much as possible.  The best solution for me is to reduce the current path for the LEDs so the inductance is reduced to a minimum.

    Of course, all those test were made using old PCB's and for the real PCB for the project I want to avoid those problems. In fact I will separate the sensors supply and the LED's supplies.

    I hope you understand now. I know I haven't been clear but English isn't my first language, sorry.

    Thank you.

  • Alex,

    Thanks for explanation.

    Seperate supply should be helpful for your problem. Wait for your good new

    Best regards

    Mike

  • Mike,

    Thanks to you! I'm glad there is people in TI eager to help their clients. 

    Anyway, I will try with the TLC5922 definitely and see what happens.

    Thanks again.

    Have a nice day.

    Alex