D
Douglas Beeson
Guest
Hi all,
I'm stuck. I am trying to limit the current flowing through a relay by using two transistors and a current-sensing resistor. Schematic below. The Spice model works beautifully, but the real world circuit does not turn off. Ever. It just fires once the first time the timing pulse arrives, then stays on.
My goal is 70 mA through the 70 ohm load above the Q1 collector. The measured current through the load is around 100 mA - so straight off out of spec. The base of Q2 -- which in my mind is supposed to turn off Q1 -- stays at 0.7 V which is about what I would expect steady state. When I measure the base of Q1, I see it goes nicely back to zero once the timing pulse (V2) turns off. Why doesn't the Ic go back to zero in the real circuit?
Note: The power source on the high side of the relay is very noisy, which is why I modeled it as DC+pulses.
Thanks!
doug
Here is the LTSpice:
Version 4
SHEET 1 880 688
WIRE 416 -48 288 -48
WIRE 288 -16 288 -48
WIRE 416 48 416 -48
WIRE 288 96 288 64
WIRE 736 160 272 160
WIRE 736 192 736 160
WIRE 608 240 512 240
WIRE 624 240 608 240
WIRE 672 240 624 240
WIRE 416 272 416 128
WIRE 512 288 512 240
WIRE 416 336 416 272
WIRE 416 336 400 336
WIRE 608 352 608 240
WIRE 80 384 -112 384
WIRE 272 384 272 160
WIRE 272 384 160 384
WIRE 320 384 272 384
WIRE 336 384 320 384
WIRE -112 400 -112 384
WIRE 400 464 400 432
WIRE 400 480 400 464
WIRE 512 480 512 368
WIRE 512 480 400 480
WIRE 272 512 272 384
WIRE 400 512 400 480
WIRE -112 560 -112 480
WIRE 272 624 272 592
WIRE 400 624 400 592
WIRE 400 624 272 624
WIRE 608 624 608 432
WIRE 608 624 400 624
WIRE 736 624 736 288
WIRE 736 624 608 624
WIRE 400 672 400 624
FLAG 288 96 0
FLAG -112 560 0
FLAG 400 672 0
FLAG 400 464 Ve
FLAG 416 272 Vc
FLAG 320 384 Vb
FLAG 624 240 Vb2
SYMBOL npn 336 336 R0
SYMATTR InstName Q1
SYMATTR Value 2N3904
SYMBOL npn 672 192 R0
SYMATTR InstName Q2
SYMATTR Value 2N3904
SYMBOL res 400 32 R0
SYMATTR InstName Relay
SYMATTR Value 70
SYMBOL res 384 496 R0
SYMATTR InstName R2
SYMATTR Value 10
SYMBOL res 176 368 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 500
SYMBOL res 288 608 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R4
SYMATTR Value 4.7k
SYMBOL res 624 448 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R5
SYMATTR Value 4.7k
SYMBOL voltage 288 -32 R0
SYMATTR InstName V1
SYMATTR Value PULSE(6 8 0.1 0.00625 0.00625 0.00001 0.025)
SYMBOL voltage -112 384 R0
SYMATTR InstName V2
SYMATTR Value PULSE(0 2.4 0.1 0.00001 0.00001 1 2)
SYMBOL res 528 384 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R6
SYMATTR Value 200
TEXT -88 24 Left 2 !.tran 5
--
Douglas Beeson <c.difficile@gmail.com>
I'm stuck. I am trying to limit the current flowing through a relay by using two transistors and a current-sensing resistor. Schematic below. The Spice model works beautifully, but the real world circuit does not turn off. Ever. It just fires once the first time the timing pulse arrives, then stays on.
My goal is 70 mA through the 70 ohm load above the Q1 collector. The measured current through the load is around 100 mA - so straight off out of spec. The base of Q2 -- which in my mind is supposed to turn off Q1 -- stays at 0.7 V which is about what I would expect steady state. When I measure the base of Q1, I see it goes nicely back to zero once the timing pulse (V2) turns off. Why doesn't the Ic go back to zero in the real circuit?
Note: The power source on the high side of the relay is very noisy, which is why I modeled it as DC+pulses.
Thanks!
doug
Here is the LTSpice:
Version 4
SHEET 1 880 688
WIRE 416 -48 288 -48
WIRE 288 -16 288 -48
WIRE 416 48 416 -48
WIRE 288 96 288 64
WIRE 736 160 272 160
WIRE 736 192 736 160
WIRE 608 240 512 240
WIRE 624 240 608 240
WIRE 672 240 624 240
WIRE 416 272 416 128
WIRE 512 288 512 240
WIRE 416 336 416 272
WIRE 416 336 400 336
WIRE 608 352 608 240
WIRE 80 384 -112 384
WIRE 272 384 272 160
WIRE 272 384 160 384
WIRE 320 384 272 384
WIRE 336 384 320 384
WIRE -112 400 -112 384
WIRE 400 464 400 432
WIRE 400 480 400 464
WIRE 512 480 512 368
WIRE 512 480 400 480
WIRE 272 512 272 384
WIRE 400 512 400 480
WIRE -112 560 -112 480
WIRE 272 624 272 592
WIRE 400 624 400 592
WIRE 400 624 272 624
WIRE 608 624 608 432
WIRE 608 624 400 624
WIRE 736 624 736 288
WIRE 736 624 608 624
WIRE 400 672 400 624
FLAG 288 96 0
FLAG -112 560 0
FLAG 400 672 0
FLAG 400 464 Ve
FLAG 416 272 Vc
FLAG 320 384 Vb
FLAG 624 240 Vb2
SYMBOL npn 336 336 R0
SYMATTR InstName Q1
SYMATTR Value 2N3904
SYMBOL npn 672 192 R0
SYMATTR InstName Q2
SYMATTR Value 2N3904
SYMBOL res 400 32 R0
SYMATTR InstName Relay
SYMATTR Value 70
SYMBOL res 384 496 R0
SYMATTR InstName R2
SYMATTR Value 10
SYMBOL res 176 368 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 500
SYMBOL res 288 608 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R4
SYMATTR Value 4.7k
SYMBOL res 624 448 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R5
SYMATTR Value 4.7k
SYMBOL voltage 288 -32 R0
SYMATTR InstName V1
SYMATTR Value PULSE(6 8 0.1 0.00625 0.00625 0.00001 0.025)
SYMBOL voltage -112 384 R0
SYMATTR InstName V2
SYMATTR Value PULSE(0 2.4 0.1 0.00001 0.00001 1 2)
SYMBOL res 528 384 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R6
SYMATTR Value 200
TEXT -88 24 Left 2 !.tran 5
--
Douglas Beeson <c.difficile@gmail.com>