Go Down

Topic: POV display project's LEDs arm light flicker problem (Read 4546 times) previous topic - next topic

account001

I have completed the LEDs arm for my POV display project mentioned in thehttp://forum.arduino.cc/index.php?topic=228843.0post. But I have run into a problem and need help. The LEDs arms have 32 LEDs and 4, TPIC6595N chips sinking the LEDs.
When I run the below program, using the Microduino's hardware SPI pins, I get flicker on LEDs that should be off, as shown in the attached image one.
Code: [Select]
#include<SPI.h>
const int ssPin = 10; // latch pin or RCK pin for TPIC6595n
const int oePin = 7;  //output enable pin

void setup(){
pinMode (ssPin, OUTPUT); //
digitalWrite (ssPin, LOW);
pinMode (oePin, OUTPUT);
digitalWrite (oePin, LOW);
SPI.setClockDivider(SPI_CLOCK_DIV2);
SPI.begin();
}

void loop(){
digitalWrite(ssPin, LOW);
digitalWrite (oePin, HIGH);
SPI.transfer(0x5b);//first 8 LEDS
SPI.transfer(0xbd);//2nd 8 LEDS
SPI.transfer(0xf7);//3rd 8 LEDS
SPI.transfer(0xe7);//4th 8 LEDS
digitalWrite(ssPin, HIGH);
digitalWrite(oePin, LOW);
}


The brighter LEDs are on and the less bright ones are meant to be off. I found the problem to lie with the OE pin signal (I think), which seems to be having interference with the LEDs output.
When I layer a piece of wet paper on the bottom layer of the circuit board( there is no solder mask) I get stable output from the LEDs, placing my finger on the bottom also gets me the desired results.
I have a ground plane on the bottom layer of the circuit board and also the OE signal track. Attached are the PCB GIB files, which has three arms, I am specifically talking about arm 1.
I tried connecting the OE pin and GND with a 0.1uf capacitor, but that just turns off the all the LEDS.
The data sheet for the TPIC6595N says the OE PIN, the G pin, turns of the LEDs when high and on when low.
My tested my other LEDs arms, which uses TPIC6C595 and TPIC6B595, and also got the same problem, so I don't think it is the TPIC6595N chip's problem, and I also tested the layout on a bread board, without getting the flickers.
I think the problem lies with the circuit layout design (the GND plane in specific), and that the LEDs are very sensitive, they light up when I was soldering them with a soldering iron. And also with the program because when I added delay to at the end of the void loop, the flicker stopped.
Please help me identify the problem. Or else I have to find some kind of really poor conductor (other than water) that I can place on the bottom layer.
thanks

CrossRoads

Might need a small pullup on each TPIC6B595 output to ensure the cathodes are getting pulled up.
I had to do the same with cd74AC164 that drove anodes, and AOI518 MOSFET to sink the cathodes - putting a small pullup on the cathode stopped the flicker.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

account001

i am still new to electronics and i am rather lost at what you mean by
Quote
to ensure the cathodes are getting pulled up

do i have to connect each TPIC6595N output pin to Vcc with a resistor of small value?
and would this mean i have to remake the circuit board?
And to make sure, the pull up is NOT in reference to the resistors connected to the LEDs in series on my circuit board, right?
thanks for the reply

account001

after some research i think i understand the concept now, but how would i add the pull up with out changing the circuit design and ending up remaking the circuit, is there another way to add the pull up or get ride of the signal interference? i don't think i can afford the time and money to make another circuit and the dead line for the my school project is very near.

CrossRoads

You can use a bussed resistor network and wire it near the output of the tpic6b595:
http://www.digikey.com/product-detail/en/4609X-101-103LF/4609X-101-103LF-ND/2634616
One pin will connect to +5, the others will connect to individual output pins:
See the middle diagram on page 2.
You can try an indivudual resistor first to confirm this fixes the problem.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

account001

Thanks, the TPIC6595N has 4 output pin per side so is there any of those resistors network pin that come in 4 instead of 8?
and would i solder the resistor network to the LEDs or can i insert them into the IC socket with the TPIC6595N


CrossRoads

That looks good. Bussed network, 10K.
Maybe try a single 10K on output first, make sure it works. Maybe 5K, 1K. Shouldn't take much current.
Make sure you have the common pin correct when you wire it up.

You're in Australia?
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

CrossRoads

I used a 1K pullup in my multiplexed cube prototype:
http://forum.arduino.cc/index.php?topic=248408.0
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

account001

when I was testing the circuit I had the Microduino powered by the USB, and the LEDs by a separate power supply
Just today I tested the LEDs connected to the Microduino's power pin, and there was no flickers.
Could it be possible that the cause of flickering being that I have the ground of the TPIC6595&LEDs separate from Microduino's ground? cause I remember being told that the ground of the arduino needs to be connected to the TLC5940 chip's GND in another post, essentially using one power supply.

CrossRoads

Oh yeah, all grounds Must be connected.
If that solves your problem, that'd be excellent!
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up