114Views4Replies

Author Options:

Accurate Variable Current Sink? Differential Voltage Reference? Answered


Some background:
I have recently aquired a few really nice (and really heavy!!!) LAMBDA power supplies, The largest one supplies 24V, and up to 9A, but has annoying foldback current limiting, which causes the output shut off when even a short period overload (like inrush current) is detected.

What I want:
I would like to modify this power supply to give me (ideally) completly variable 0-15v dual rail voltages & 0-5A adjustable current limit, & I would like this to be controlled with arduino so that I can use a nice LCD display and control the supply remotely with a bluetooth or wifi app, and possibly do some data logging which could come in handy for energy measurements and stuff!

My current PSU design:
The schematic below is what I've currently built in LTspice. Both the voltage & current regulation work. The voltage across the (+) and (-) inputs of the current error amplifier should be the sum of the voltage drop across the shunt resistor and the voltage drop of a voltage reference, so when the voltage on the shunt resistor exceeds the voltage of that reference, the op amp will start to limit current by reducing the bias voltage on the pass transistor.

This V_ref needs to be both variable and accurate, but since this V_ref is a differential voltage between the output of the pass transistor and the input of the error amp, I came up with the clever idea to use a resistor there and a variable constant current sink. That way the constant current through that resistor results in a fixed V_drop across it. With a bit of fudging around with it, I was able to make it work. However, I need to replace that "ideal" current sink with a real one. I tried using the classic NPN-based one, but it wasn't good enough. I then attempted to make the slightly improved version of that current sink with a spare op amp, although this worked, it would stop pulling current once the voltage fell below what was being maintained across the small resistor.

The REAL question:
Would anyone happen to know how to make a really accurate and variable current sink? Maybe if this is not such a great idea, what other methods can I use to generate a fixed differential voltage?

Discussions

0
None
-max-

3 years ago

Schematic update: I have finally achieved (pretty closely) the capabilities I want, although I might have to lower the maximum voltage requirement to 12V or something along those lines. This is my latest schematic. The bottom half is missing, I know. I will more-or-less mirror the top half to the bottom, I would imagine it should work after rearranging a few things.

Screenshot from 2015-12-11 00:13:57.png
0
None
-max--max-

Answer 3 years ago

Version
4

SHEET
1 1680 776

WIRE
32 -720 -272 -720

WIRE
528 -720 128 -720

WIRE
624 -720 528 -720

WIRE
800 -720 704 -720

WIRE
976 -720 800 -720

WIRE
1232 -720 976 -720

WIRE
1280 -720 1232 -720

WIRE
-144 -576 -192 -576

WIRE
-16 -576 -144 -576

WIRE
80 -576 80 -656

WIRE
528 -560 528 -720

WIRE
-144 -368 -144 -576

WIRE
-96 -368 -144 -368

WIRE
32 -368 32 -512

WIRE
32 -368 -16 -368

WIRE
176 -368 32 -368

WIRE
384 -352 384 -368

WIRE
528 -336 528 -480

WIRE
528 -336 416 -336

WIRE
352 -320 240 -320

WIRE
800 -304 800 -720

WIRE
800 -304 416 -304

WIRE
384 -272 384 -288

WIRE
1232 -272 1232 -720

WIRE
176 -240 176 -272

WIRE
528 -192 528 -336

WIRE
528 -48 528 -112

WIRE
800 -48 800 -304

WIRE
32 16 32 -368

WIRE
176 16 32 16

WIRE
-272 48 -272 -720

WIRE
-272 48 -416 48

WIRE
800 48 800 32

WIRE
800 48 416 48

WIRE
976 48 976 -720

WIRE
1072 48 976 48

WIRE
352 64 240 64

WIRE
800 64 800 48

WIRE
528 80 416 80

WIRE
-640 128 -640 48

WIRE
-272 128 -272 48

WIRE
-416 144 -416 48

WIRE
176 144 176 112

WIRE
976 144 976 48

WIRE
1072 144 1072 48

WIRE
528 160 528 80

WIRE
-640 256 -640 208

WIRE
-640 256 -672 256

WIRE
-416 256 -416 208

WIRE
-416 256 -640 256

WIRE
-272 256 -272 208

WIRE
-272 256 -416 256

WIRE
384 256 384 96

WIRE
384 256 -272 256

WIRE
528 256 528 240

WIRE
528 256 384 256

WIRE
800 256 800 144

WIRE
800 256 528 256

WIRE
976 256 976 208

WIRE
976 256 800 256

WIRE
1072 256 1072 208

WIRE
1072 256 976 256

WIRE
1232 256 1232 -192

WIRE
1232 256 1072 256

WIRE
-640 288 -640 256

WIRE
-272 288 -272 256

WIRE
-416 304 -416 256

WIRE
-640 448 -640 368

WIRE
-416 448 -416 368

WIRE
-272 448 -272 368

WIRE
-272 448 -416 448

FLAG
-672 256 0

FLAG
-640 48 Vcc

FLAG
1280 -720 Output

FLAG
-640 448 Vss

FLAG
-192 -576 Vcc

FLAG
384 -368 Vcc

FLAG
384 32 Vcc

FLAG
384 -272 0

FLAG
528 -48 0

FLAG
176 -240 0

FLAG
176 144 0

SYMBOL
voltage -272 112 R0

WINDOW
123 0 0 Left 2

WINDOW
39 24 124 Left 2

SYMATTR
InstName V1

SYMATTR
Value 16.2

SYMATTR
SpiceLine Rser=0.02

SYMBOL
voltage -272 272 R0

WINDOW
123 0 0 Left 2

WINDOW
39 24 124 Left 2

SYMATTR
InstName V2

SYMATTR
Value 16.2

SYMATTR
SpiceLine Rser=0.02

SYMBOL
npn3 -16 -512 R270

SYMATTR
InstName Q1

SYMATTR
Value 2N4401

SYMBOL
res 720 -736 R90

WINDOW
0 0 56 VBottom 2

WINDOW
3 32 56 VTop 2

SYMATTR
InstName R1

SYMATTR
Value 0.1

SYMBOL
cap 1056 144 R0

SYMATTR
InstName C1

SYMATTR
Value 470F

SYMATTR
SpiceLine Rser=0.5

SYMBOL
res -112 -352 R270

WINDOW
0 32 56 VTop 2

WINDOW
3 0 56 VBottom 2

SYMATTR
InstName R2

SYMATTR
Value 1k

SYMBOL
voltage 528 144 R0

WINDOW
123 0 0 Left 2

WINDOW
39 0 0 Left 2

SYMATTR
InstName Voltage_set

SYMATTR
Value 3V

SYMBOL
res 1216 -288 R0

SYMATTR
InstName Rload

SYMATTR
Value 1

SYMBOL
cap -432 144 R0

SYMATTR
InstName C2

SYMATTR
Value 10,000u

SYMBOL
cap -432 304 R0

SYMATTR
InstName C3

SYMATTR
Value 10,000u

SYMBOL
cap 960 144 R0

SYMATTR
InstName C4

SYMATTR
Value 1F

SYMBOL
res 784 48 R0

SYMATTR
InstName R3

SYMATTR
Value 1k

SYMBOL
res 784 -64 R0

SYMATTR
InstName R4

SYMATTR
Value 2k

SYMBOL
pnp2 240 -272 R180

SYMATTR
InstName Q4

SYMATTR
Value 2N2907

SYMBOL
voltage -640 112 R0

WINDOW
0 -125 58 Left 2

WINDOW
3 36 45 Left 2

WINDOW
123 0 0 Left 2

WINDOW
39 34 72 Left 2

SYMATTR
InstName Aux_V5

SYMATTR
Value 25

SYMATTR
SpiceLine Rser=1

SYMBOL
voltage -640 272 R0

WINDOW
0 -124 55 Left 2

WINDOW
3 34 37 Left 2

WINDOW
123 0 0 Left 2

WINDOW
39 34 67 Left 2

SYMATTR
InstName Aux_V6

SYMATTR
Value 25

SYMATTR
SpiceLine Rser=1

SYMBOL
npn3 32 -656 R270

SYMATTR
InstName Q3

SYMATTR
Value 2N3055

SYMBOL
pnp2 240 112 R180

SYMATTR
InstName Q2

SYMATTR
Value 2N2907

SYMBOL
res 512 -576 R0

SYMATTR
InstName R5

SYMATTR
Value 100

SYMBOL
current 528 -192 R0

WINDOW
123 0 0 Left 2

WINDOW
39 0 0 Left 2

SYMATTR
InstName Current-Set

SYMATTR
Value 1mA

SYMBOL
Opamps\\LT1014A 384 -384 M0

SYMATTR
InstName U1

SYMBOL
Opamps\\LT1014A 384 0 M0

SYMATTR
InstName U2

TEXT
12 374 Left 2 !.tran 1 startup uic

TEXT
560 -152 Left 2 ;1000:1 current ratio

TEXT
568 200 Left 2 ;3:1 voltage ratio

0
None
-max--max-

Answer 3 years ago

Above is the entire data file for my simulation. Copy that into notepad, and save it as .asc to make it openable by LTspice. Or (if the download works) simpely download the file posted in this comment.

0
None
-max-

3 years ago

note: You might need to click the schematic twice to open it in another window to view it in "original" quality to see the values on the parts.