Working with shift registers (tlc5940 and Library) on Sparkfun breakout boards driving individual LEDs.

The boards are designed to connect VPRG, GSCLOCK, BLANK, XLATCH, SIN/OUT, SCLK,VCC, GND in serial. Everything works perfectly on Board #1-10. However, I need quite a few more boards/chips (up to 28) and the signals get crazy from Board 11 onwards.

I was hoping to find some options to increase the signal strengths to and past board #11, all while keeping the timing correct.. Any help with possible solutions/specific schematics is GREATLY appreciated.

The TLC breakout boards are spaced every three inches. LEDs, chips and Arduino all are powered from a 5V regulated, 40amp source (MeanWell). Power is getting to last board and it's Leds. The connections/soldering are solid and not shorting. Each led and board has been tested individually.

I understand that this is a tall order, impedance, connections, conductance, the board, etc are in play here but I very much need to keep the boards in this lengthy configuration (necessary for art installation). Even if this boost doesn’t get all 28 chips working, I’d like to understand more how the various clock, latch, data signals can work through an extended serial bus and what I can do to clean up, bolster and push them further.

Chip Datasheet: https://www.sparkfun.com/datasheets/Components/General/tlc5940.pdf Spark fun Board: https://www.sparkfun.com/products/10616

View of the line of Boards


Hoping the break from this project doesn't bury it, but I've got a few more questions based on trying to use the above suggestions.

I've redesigned the art installation so that I could get the chip/boards centralized and next to each other/Arduino rather than separated out to the 4 grids of LEDs. I am going to run a much, much thicker solid straight line for connections, ground and power (which I will increase to 6v). Main question I have is about the difference between a Buffer Amp and the clock driver. Since the TLC5940 boards are designed to run in serial, and since I need so many (approx30), It's been suggested that I run a 74HC7014 Non-invert amp every three-ish boards. I can do that, but should I drive all of the signals from the same Buffer? Data, VPRG, Blank, and both clock signals (GSclock, Sclk)?

Or should I push both clock signals in parallel from a "robust" clock driver (any suggestions as to which one?) and the rest of the signals in serial through the boards and Buffers?

I was also wondering how and if I need to do anything to terminate any of the signals/ground? Would it help keep everything working as supposed? Right now, all signals/power and ground are just in a long line, from the Arduino straight through all boards and drivers (It does bend in half, though, to keep it compact) Is there anything that should be done after the last board? Or can they just end?

Could use a little more suggestion on the schematic before I solder this up and try it out. @oldfart ?

layout number 2 schematic number two

  • \$\begingroup\$ are you sure that the power voltage level is good on the failing units? \$\endgroup\$ – jsotola Feb 24 '18 at 6:40
  • \$\begingroup\$ try feeding the clock to the middle of the daisychain \$\endgroup\$ – jsotola Feb 24 '18 at 6:43
  • \$\begingroup\$ All the LEDs light up full power and crazy flicker (they are supposed to be off) from board 11 onward. I don't think this is just power, I'm getting a 4.7 volt power reading at the end of this chain of 14 boards. As well, I've tested the board chain starting from the middle and it works as expected. Do you mean running the clock signal from the Arduino both in serial AND parallel to a board in the middle? The library needs a GSCLOCK and a SCLK, do this for both? \$\endgroup\$ – adlib33e Feb 24 '18 at 7:05
  • \$\begingroup\$ What is the speed of SCLK and it's overall wire length? \$\endgroup\$ – Paul Uszak Apr 12 '18 at 23:15
  • \$\begingroup\$ Paul Uszak - The length of the 32 boards + space for the OpAmps = two rows of 50 inches. So 100 inches total for the line. Not sure how to find clock speed. Best I can tell by looking at tlc5940 data sheet is that both GSCLK and SCLK operate at 30mhz. \$\endgroup\$ – adlib33e Apr 12 '18 at 23:45

I noticed that each board has a 5V regulator for the LED driver. You state that your power supply is 5V too. This will mean that the regulator does nothing but cause a light voltage drop. The TLC5940 will work on a voltage slightly UNDER 5V. It has 3..5V operating range so that is no problem for the chip. If your LEDs can stand it use a higher VCC voltage. It would be better if you e.g. use 6V and then you can loose 1 volt over the wire and the regulator.

Possible solution:
As it seems to work on 11 boards I would suggest you make a small 'signal repeater' board. Just a set of buffers which take the input signals and send them out again. Make e.g. five or six of those boards and insert them at regular intervals. (Do not think: it worked with 11 so 28/11 = ~3 boards. You will need a safety margin). I had a quick look and the 74HC7014 looks good: six non-inverting buffer with Schmidt trigger input. Probably good up to 1MHz at 5V. Maybe you can find the 14-DIP version which is easy to solder on a breadboard.

Next time you embark on an electronic project this size talk to an experienced electronics engineer. Preferable an old fart like me. We know the pitfalls for constructions like this.

Your connection diagram looks better except for one detail: You are feeding the HCT clock driver boards from the VCC which is 6V. But your expansion boards have a regulator which make them 5V. Try to find a 5V signal on one of the the expansion board adjacent to the clock driver and connect that to the HCT board instead of VCC. The alternative would have been to add a 5V regulator to each HCT buffer board.

You should buffer all the signals. That way they all get more or less the same delay and thus as a group there is little change. In this case it works as all signals go in the same direction. There is no 'return' channel.

You do not need to terminate the power/ground. As to terminating the serial signals. It is not bad idea but as the system worked before with ~10-ish boards I would first try without. You can always add them. It would be nice to have a scope picture of the signals at the begin and end.

| improve this answer | |
  • \$\begingroup\$ Any chance you are still around to answer the clock driver questions, @oldfart? And perhaps a bit about power/ground/signal termination? As in is it necessary? \$\endgroup\$ – adlib33e Apr 24 '18 at 23:50
  • \$\begingroup\$ Thanks for the input @oldfart. Just for clarification, your suggested 74HC7014 is a 6-channel digital buffer. That will work to push both digital AND clock signals? I think you answered that but I just want to make sure I understand correctly. Noted about the power difference between the vcc on HC7014 and the higher voltage power rail. Learning to scope (and buying one) is my next step in this journey. \$\endgroup\$ – adlib33e May 3 '18 at 19:42
  • \$\begingroup\$ Yes, buffers are design to drive all output simultaneously at maximum power. Make sure you have a good decoupling capacitor (e.g. Ceramic 220nF) as close as possible to the chip with good power and ground connections. That is where it will get it's main power from to drive the signals high. \$\endgroup\$ – Oldfart May 3 '18 at 19:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.