TLC5940 and alphanumeric LEDs

MartinM57

Moderator
I want to drive a number of 2.3" alphanumeric LEDs (http://www.kingbright.com/manager/upload/pdf/PSA23-11SRWA(Ver1189413285.10) which have an interesting design in that they have different current requirements for the different type of segments - the big segments are two sets of two LEDs and the small segments are one set of two LEDs.

I also want:
- to be able to have a variable input supply voltage (let's say 10 to 15v) with minimum regulation for the LEDs, due to power dissipation in the regulator (SMPS is OTT for this)
- minimum component count
- variable brightness

So I've found the TLC5940 (http://www.farnell.com/datasheets/85896.pdf) which seems to fit the bill - constant current with varying LED supply in the right range, adjustable correction per LED, PWM control for brightness etc - but it looks a bit of a beast to control to get all these features - message formats as well as the implementation across a SPI-like interface

Anyone done it with a PICAXE - or used any other driver chip with similar capabilities ??

TIA
Martin
 

Andrew Cowan

Senior Member
You won't find a chip that can determine different currents for each LED without going into comlex interfaces.

Your best bet is adding extra resistors to the segements that want less power - then they can be driven the same.

A
 

MartinM57

Moderator
Of course - and that is a viable option.

But it takes you into having, per display:
- 16 output lines on the PICAXE (or a 4 to 16 decoder chip - 4514B/4515B?)
- 2 off 18 pin ULN2803 darlington drivers
- 2 off 16 pin resistor arrays - one for big segs, one for small segs
- a method using PWM to vary brightness (maybe via the INHIBIT line of the 4514B/4515B?)

You also need to regulate the incoming supply (780x regulator and caps) to a fixed value so that you can rely on the LED brightness with varying supply voltage and taking up a whole load of PCB real estate for all this compared to a single 28 pin DIP.

I might take the challenge of the TLC5940 - it would be a nice solution...

Any more views?
 

BeanieBots

Moderator
I'm sure somebody did do something similar so worth a search.
Unfortunately, I can't remember who (westy?) or any part numbers but I recall a thread discussing the ability to set each segment current with an I2C device.
Sorry I couldn't help with more detail and hope I haven't sent you on a wild goose chase. Hopefully, whoever it was will be around soon.
 

MartinM57

Moderator
For some reason yesterday I typed "led driver" into the Search of this forum, came up with a link to the TLC5940 which I then went off and investigated - TI web site, Google, Youtube(it's always worth searching Youtube with component part numbers...it's amazing what people post there :) etc

...but didn't think of coming back to this forum and searching for "TLC5940" ... which I have now done. No canned solutions, but a few posts from gbrusseau, who seems to have done it/knows how to do it.

Thanks for reminding me to look closer to home!
 

BeanieBots

Moderator
Ha Ha, yes U-Tube.
If there isn't a video of it on U-Tube then it's never been done before:rolleyes:

Now you've mentioned the name (gbrusseau) I remember.
Memory isn't what it used to be:(
 

gbrusseau

Senior Member
Without knowing a little more about your requirements, I would say no. The TLC5940 is overkill for what you want to do, assuming that you want to control the brightness of each entire 16-segment display or the entire group of displays and not each individual segment.
If you could be more specific about your requirements, a better solution may be suggested.
 

gbrusseau

Senior Member
The TLC5925 is a 16 channel constant current sink LED driver. Does not have brightness control of each individual channel, but I'm guessing if the "output enable" pin is pulsed (PWM) you can control the brightness of all 16 channels at once. Haven't tried that though. The advanage of this IC is its much easier to control. You only need to clock in 16 bits of data for the 16 channels as apposed to 192 bits for the 16 channels of the TLC5940. Hope that helps.

http://focus.ti.com/lit/ds/symlink/tlc5925.pdf
 
Last edited:

MartinM57

Moderator
I think I'm getting stuck on the perceived need for different currents through the different segments of the display (see the schematics inside http://www.kingbright.com/manager/up...r1189413285.10)

Any thoughts? If different currents are needed for the different segment types it seems a bad design, requiring hoops to be jumped through in the external circuitry :(

I did an experiment with a 12v supply and a 470R resistor onto the display I have and it seemed that the different segement typs had different brightnesses - I need to repeat that more scientifically...

I'm not averse to complex interfaces - I'm reasonably skilled in MAX7219, which isn't a pussycat either!
 
Any thoughts? If different currents are needed for the different segment types it seems a bad design, requiring hoops to be jumped through in the external circuitry :(
I like the earlier post on using shift registers ('HC595), of course that means using the individual resistors that work with your display segments. So in the end, is it a hardware, or software solution?

There is an I2C equivalent (not constant current) of the TLC5940, and it is the PCA9635. Really don't see the need for either, unless doing RGB or some larger matrix displays. Of course, there is just the educational aspect, which is always fun too!
 

MartinM57

Moderator
TLC5922 looks like just the functionality I need, but the packaging is particularly unfriendly, especially the heat dissation pad under the chip that you need to solder-connect to something. Any ideas on how to do that DIY?

I did a test with all segments alight on the display in question display just using 12v and 470R's on each (and every) segment at the same time - the "small" segments are definitely brighter :(

So unless you use a constant current, dot correction, chip like a TLCxxxx you seem to be forced to use loads of suitably balanced resistors to get even brightness which then implies shift registers/decoders/darlington drivers etc in the solution.

I can't see what I'm missing that avoids this being the situation - maybe it's just that these "advanced" alphanumeric displays (which I need the alpha- part of, so standard 7-segments are no good) do need you to use the "advanced" chips to drive them?

Thoughts welcome...
 

gbrusseau

Senior Member
First solder a thin layer of solder on the ICs heat sink pad. Then do the same to the PCBs copper trace heat sink pad. Place the IC onto the PCB and line up the pins with the PCBs pin traces. Once the IC is lined up, use your soldering gun to heat the PCBs copper trace heat sink pad while holding down on the IC to prevent it from moving. The heat will sweat solder the two together. Then solder the ICs pins. It work better if you put some solder paste on the heat sink pad before you sweat solder the two together. Not real hard to do!
 
Top