Go Down

Topic: Around 50 RGB Leds... Possible??? (Read 5 times) previous topic - next topic

steffensen

Quote
I did some quick searching and multiplexing with the TLC5940 is possible. so you could do with 3 TLC's. However 10 TLC's would be easier I guess but more expensive.
When you have 10 TLC's you don't have to multiplex, every led has got its own driver. You could use the library I posted before. I've just tested it with multiple TLC's and it works fine. Every leds gets it's own position in the array. When you multiplex every driver is shared with 8 other leds. This means that 7/8th or the time a led is turned off.

With the TLC5940 you can set the PW(M) and/or the DC. So you've got two methods to adjust the brightness. I don't know how the PWM of the TLC will work with the PWM you generate when multiplexing. maybe you could just leave the TLC's PWM on 100% and only adjust the DC. I've never actually used multiplexing so I'm only a novice there.

As far I can tell from the photo he's only able to set a led on or off and not dim. If you need a simple latch register check out the 74HC595, cheap and the code is on Arduino Playground.


The solution here, is to torn off & on the leds so fast, that the human eye cant detect it. That way it looks like it off/off while its not, also, it uses only the power of 1 TLC. So the leds brightness doesnt change that steep, as they would if you would drive 10 TLC's.

steffensen

Quote


Immediately I discovered that I could NOT use Sparkfun's RGB led with the 5940. Short explanation: The Sparkfun component has one lead as the Cathode (negative) connection, and the three other leads are Anodes (positive) for each of the colors. The 5940 chip is a "cathode sink" design (I think I'm saying that right) which means that the ports for the LEDs on the chip deliver negative polarity. To uniquely control each color I would need a "common anode" LED, or three separate R G and B leds. Argh.



Whoooo... not good news at all. No way around this?

Oracle

Quote
The 5940 chip is a "cathode sink" design (I think I'm saying that right) which means that the ports for the LEDs on the chip deliver negative polarity.


If you mean it has 1 lead as the anode and 3 separate cathodes, the term is "common anode".

"Cathode sink" doesn't really mean anything.

julienb

Quote
Quote
The 5940 chip is a "cathode sink" design (I think I'm saying that right) which means that the ports for the LEDs on the chip deliver negative polarity.


If you mean it has 1 lead as the anode and 3 separate cathodes, the term is "common anode".

"Cathode sink" doesn't really mean anything.


i just quote a guy here: http://pixelriot.com/pmatp/node/42

very nice to read all of this thread cause I'll understand much more things in the future :-)


other suggestions Oracle ?
with steffensen, we talk about that driving leds..
with sparkfun pad button + PCB.
I ordered 5 max 7121 (3 + 2backups....)
I'll chain 3 for each colors
I'll need a solid firmware to scan buttons + cycle leds etc...

wow!
julienb
http://www.julienbayle.net

julienb

I had a suggestion of a guy to drive the 64 RGB leds:

using only one MAX7221 + 3 transistor
and cycle one channel color at a time with transistor.

someone could help me to draw/design that on the paper???

see u
julienb
http://www.julienbayle.net

Inventor

Julienb,

you might look at 3 chips that I have found. One is the allegro A6280 3-Channel Constant-Current LED Driver with Programmable PWM Control http://www.allegromicro.com/en/Products/Part_Numbers/6280/index.asp
The other is Silicon Touch Technology DM413 http://www.siti.com.tw/product/spec/LED/DM413.pdf also their DM412. http://www.e-neon.ru/user_img/catalog_datasheets/dm412-a.003.pdf

I am doing a project that uses the DM412 and have found it relatively easy to interface. Each RGB LED is driven by a DM412. You shift out 48bits for every LED you have in your line and either toggle the strobe line or send a special software strobe by holding the clock high and sending 8 pulses on the data line.

I see that Digikey and Newark sell the Allegro chip but only in the qfn package. Sparkfun soldering tutorials have encouraged me that surface mount is possible but I have yet to tackle that.

The DM412 I am using is in a commercial LED product that I am hacking. The company engineers told me that is what is in it. I'm not sure they want me broadcasting this info. Besides they charge $10 a node for their waterproof string of LED's.

I first tried the BlinkM but it was not bright enough for my outdoor application and the i2c bus is prone to noise problems over the 100 feet I want to string the lights. A cool thing about all these chips is that they cascade the data and clock from chip to chip keeping the logic levels clean and perky.

redhotdaddy

Quote
Google "cascading tlc5940" and "cascade tlc5940"
Eberhard




terrific suggestion, but i googled the above way before posting here with no better luck.




I currently have two tlc5490's hooked up seemingly the way they are supposed to be, and Ive doubled the length of the arrays for fadeLevel and fadeState, like so:



int fadeLevel[] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //stores a level for each of the (now) 32 ports
int faderNdx = 0; //counter used in this fading sequence

int fadeState[] = {
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //stores the direction of fading for each port 1,0,-1
//start with first port



BTW, by doing this I also needed to adjust all of the for loops that follow that relate to these arrays.


What I am seeing is the same output on tlc5940 chip one and then a delay for what I imagine should be cycling through chip2. But chip2's LEDs just remain on in their low/off state.

I also tried playing with the length of the word[] array but it seems that that one really is dealing with sending the different values of brightness, and not finding the addresses of chip2.

Any suggestions besides google the obvious?


wayoda

#52
May 08, 2008, 09:37 am Last Edit: May 08, 2008, 06:33 pm by wayoda Reason: 1
Hi,
I guess your hardware-setup looks like the one in Figure 12 of the TLC 5940 datasheet. Your data coming from the arduino goes into SIN of the first TCL. SOUT from the first TLC goes into SIN of the second chip and so on for more devices.
XLAT, VPRG and SLCK are going in parallel from their Arduino-Pins to all the TLC's

To light up all the Led's on both chip according to your data, the code should work like this:

  • Set VPRG to LOW  (If you have not done that yet)
  • Set XLAT to LOW
    [edit]
  • Shift out 192 bits (1624 bytes) of data (which will go to the second TLC)
  • Shift out another 192 bits (1624bytes) of data (which will end up in the first TLC)
    [/edit]
  • Set XLAT to HIGH (This will upadte the Led's with the data just shifted into the TLC's)
  • Wait for more than 20 ns
  • Set XLAT to LOW again
 
Eberhard

julienb

Quote
I had a suggestion of a guy to drive the 64 RGB leds:

using only one MAX7221 + 3 transistor
and cycle one channel color at a time with transistor.

someone could help me to draw/design that on the paper???

see u


any ideas ??
julienb
http://www.julienbayle.net

wayoda

Quote
Quote
I had a suggestion of a guy to drive the 64 RGB leds:

using only one MAX7221 + 3 transistor
and cycle one channel color at a time with transistor.

someone could help me to draw/design that on the paper???

see u


any ideas ??

Thinking about it for no more than 120 seconds, I came to my personal conclusion :
Not possible
Eberhard

julienb

ok
I'm stupid in this knowledge domain.
thanks for answer
julienb
http://www.julienbayle.net

unsped

#56
May 08, 2008, 10:49 pm Last Edit: May 08, 2008, 10:55 pm by unsped Reason: 1
the idea with the max7221 and transistors.... is:

24 transistors, 3 groups of 8 that activate or deactivate each color anode row.

you have the max7221 display Red matrix... wait, then switch to the next color ... repeat.

basically ... multiplexing a multiplexer it would end up a little dimmer than normal but should work.


the more advanced option is 3 max7221 chips each driving each color channel, however since there is a common cathode for all 3 chips that you have to cycle through the chips anyways, turning them off so there led sinks go high (this is only on the 7221, the 7219 you can't do this) so i dont think it would really be more benefit than the single max + transistors.

wayoda

Hi,
Quote

the more advanced option is 3 max7221 chips each driving each color channel, however since there is a common cathode for all 3 chips that you have to cycle through the chips anyways, turning them off so there led sinks go high (this is only on the 7221, the 7219 you can't do this) so i dont think it would really be more benefit than the single max + transistors.

This has been tested (sucessfully it seeems)  
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206907547/0
Eberhard

julienb

other ideas about that here: http://forum.sparkfun.com/viewtopic.php?t=10617

a concept where MAX7221 would be about 4.
one for each quarter of the 8x8
each MAX7221 would drive 4x4 RGB leds...

let's think about that  ;)
julienb
http://www.julienbayle.net

macegr

Quote
Julienb,

you might look at 3 chips that I have found. One is the allegro A6280 3-Channel Constant-Current LED Driver with Programmable PWM Control http://www.allegromicro.com/en/Products/Part_Numbers/6280/index.asp
The other is Silicon Touch Technology DM413 http://www.siti.com.tw/product/spec/LED/DM413.pdf also their DM412. http://www.e-neon.ru/user_img/catalog_datasheets/dm412-a.003.pdf

I am doing a project that uses the DM412 and have found it relatively easy to interface. Each RGB LED is driven by a DM412. You shift out 48bits for every LED you have in your line and either toggle the strobe line or send a special software strobe by holding the clock high and sending 8 pulses on the data line.

I see that Digikey and Newark sell the Allegro chip but only in the qfn package. Sparkfun soldering tutorials have encouraged me that surface mount is possible but I have yet to tackle that.

The DM412 I am using is in a commercial LED product that I am hacking. The company engineers told me that is what is in it. I'm not sure they want me broadcasting this info. Besides they charge $10 a node for their waterproof string of LED's.

I first tried the BlinkM but it was not bright enough for my outdoor application and the i2c bus is prone to noise problems over the 100 feet I want to string the lights. A cool thing about all these chips is that they cascade the data and clock from chip to chip keeping the logic levels clean and perky.


Very nice. I ran across the DM413 by accident and an intense search for that part got me to this forum. It confirms my impression that the DM413 is kind of a secret, or at least is integrated into products rather than imported as a raw IC. I'm interested in using the DM413 in a new product, but having a very difficult time getting samples and quotes for larger quantities.

A similar device is the Allegro A6281. I developed a product using it (ShiftBrite, http://macetech.com/blog/node/54), but have found the A6281 is a little susceptible to interference and the registers are not well thought out; interference can disable the output buffers on a chip, so you have to reset each device on a chain before you're able to reset the next one. For me, that takes the ShiftBrite out of the running for mission-critical applications, although I have a lot of them running here and am really happy with the ease of use. The 3mm QFN chip will set you back around 80 cents in medium quantities, and is possible to solder by hand on a professionally made PCB.
Unique RGB LED Modules and Arduino shields: http://www.macetech.com/store

Go Up