Maker Pro
Maker Pro

transistor switching question

Jouellet

Feb 2, 2015
86
Joined
Feb 2, 2015
Messages
86
I'm working on a project where I need to drive 3 big SSDs (3") over I2C

In order to do so, I'm using an Arduino Nano as the slave, that will extract each digit and drive the proper SSD.

My SSD are Common Anode. I already built a circuit behind each SSD, that receive a 5 V. signal, and drive a transistor to ground. That portion works fine . It uses some 2N2222

Where I'm having a problem, is when I need to drive each SSD in sequence. I did some test on a proto board: a 5 v. signal goes thru a 1K resistor to the base of a TIP32. The Collector is hooked to +12 V and the emitter to the Common Anode of my SSD. On the proto board, it works.

When hooked to the Arduino, all transistors are conducting and the 3 SSD gets the same signal.

Attached is the complete drawing, showing only one segment of my SSD, but the 3 SSD driver.

Anyone can tell me what is wrong, and what could be a working solution ?


Target System - SSD Decoder V1.jpg
 

KrisBlueNZ

Sadly passed away in 2015
Nov 28, 2011
8,393
Joined
Nov 28, 2011
Messages
8,393
Yes, your common anode drive circuit won't work. I can't explain why it worked on the breadboard.

You need to use an NPN driving a PNP. The circuit is very common; I found an example at http://www.eevblog.com/forum/beginners/what-ic-to-use-to-convert-ttl-to-24vdc-pnp-output/ which is repeated below.

lamp_source2.gif
In this circuit, T2 (your TIP32) drives a lamp, but the idea is the same - just connect its collector to the common anode of the display. I suggest a few value changes: R1=10k, R3=1k, R2=1k.

T1 can be any general purpose NPN, or you can replace R1 and T1 with a "resistor-equipped transistor" (e.g. MMUN2211, DTC143 etc), or with a small N-channel MOSFET with a pulldown resistor on its gate.

Also, your original diagram doesn't show the current limiting resistors for the segments. These need to be in series with the collectors of the NPN transistors that switch the cathodes, but you only need seven of them.
 

Jouellet

Feb 2, 2015
86
Joined
Feb 2, 2015
Messages
86
KrisBlueNZ: good point about the limiting resistor. In my PCB they are there, but I forgot to put it on the schematic !

I will try the circuit that you've mentioned. I suppose that a 2N222 would do the job for T1 ?

Quickly; A 0V or 5V will turn T2 in conduction ?

When I did my testing, I used a true 5V , not the output of a uCPU...I suppose that has nothing to do with the fact that it worked on the protoboard ?! Also, during my test, the output of the TIP32 was connected to a LED/resistor, then to ground. It was not going thru the second transistor....could it expain why it worked ?

The part that pi*** me off the most, is that I did my prototype PCB this morning ....
 

KrisBlueNZ

Sadly passed away in 2015
Nov 28, 2011
8,393
Joined
Nov 28, 2011
Messages
8,393
I will try the circuit that you've mentioned. I suppose that a 2N222 would do the job for T1 ?
If you mean a 2N2222, then yes.
Quickly; A 0V or 5V will turn T2 in conduction ?
Active high. A high level on the Arduino output will make the first transistor conduct, which will make the second transistor conduct, which will present +12V on the common anode of the display.
When I did my testing, I used a true 5V , not the output of a uCPU...I suppose that has nothing to do with the fact that it worked on the protoboard ?! Also, during my test, the output of the TIP32 was connected to a LED/resistor, then to ground. It was not going thru the second transistor....could it expain why it worked ?
Not really. If you connected +5V to the base of TIP32, and connected its emitter to the anode of the display, no current should have flowed through the TIP32 and the display should not have lit up.

If the base voltage was higher, like +12V, then the TIP32's base-emitter junction would have gone into zener breakdown and there might have been enough voltage to get a dim illumination on the display. In that case you have probably damaged the TIP32s and they should be replaced. If not, then no, I don't know why it seemed to work.
The part that pi*** me off the most, is that I did my prototype PCB this morning ....
Ah, bummer :-(
 

BobK

Jan 5, 2010
7,682
Joined
Jan 5, 2010
Messages
7,682
Do you realize why the original circuit did not work?

If not, and for the benefit of anyone who does not, here is the explanation.

The PNP transistor will be turned on by a voltage lower than that on the emitter. Since the emitter is at 12V, either 0V or 5V applied to the 1K base resistor will turn it on.

I suspect when you did the breadboard testing, you connected the base resistor to 5V, and sure enough it was on, so you though it was working. If you had connected it to 0V, it would also have been on. So the Arduino would have no way of turning it off.

Further complication: You might think that you could turn it off by tri-stating the pin driving it, but this would put 12V - a diode drop on the pin when it was tri-stated which would violate the absolute max and probably damage the chip.

Bob
 

Jouellet

Feb 2, 2015
86
Joined
Feb 2, 2015
Messages
86
BobK: thanks for the explanation...that is exactly what happened ! connected it to 5 v, and it worked ! took away the 5 V, it turned off, so I assumed it was working !
 

Jouellet

Feb 2, 2015
86
Joined
Feb 2, 2015
Messages
86
Target System - SSD Decoder V2.JPG KrisBlueNZ: here's the circuit that I'll be testing tonight.

PCB ready to burn, if it works fine !

Thanks again !
 
Top