Pages: [1]   Go Down
Author Topic: TPIC6C595 : open drain problem ...  (Read 1186 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi all,

Because of the huge demands of outputs on a new project i'm on, i choose the TPIC6C595 for having directly power outputs available.
I can shiftOut correctly the data throught the DATA, CLOCK and LATCH pins but, there is something that bothers me : the fact that the IC powers on itself on a HIGH state on all its outputs.

Is there a way to avoid this and prefer the outputs to be powered-on on their LOW states ?




Thanks !
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

So? All outputs are "floating" (which means off). I would expect that.
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok but, what if i want the outputs to be on a LOW state directly at start ?

Do i have to wire something differently ?
I can't seem to find something relating to this inside the datasheet.


If someone can helps.


PS : I will drive motors, so i just don't want the motors to move before i want, when i power on my whole module.
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As you've pointed out already, these chips are "open drain".

The output is either:

a) ON ( LOW = connected to GND)
b) OFF ( HIGH-Z = floating - not connected to anything, like an open switch)

The chips start up with their outputs OFF. Just connect an LED + resistor to one output to test.

What is the problem?
« Last Edit: December 02, 2011, 10:07:25 am by madworm » Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for your explanations.
Anyway, they actually don't help because it seems sopmething is out of my understanding here.

I correctly wired ont TPIC6C595 which i can control finely.
Everything is working well except the fact that when i [POWER ON] my whole module, the outputs of the TPIC6C595 seems to be randomly LOW /OR/ HIGH ...

Sometimes, when i power on the whole module (arduino + tpic6c595 + led with resistance), the outputs of the tpic6c595 seems connected to GND as the LED turns ON.
But, from time to time, when i [POWER ON] the whole module, the LED doesn't turns OFF (which is the behavior i would like to have every time i POWER ON the whole module.
How can i achieve this behavior every time i power on the whole module ?
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Now we're getting somewhere.

To make sure the outputs are OFF, you should:

a) connect a 10k pull-up resistor to the "G"-pin of the chip

If you want all outputs to be "active" (represent the data you shifted in), pull this pin LOW. If you need all outputs to be OFF, pull it HIGH.

b) use the "CLR"-pin to reset the chip to OFF whenever you need it.
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Now we're getting somewhere.

To make sure the outputs are OFF, you should:

a) connect a 10k pull-up resistor to the "G"-pin of the chip

If you want all outputs to be "active" (represent the data you shifted in), pull this pin LOW. If you need all outputs to be OFF, pull it HIGH.

b) use the "CLR"-pin to reset the chip to OFF whenever you need it.

Hehe !!!
You're the best !  smiley-mr-green
Now it works like it should !
I put a resistor between +5V and the IC_PIN_8 (G), then connected the IC_PIN_8 to a D_PIN of my arduino.
When the module starts, it nows puts +5V on the IC_PIN_8 (G) which puts all outputs to no drain.
Then in my arduino's setup, i have a byte sent which puts all outputs to OFF and release the G pin to LOW level.
After this, i never touch the G pin level anymore as it only deserves what i wanted to have : ALL OUTPUTS OFF AT START smiley


In fact, when i read the datasheet, i thought that the G pin was the solution, ...... but !
As i'm really not as good as i would like to be in electronics, here is where it droves me  smiley-red


Thank you for your precious help !
I greatly appreciate !
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

By the way, one last question would be :
As times tend to be reading some datasheet, i noticed that my motors are going to consume more than what i expected from them.
So i have to put relays between my motors and the TPIC6C595.

Do you have any idea about how to wire the relays ? (btw, they are +12V DC coils)
As i never worked with xFET devices (like the TPIC6C595), i was wondering if there was anything else to add to the circuit to protect the xFETs from fly-back/EMF/something else ?


Thanks !
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You need to add a Schottky diode to each of the drain pins that are used for inductive loads. The diode must go from said pin to +Vcc (reversed of course!)

http://www.arduino.cc/playground/Learning/SolenoidTutorial

It's the equivalent of D1 across L1.
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, i was already aware of that flyback EMF diode.

But, why do you want to use a schottky ?
Doesn't a 1N400x would be sufficient for that application ?
I'm just driving relay coils !
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I only have Schottky diodes. Maybe I should have recommended an expensive TVS diode ? smiley

You should be fine with what you have, especially as the FETs in the TPIC can withstand 30V or thereabouts. A normal PN diode will conduct early enough.
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Pages: [1]   Go Up
Jump to: