I've the following circuit:


simulate this circuit – Schematic created using CircuitLab

I was told that this is a constant current source. I think that the resistors \$\text{R}_1\$ and \$\text{R}_2\$ determine the current in trough the load. Is that true and how is the output current related to those resistor values or other components in the circuit?

  • \$\begingroup\$ Assume a fixed 3.3V on the positive input of the OpAmp. Next, assume there is a current of 0A running through R3. Use Ohms law for R3 and consider what happens to the OpAmp and next to the mosfet. Then, assume 2A is running through R3 and consider again what happens to the OpAmp and to the mosfet. Last, for 1A. \$\endgroup\$
    – Huisman
    Mar 2 '19 at 17:21
  • \$\begingroup\$ @Huisman I've have realy no idea (Dutch: en goed om een Nederlander te zien hier :) & English: good to sea another Dutchman over here)! \$\endgroup\$
    – adfsg
    Mar 2 '19 at 17:24
  • \$\begingroup\$ This circuit work thanks to the negative feedback magic. The opamp simply compares the voltage divider output voltage with the voltage produced by the current flowing through R3 resistor and the MOSFET V_R3 = I_load x R3. And if this voltage is lower than the voltage divider voltage the opamp will turn on the MOSFET harder to make sure that the voltage drop across R3 is equal to the voltage given by the voltage divider. \$\endgroup\$
    – G36
    Mar 2 '19 at 17:25
  • \$\begingroup\$ @G36 So, how does the loadcurrent depend on the resistor values? \$\endgroup\$
    – adfsg
    Mar 2 '19 at 17:26
  • 1
    \$\begingroup\$ two comments. First - It's best to break this up into 2 parts. (1) Iout depends on voltage across resistor, which depends on voltage at input of amplifier. (2) Voltage at amplifier depends on Vload+ R1 and R2. Normally you'd use something more accurate than 'Vload+' to set the voltage to the opamp. Second - OP27 won't work here, it's an old-style dual-rail not R2R output, so the output won't go down to GND, neither will the input common mode go to ground. Use dual rails, or a -ve amplifier supply of -5v or more, or a modern R2R opamp. \$\endgroup\$
    – Neil_UK
    Mar 2 '19 at 17:42

The opamp is in a non-inverting amplifier configuration with a gain of 1. As always, the output of the opamp will do whatever it takes to make the voltages at the + (non-inverting) and - (inverting) inputs identical. Because the forward gain is 1, and the top of R3 is connected to the - input, the opamp will do whatever it takes to make the voltage at the top of R3 equal to the voltage at the + input. As R1 and R2 change, the + input voltage changes, and the opamp makes sure that voltage is at the top of R3.

Now for the fun part. Between the opamp output and R3 is the FET, which is essentially a voltage-controlled resistor. As the output of the opamp goes up and down, the resistance of the FET between its drain and source terminals (called Rds) goes down and up. The higher the gate voltage, the lower the resistance.

If the circuit were simply the load and R3 in series, then if the load resistance changed, the current through the string would change (Ohm's Law). But that FET is in there; its resistance is in series with the load. The load, FET, and R3 form a series string, and the opamp can adjust the FET's resistance. If the load resistance changes, the current through the string changes, the voltage at the top of R3 changes, and the opamp adjusts the FET's resistance to keep the R3 voltage equal to the input voltage. R3 is called the sense (or shunt) resistor. The opamp works to keep the voltage across it constant, and thanks to Ohm's Law that means the current through it (and the rest of the string) is constant. By constant I mean constant as long as the input voltage is constant. Change the input voltage, and the opamp adjusts the FET so the string current is correct for that voltage.

The net result is that the current through the load is not determined by the resistance of the load. Over the range of voltages that the circuit can handle, the current through the load is a constant even when the load resistance changes. The only thing that changes the load current is the + input voltage.


Simply the OP drives the gate of the drain follower ( with conditions \$ R_{dsOn} < R_3\$ to make \$ V_{in+}=V_{in-}\$ and \$V_{load} > 2Vt\$ , Vt= FET threshold voltage, a.k.a. \$V_{gs(th)}\$.

Then $$V_{R_2} = V_{R_3}=I_{R_3}*R_3, $$ and \$V_{R_2}\$is a ratio of \$ V_{in}\$.


Typically, R3 is small like = 50 to 100mV drop at Imax current, as the current shunt sensor to limit waste heat of Pd in R3 but not too small. where Vin offset contributes to error budget. This sensor loop area should be small as possible, so that transients do not cause overshoot for a step input from stray reactance and crosstalk from output current load mutual (inductive or capacitive) coupling.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.