TLC59711 and open drain drivers

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

TLC59711 and open drain drivers

Post by stephanschulz »

hi

a while back i build a high bright led circuit around the ZXLD1350 led driver. i had to tell my maple mini micro-controller to use PWM with open drain.
i am now trying to use the TLC59711 to driver this same led circuit.

the attached image has a voltage divider added, which in my tests i sometimes disable.
the voltage divider allowed me to also use non open drain pwm.

nonetheless i am struggling to interface the TLC59711 with my circuit.

the reason for all this is to get a flicker free led dimming. i need to point a camera at the led and not see any pwm flicker.
i tried this with the tlc5940 and it worked.

can anyone help me out?
thanks. stephan.
Attachments
led circuit
led circuit
led_circuit.jpg (8.91 KiB) Viewed 1511 times

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: TLC59711 and open drain drivers

Post by adafruit_support_mike »

Hmm.. the ZXLD1350 works on a different theory than the TLC59711.

The ZXLD1350 is basically a step-down converter that uses LEDs in the voltage conversion path. That's kind of a neat idea, actually. The average current through the LED will be controlled, but the inductor acts sort of like a flywheel. A continuous current will flow through the LEDs to the inductor as a sawtooth wave going between +/-15% of the nominal value. The chip controls the other end of the inductor by dumping current to GND at discrete intervals. The frequency of that signal depends on the amount of current you want running through the LEDs.

The TLC59711 works on a simpler theory, but packs in just about every option it can. Current flows through the LEDs to a switch, then to a constant current sink. The maximum current that can flow through any current sink is controlled by a reference current flowing through the IREF pin, then you can program the current sinks to 128 levels between 0 and the reference current. The switches then act as PWM controllers between the LED and the current sinks. The PWM frequency is fixed, but you can control the duty cycle to 16-bit resolution (65536 values).

PWM is inherently flickery, but the TLC59711's frequency is too fast for the human eye to see. Whether that works for a camera is something you'd have to find out through trial and error.

If you can, start by using the current sinks to control your fade. If you need finer resolution, bring in the PWM and see if that works with your camera. As a last resort, you can probably build something halfway between the two chips by putting an inductor between an LED and the TLC59711's output pin. That would smooth out the current, which would also have some effect on the effective voltage the LED sees. That would involve a lot of trial and error though.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

thanks for taking the time.

are you suggesting that the TLC59711 could drive the higher current LEDs (350 mA) if i "build something halfway between the two chips" ?
do you think you could point me to a schematic of a similar setup?

I used the open drain PWM of the tlc5940 and connect one of it's output pins to the adj pin of my led circuit. this created a dimming on my high current LED. i was hoping the same would happen with the TLC59711.

right now i am using adafruit's TLC59711 library. not sure if it allows me to adjust the current sink levels you mentioned.

thanks,
stephan.

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: TLC59711 and open drain drivers

Post by adafruit_support_mike »

stephanschulz wrote:are you suggesting that the TLC59711 could drive the higher current LEDs (350 mA) if i "build something halfway between the two chips" ?
Not from a single pin, no. The TLC59711's current sinks have a 'let the smoke out' limit of 75mA, and in practice you want to keep them around 60mA or lower. You can run multiple pins in parallel though. Six would give you up to 360mA, twelve would give you 720mA.

When I said "something halfway between the two", I meant it might be possible to make the current through the LEDs a sawtooth wave (like the ZXLD1350) controlled by well-defined current and PWM limits (like the TCL59711). The schematic for that would just be "put an inductor between the LED and the pin".
stephanschulz wrote:I used the open drain PWM of the tlc5940 and connect one of it's output pins to the adj pin of my led circuit. this created a dimming on my high current LED.
Based on what I see in the ZXLD1350 datasheet, you could get pretty much the same effect from bit-banging a PWM signal on an Arduino. The ZXLD1350 has an internal 4kHz filter, so frequencies lower than 4kHz appear at the output as PWM, while frequencies above 4kHz get averaged to a roughly DC reference voltage.

Using multiple pins on the TLC5940 in parallel would also work.
stephanschulz wrote:i was hoping the same would happen with the TLC59711.
Do you mean you were hoping to use the TLC59711 as a PWM source for the ZXLD1350, or the TLC5940 to control the TLC59711? The former is possible, though again it would be easier to generate the PWM directly from a microcontroller. The latter is almost certainly a no-go.
stephanschulz wrote:right now i am using adafruit's TLC59711 library. not sure if it allows me to adjust the current sink levels you mentioned.
Our library reduces the TLC59711's complexity to a simple "this LED, this duty cycle" interface. The current sinks are set at their maximum levels and then more or less ignored, but it wouldn't be hard to add methods that control them. Just add methods to set the internal values 'BCr', 'BCg', and 'BCb'.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

thanks again for your great reply.

i tried using the analogWrite and my own pwm via interrupt calls (call interrupt every 30us). see here http://forum.pjrc.com/threads/24599-Int ... #post38067
both in connection with the ZXLD1350 circuit was not fast enough and caused flicker, when looking through a camera.

yes i am hoping to "TLC59711 as a PWM source for the ZXLD1350".

i had a felling that the TLC5940 outputted a very fast signal (maybe PWM maybe not) that i connected then to the ZXLD1350 and the flicker was gone. i might just use multiple TLC5940. But the e2e.ti forum says the TLC59711 are better for longer cable runs between chips.

i will also try using multiple pins. but i wonder why drivers like this https://www.sparkfun.com/products/9748 do not do that.
maybe just a financial reason?

i just wonder what the difference between the TLC5940 and TLC59711 are, that the former makes it work with the ZXLD1350 and the later no.?
thx

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

i tried connecting my high bright led ( XPCWHT-L1-0000-008E7 with 3.2V forward voltage and 500 mA max current rating) to multiple channels on the TLC59711.
i added a 1 k resistor to up the current output of the TLC59711 to about 50 mA per channel.

i noticed that during the fading curve strange visible dropouts happened. not sure why that would happen.

i also tried this on the TLC5940. no dropouts happened, but the chip shutdown after a while. probably it got too hot even though i only had each channel at 40 mA.

i guess there is a reason for proper LED drivers like the ZXLD1350 ??

update: lowering the Vin to the TLC5940 from 12v to 5 v stopped the dropouts, since there was less power dissipation.

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: TLC59711 and open drain drivers

Post by adafruit_support_mike »

It's possible that there's a 'total current for the chip' limit that isn't mentioned explicitly in the datasheets. In theory, datasheets are supposed to tell the user everything they need to know to make a circuit design work. In practice, they tend to be a compromise between the company's engineers and the marketing division. Sometimes that means you have to read between the lines to get the information you need.

WRT the board you linked from Sparkfun, that has general output pads, so running them in parallel would be easy. I don't think there's any nefarious purpose, just an "oh, yeah.. didn't think to mention that" thing.

The TLC5940 has a clock rate of 30MHz and 12-bit resolution, so its PWM frequency would be around 7.5kHz. That's faster than the human eye can see, but might run into aliasing issues with cameras.

'Aliasing' is the phenomenon that makes car wheels appear to spin backwards in old TV shows and movies. It happens when you take discrete samples of a repeating waveform at a rate less than twice the wave's frequency. Basically the source executes a complete HIGH/LOW cycle faster than the sampling system can see it.

A cellphone camera probably samples at much less than 15kHz, so what it's seeing is the average of several pulses from the LED. If the LED's PWM frequency is close to a multiple of the camera's sampling frequency, you'll see what's called a 'beat pattern'. The bright sections happen when the camera sees (for instance) 3 LED-ON periods and 2 LED-OFF periods per sample, the dim ones happen when the camera sees 2 LED-ON periods and 3 LED-OFF periods per sample.

The differences become less noticable the farther apart the source and sampling frequencies get, and more apparent the closer they are to each other.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

thanks.

from my tests today i learned that the TLC5940 is a bette option for me.
according to the manufacture's forum the tlc59711 would be able to have longer cables between chips, which is very nice to have.

but it seems that the TLC5940 is better at using multiple channels to sink the current of one LED.

it is also better to keep the Vin of the LEDs as low as possible, so the TLC does not get to hot and does not need to dissipate the extra power.
it also seems using a 470 ohm resistor to get the max current out of the TLC isn't so good. it caused my setup to flicker the leds.
that was a bit strange. i used the TLC5940 library and the DMXSerial library and then the flicker happened. it went away when increasing the resistor and increasing the amount of channels i used per LED.

not sure for the reason of all this. but that's why i am more of an artist then an engineer :)

thanks again.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

i think i found a way to control my led circuit around the ZXLD1350 via the TLC.
by using optocouplers.
the led in the opto get's switched by the TLC and the emitter/collector on the opto create the PWM for the ZXLD1350.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

using this optocoupler 6N137 did not work. http://www.fairchildsemi.com/ds/6N/6N137.pdf

the tlc works fine, because as a test i connected a LED to the opto's output Vo, which dimmed just fine.

i also took the tlc out of the equation and feed a PWM from the arduino in to the opto's Vf, which dimmed the ZXLD1350 circuit fine.

this is really strange.
maybe there is a problem with the frequency the TLC bangs the opto ?

thanks.
Attachments
Screen Shot 2013-12-20 at 4.42.08 PM.png
Screen Shot 2013-12-20 at 4.42.08 PM.png (22.85 KiB) Viewed 1400 times

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: TLC59711 and open drain drivers

Post by adafruit_support_mike »

I can't think of any reason why you'd need an optoisolator for the circuit you've described. They're generally used to prevent ground loops in long signal lines (150' or more). What were you hoping to get from it?

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

true, ideally i would connect the tlc to the the adj pin of the ZXLD1350. in the hopes that the open drain pwm of the tlc would adjust the led dimming via the ZXLD1350.
but for some reason nothing happens when i do this.

i am guessing the tlc needs some sort of voltage applied for it's output pins in order to drain that voltage.
but the adj of the ZXLD1350 does not supply any voltage.

User avatar
stephanschulz
 
Posts: 21
Joined: Tue Jan 08, 2013 4:35 pm

Re: TLC59711 and open drain drivers

Post by stephanschulz »

i also tried to connect this led driver (AL8805W5) to the tlc output
https://www.sparkfun.com/products/11850

but same thing, the led driver did not react.

i tried driving the AL8805W5 from a maple mini that can do open drain/collector pwm and regular pwm. do methods worked with the AL8805W5.

so i am really wondering that the tlc does differently.

how could i turn the tlc output, which i guess is a current sink, in to a regular PWM (like the one on an arduino) ?

thanks.

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”