Go Down

Topic: TLC5940 Woes (Read 3 times) previous topic - next topic


@mike: Oh, and were you suggesting putting a pull up resistor between the last pin's Signal Out and Vcc? Or which pins exactly? I wish I had a scope, but I won't be able to get my hands on one for a few weeks at best.

Not serial out but serial in and also the clock and load pins. This is because the signals get weak at the ends.


@defsdoor: Thanks for the link. I just read through that post, and I'm hesitant to make those changes for two reasons:
1) The poster talks about changing the XLAT and BLANK pins on the Arduino, but I don't see where he changes their pins in the code. I don't want to start making guesses on what I should be changing, since most of the timing code is over my head. :/
2) I think he is using the multiplexing library.

It sounds like the changes could be beneficial, but I'm not confident enough to make those changes myself. Do you think that this could be causing a problem? The library seems to work well when I'm using 3 TLCs. It only gives me problems when there is a significant length of wire between the TLCs.

@mike: Ahh, yes I understand. Putting 10k pull-up resisitors from a signal wire to Vcc right before it enters the painter should help boost the signal if it's getting too weak as it travels across the wire. Is that right? Again, thank you. This project is soo close to coming together!


Pull ups on the signal lines, all of them really. Those tiny surface mount ceramics are better than the large ones with leads. If you have any more try putting then on top of the original ones to add extra capacitance. If you have them ceramics of 1uF or larger would be good.
Eight inches is a long way in electronics, the trouble I was having recently with spurious oscillations on the LED lines was caused by that sort of distance. Attached is a photo of what was happening.


Feb 12, 2011, 02:35 am Last Edit: Feb 14, 2011, 12:13 am by AlexXx Reason: 1
I tested out two painters again. I added 0.1?F caps across each chip. I also put a 10k pull-up resistor between each of the signals and Vcc just before they entered the painter boards.

When I ran the program, the two LED arrays were more closely matched than they were before, but the first painter didn't work perfectly like it did the first time. Hmm. I not sure what to make of this.  :/

EDIT: I tested the two painters once more, this time with a really short signal cable between them. I didn't really see any different results from before.

Can anyone explain to me what changes need to be made to the TLC code library? I can add that "IMPORTANT BIT" into the ISR function, but I'm not quite clear on what I need to do with BLANK and XLAT. Do I plug them into Analog Inputs 0 and 1 of the Arduino? If so, then isn't it bad thing to set their pinModes to OUTPUT? And, shouldn't the new pin numbers be assigned to BLANK and XLAT in the code? It just isn't very clear in that post. :/

Thanks once more for your help. I'm running out of possible problems, which is a good thing. There has to be a point where I have checked everything that could be going wrong. I can post a video of the painters in action if anyone cares to see it, just let me know.


The new pin must be declared, BLANK and XLAT are connected to analog 0 and 1, but used as digital pin 14 and 15. Fede
Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Go Up