Over a 200ms period of which this circuit regulates a 500mA current, the current drift downwards for about 0.4%.

At first I thought it was due to R202 temperature coefficient, but from my calculation the drift related to R202 should only be in the range of 0.05%.

R202 is a 2ohm, 2W, 2 point, 100ppm/°C resistor and from the touch it barely heats at all.

Any other idea where could be the source of the drift ? Solder of the resistor pads ?

The input at R198 is stable.


To my surprise, this morning I restarted the circuit, it hasn't moved a bit overnight, and measured the drift, before touching anything. It was down to 0.1%, the night before it was about 0.4%.

Now as time pass, the drift is increasing little by little and I guess in 1h it will be back to 0.4%.

For my tests, I do a 200ms pulse every 1s and is constantly running. The circuit does heats up a little bit.


Here is a graph with 3 measurements done at different times. As one can see, the first two have about 0.15% drift, the last one has 0.7% drift.

The drift seems to vary over time, and so far I've failed to understand the reason nor to find a way to influence the drift.

The circuit hasn't change between those measurements, I've played around with power supply, voltage rails, I tried to heat the circuit up, but no changes.



Removing C121 and C122, affect the stability, but the drift remains the same.

  • 1
    \$\begingroup\$ Those filters are for very short term filtering, on the 100us / 1 ms scale, they do not impact over a 200ms period. \$\endgroup\$ – Damien Oct 10 '18 at 5:00
  • 1
    \$\begingroup\$ You are ignoring the negative feedback error from RdsOn and its PTC effects. Also, your R202 should be 75mV max (+/-25mV) then use 1/2W and attenuate input by same ratio. This will reduce RdsOn gain error contribution. Constant RdsOn error can be corrected by around 1M in Vin- to 0V ( SWAGuess)) and the caps are not needed. \$\endgroup\$ – Tony Stewart EE75 Oct 10 '18 at 5:44
  • 1
    \$\begingroup\$ @Damien What are your goals? I gather you are not actively stabilizing your circuit temperature, so for example over what ambient temperature range do you want to achieve what drift spec? Where is your list of temperature drift sources and magnitudes and reasoning related to them? (Do you imagine only R202 for some reason? Or can you see any other possible sources?) Have you identified any other sources that might contribute to drift over that period of time that are not related to temperature? (Measurement systems, etc?) What's under active experimental control and what is not? \$\endgroup\$ – jonk Oct 10 '18 at 6:50
  • 2
    \$\begingroup\$ Can you edit the question text to include the values of all components? Readers shouldn't have to read through this mess of comments to find the values. \$\endgroup\$ – The Photon Oct 10 '18 at 16:11
  • 1
    \$\begingroup\$ Please show your PCB layout, zooming into the R202 region. \$\endgroup\$ – analogsystemsrf Oct 11 '18 at 5:07

Apparent large DC drift can be, and in this case, almost surely is, caused by oscillation.

Remove C123, it is negatively affecting stability. Swap the values of R200 and R201 and it should be stable.

The purpose of R201 is to isolate the gate capacitance from the output impedance of the op-amp so it should be in the 100 ohm or so range for a normal op-amp and maybe 1K for a very low power op-amp.

R200 and C122 should form a lower frequency pole than the gate capacitance and R201.

  • 1
    \$\begingroup\$ Removing C123 had no effect. Setting R201 to 1k has no effect either. \$\endgroup\$ – Damien Oct 11 '18 at 3:57
  • \$\begingroup\$ No effect on drift? \$\endgroup\$ – Spehro Pefhany Oct 11 '18 at 7:53
  • \$\begingroup\$ No effect on drift, the 1k made the stability a bit worse, but the drift was the same. removing C123 had no effect on either. \$\endgroup\$ – Damien Oct 11 '18 at 9:23
  • 1
    \$\begingroup\$ Did you use water based flux? \$\endgroup\$ – Robert Endl Oct 12 '18 at 8:41
  • \$\begingroup\$ Leakage due to the wrong kind of flux could conceivably cause this kind of issue, as @RobertEndl suggests. Value of R198? \$\endgroup\$ – Spehro Pefhany Oct 12 '18 at 9:35

Copper has a temperature coefficient of 0.4% per degree Celcius. One square of copper foil, if the standard 1.4 mils (35 um) thick for 1 ounce/foot^2 foil, has 0.00050 ohms per square of area, for any size square.

And copper has thermal-timeconstant of 9,600 seconds per cubic meter, 96 seconds per 0.1 meter cube, 0.96 seconds per 1 cm^3 (and also for any 1 cm^2 region of foil where the heat only flows along the long axis of the foil. And 9.6 ms TAU for 1 mm squares.

You have a copper-heating issue.

Draw out your PCB carefully and examine how the heat flows.

Are you using 4-wire Kelvin-sensing?

  • 1
    \$\begingroup\$ The resistor itself is a 2 point resistor, but on the PCB there are 2 traces right on the pad, one for current and one for sensing, on each pad, so I do not believe this is related to copper heat. \$\endgroup\$ – Damien Oct 10 '18 at 5:02
  • \$\begingroup\$ So the sensor is not 4-wire Kelvin sensing. Thus heat flow out of the resistor, thru the solder, and thru the resistor terminals, will cause errors. How does the manufacturer reliably measure the temperature coefficient? There can be NO SELF HEATING, if the tempcoeff is to be meaningful IMHO. \$\endgroup\$ – analogsystemsrf Oct 11 '18 at 5:06
  • 1
    \$\begingroup\$ the temp coefficient of the resistor (from the datasheet) is 100ppm/°C, it would need a 40°C increase within 200ms to have a 0.4% effect. I have 0.1ohm resistor on the way to double check this or if it would be solder joint temperature increase related. \$\endgroup\$ – Damien Oct 11 '18 at 6:24
  • \$\begingroup\$ What is the temperature coefficient of solder (old lead solder? new tin solder?) \$\endgroup\$ – analogsystemsrf Oct 20 '18 at 19:01

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.