TLC5940s work in 1 project but not in another

Discussion in 'The Projects Forum' started by Ant Brown, Jan 1, 2016.

  1. Ant Brown

    Thread Starter New Member

    Jul 1, 2015
    Hi guys, I first posted about this project in June of 2014, then I shelved it, and forgot about it.
    I saw it again a while ago and decided to give it another go.

    So its like this,
    I have 20 TLC5940NT shift registers, a 4x4x4 RGB LED cube and an RGB LED cylinder. Both projects use the 5940s for the leds (3 in the cube and 4 in the cylinder) with mosfets to drive the layers (but the cylinder also uses TC4427A mosfet driver ICs, schematic is in link below).
    My problem is as follows:-
    When I put any 3x5940s in my cube and power it up, it work perfectly, as it should. Then I remove all 3 shift registers and put them in my cylinder with another 1.
    Now when I power up my cylinder, only the first output pin (pin 28) on the 5940s work, but this only happens with 4 out of the 20 TLCs. The other 16 ICs do nothing in the cylinder, but work flawlessly in the cube.
    I have made a pcb for the cylinder and also built the circuit several times on breadboards, and they all give me the exact same results, so I know the board is not the problem.
    The cylinder is not my creation and all credit goes to Dave Clausen, ( the project can be found at )
    It is an old project that has had no response for over 3 years, so I can't ask there.
    I personally have got no idea what can be causing this strange behaviour with the TLCs.
    When I test the ICs with a multi meter (while in the cylinder board) I get continually changing readings of around 2.2v to 3.5v from the 5940 connected output pins, as if they are working (not all output pins are used and the unused pins have no signal at all). I get around 8.8v to 9.3v into the 4427s from the charge pump and all mosfets are working correct,
    I am not too good with the code side of things so I am not sure if anything needs changing in the TLC5940 Arduino library files, the only thing I have changed is the NUM_TLCs in the config file. I have not changed anything else.
    The code has been uploaded to an Atmega168 using a USBtinyISP and AVRdude. The .hex file I used for the code was the 1 that Arduino IDE creates, places in the TEMP folder and gives the double extension of .cpp.hex
    I removed the .cpp from the file name before I used it.
    Would this .hex file be the same if it was created from the c code using only AVRdude instead of Arduino IDE (which uses AVRdude in the background anyway) ?. I would like to make the hex file from the c code but unfortunately I don't know how.

    Can someone PLEASE shed some light on this nightmare of a problem, like why do my shift registers work flawlessly in my cube but hardly work at all in my cylinder ?, and would the .hex files (1 created with Arduino IDE and 1 with AVRdude) be the same ?

    If anymore info is required I will be happy to provide it, if I can. I just want to get this project finished so I can display it, it is sooo coooool.

    I will be extremely grateful for all help and suggestions provided.
    Thanks, in advance

  2. markosillypig

    Active Member

    Jul 21, 2008
    hi ant.
    i would check your code. I can't see any issues with the TLC5940
    they are a constant current led driver. my guess is the code or a faulty Atmega168.
    hope this helps
  3. Ant Brown

    Thread Starter New Member

    Jul 1, 2015
    80 views and only 1 reply.
    Yet again this site has proven to be a big disappointment for me.

    Any suggestions would have helped but nothing is not good.

    Thanks guys.
  4. markosillypig

    Active Member

    Jul 21, 2008
    sorry you feel that way. We try our best.
  5. GopherT

    AAC Fanatic!

    Nov 23, 2012
    The problem is usually All that writing and no schematic. Try to me more graphical and present a problem and the current situation with a bit more brevity and clarity.