more series tlc5940 woes

Discussion in 'The Projects Forum' started by cscape, Sep 14, 2012.

  1. cscape

    Thread Starter New Member

    Sep 14, 2012
    3
    0
    I'm trying to string 16 tlc 5940's in series with a maximum of 4 RGBleds per chip (some have 2 some have 3 some have 4.) I've done similar things in the past but with white only LEDs. In the last project we maxed out at a 30 chips in series before we started to see signal degradation(12 leds per chip in that one for a total of 360 unFETted LEDs).
    When stuff doesn't work I tend to trod on the shoulders of others as a base-line test. But even here I fail.
    If I take the schematic from texas instruments and replicate it, (in this case a building block of three chips daisy'd'), and the 5940 library from Arduino and a bunch of RGB leds- the ones connected to the first two chips work flawlessly and I can address each one perfectly.(3 leds on #1 so 9 channels and 4 leds on #2 so 12 channels, and 4leds on #3)) The LEDs connected to the 3rd chip however just flicker at about 3 hz and I have no control over them.(. I'd rather not use one chip per color to maximize the current on each of the colors, and instead I have just chosen a limiting resistor on IREF that will deliver the lowest amp level of all the colors - I'm not worried about true whites or accurate colors right now, I just want to find the issue. So the conenction pattern up along the outputs is RGBRGBRGBRGB NC NC NC NC
    A few other details - schematic: lifted right off the TI TLC 5940 cascading document (a little different than the 5940 spec sheet but close and I've tried it too),
    I'm running both chips and leds off 3.3 V. My power supply can deliver 3 amps so I don't think I'm out of juice. (i've tried 5v also thinking that by the time it hits the third chip it's too low - we've seen 5940s behave oddly at threshold Vs).
    Each led is Red-(FV 2.4V, 20mA), Green and Blue each-(FV 3V 25mA). Limiting resistor is 2k on IREF (i've also tried 2.7 k which seems to give me a bit better performance - these are 1/4 watts) Using the 2K gives me the lower 20mA per channel matching the lowest power RED. I have had three chips in series running with the 4th behaving badly but that's as far as I can get, and haven't been able to repeat it, and its a long way from 16 ( i realize 16 will require a power overhaul but I just want to get beyond 3 or 4 for now)
    I'm also NOT using MFETs for switching the LEDs. Since I'm way under the 5940s mA limit and I'm not populating all the outs, I thought that would be fine. I don't intend on running any eye searing Luxeon modules.
    I've built this thing on breadboards, project boards and even photoetched dual layer PCB's so it's not likely a short or bad trace. This is TI's design and it doesn't seem to work. Of course the fault is with me, but is there a trick or missing "assume you knew" info?
    Some TI schematics show Xerr needing a pullup resistor of 100k and although I can't believe it's this, I've tried with and without. I'm also not worrying about dot correction yet.
    I've tried a cap on the IREF resistor and a pull up resistor on the BLANK to prevent full-on during loss of signal (only one pullup per row of 5940's since all blanks are tied together).
    I've tried caps on and off on the LED power rail as well as the main power, and yes all grounds are tied together including the driving arduino's.
    I know there is a MAX solution to this but we've had such good luck with the 5940 and all of our software is built around it, I would prefer to stick to what (I thought) I knew.
    Thoughts?
     
  2. cscape

    Thread Starter New Member

    Sep 14, 2012
    3
    0
    Since our last projects (all successful) used white leds, I got a bunch out and replaced the RGBs.
    With RGBs I can get to 3 chips before the fourth flashes the LEDs. But with whiteLEDs, 2 chips is the limit. Granted these whites can handle more power than the delicate RGBs, but since I'm limiting it with the IREF resistor would that really matter? Could just be a nudged wire in the replacement.

    I suppose the problem could be the speed of the data coming in (no scope to play with this week) but I can read a snapshot of the values and they all look good, and the first set of chips is perfect. I would think if I had a sync issue or was too slow in delivering it would show up right away (SPI by the way not bit banging) and might even scroll.
     
  3. R!f@@

    AAC Fanatic!

    Apr 2, 2009
    8,754
    760
    better attach ur diagram .
     
  4. Sensacell

    Well-Known Member

    Jun 19, 2012
    1,131
    267
    Here are some practical pointers for cascading 5940's successfully:

    #1) GROUND- is the most important design consideration, you MUST create a heavy low resistance and low inductance path for the ground currents!
    All hell breaks loose when ground noise corrupts your digital signals.
    All those LED's switching can create current pulses of many amperes, a wimpy cascaded ground stands no chance at keeping quiet under those conditions.

    #2) Bypass each chip with 0.22 uf RIGHT AT THE POWER PINS of each chip.


    #3) Look at your GSCLK and other signals with a scope, consider using a clock diver chip if your clock is not meeting spec.
     
  5. cscape

    Thread Starter New Member

    Sep 14, 2012
    3
    0
    Here's the layout I'm using. Have just switched LEDs (not that it will matter much). Red -FV2.1V, 20mA, Blue and Green FV3.2V, 25mA. And still limiting to the 20mA level on IREF.

    Have a decent ground rail but will try making it bigger and, like a good airplane with lots of exits, will hook them everywhere.

    Will give the .22mf cap a go at the VCC pin of each chip.

    The ground issue may explain why I was able to get to 4 chips, but now can only get to 2 (on breadboard vs PCB). I'd love to go with a 4 layer board and have a power and ground layer each but it's not practical yet - doing SMDs on a 2 layer board made by hand is tricky enough.

    Forgot to mention that in one PCB iteration I got to 4 chips but with the first two LEDs on chip 4 flashing wildly, but the last two on that chip perfectly under control, save a little flicker, in sync, with the current use created by the two crazy ones.

    Just to check that it was the hook up and not the code causing the flicker past chip 2 (and before the above suggested changes) I hooked the SIN of chip 3 to the same input as chip one. If it was a code issue then chip 3 should run in lock-step with chip 1 since it's working fine, but chip 3 still flickers with no control so now I'm sure it's the hook up.

    I've also wondered about the unconnected outs I'm not using. Should they be hooked to something? In the past we've just left them be, but there were only 4 per chip. Here I have as many as 10. (LEDs always start population from Out0)
    Thanks for the help.
     
    Last edited: Sep 16, 2012
  6. Sensacell

    Well-Known Member

    Jun 19, 2012
    1,131
    267
    The VLED of 3.3 is too low to fully drive and regulate a 3.2Vf LED.

    If you look at the data sheet, the output voltage is at least 250 mv @ 20 ma.
    so you need VLED > 3.5 V at least. You can leave the unused outs NC, no issue there. The SIN and SOUT signals get 'regenerated' by the chips every hop so they are usually fine, it's the clock and latch signals that get clobbered when you expand, consider what is driving the clocks- make sure there is enough drive level.

    Also consider more VLED bypass capacitance, keep the leads short, connect cap GND close to chip GND so current flows in small loop.

    If I have to breadboard these circuits I build them on a piece of copper clad perf board, the GND plane makes for clean and quiet operation.
     
    Last edited: Sep 16, 2012
Loading...