# AD8221 for high side small current measurement

I'm trying to design a power supply for an academic project, which can supply +/-10V and can also measure the output current, hopefully down to nA range for a maximum of 5mA.

To perform the current measurement, I'm using various high side resistors(in the schematic there is just one resistor for the sake of simplicity. I think I'll switch the resistors with a relay) to sense the output current(R2), using a AD8221 Precision Instrumentation Amplifier.

As you can see the output voltage is following the input voltage, with a little overshoot, which is fine i think. Watching at the current measuring plot however, there's something wrong. The output current is +/-5nA, which is what i expected, but in the output voltage node "MEASURE" plot there's something strange.

I'm using a 10kOhm current sense resistor and the instrumentation amplifier's gain set to 100, so, with a +/-5nA output current, the output voltage should be: 10kOhm*(+/-)5nA*100=(+/-)5mV. Instead, as you can see, there is this strange waveform which is everything but what i expected.

Do you have any suggestion to solve this issue or even improve the circuit?

The AD8221 is specified to work with a maximum supply of plus and minus 18 volts. You have applied plus and minus 30 volts. Yes I know it’s a simulator but why should the model be expected to perform sensibly at levels way beyond what the real chip is designed to operate at.

Also, I see that your driver rails might create much bigger voltages than what the common mode input range of the AD8221 can reliably cope with.

Maybe also, the problem is the overshoot and ringing because on the lower current sensing leg, opamp input capacitance will somewhat quench that ringing and, because the AD8221 is operating differential, it will over-amplify the ringing artefacts when the voltage changes.

• Thank you for the answer. I fixed the AS8221's voltage issue, i was doing some tests to try to fix the issue rising the voltage supply, but i raised it too much. Anyway, even with a +/-5V supply, the issue is not solved. I also tried to remove the MOS section, driving the load directily with the opamp, but it didn't fix the issue. Mar 4, 2020 at 17:50
• And the input capacitance imbalance? Try adding a capacitor to see if it makes the problem worse. Sometimes you have to make a problem worse in order to identify it. Mar 4, 2020 at 18:55
• @RawCode is this q and a finished now - did you find the problem was the capacitive imbalance I suggested in my final paragraph? Mar 23, 2020 at 17:19
• I tried to balance the circuit adding a capacitor, but it didn't fix the problem. I changed the INA to a LT1168 and it works like a charm in the simulation. Mar 23, 2020 at 17:31

What are the FETs, specifically what are their input capacitances?

What is the AD711 output (the gate drive) doing?

If these are high power MOSFETs (and I really don't see why you need 300Vpp when you can't use most of that range : the FETs are source followers so the output can't exceed the AD711 output range) then they have huge input capacitances which need to charge each time you switch them on or off.

That takes time - and while they are changing state, either:

1. both are momentarily off - at which point the AD711 is open loop
2. both are momentarily on - suggesting large current spikes.

It's not clear what this circuit does at that moment but the AD711 output may give some clues. You might want a low value resistor (50R) driving each gate from it, so that you can monitor the gate drive waveforms on each FET and look for events concurrent with the current spike.

Another thing that strikes me is that the AD8221 IN+ is driven directly while IN- is driven by a low pass filter comprising R2 and (its own input capacitance Cin in parallel with 1G). The classic solution to that is a compensation capacitance across R2, value 1G/10000 * Cin. Much like a 10:1 scope probe.

• Thank you for the answer. I tried to remove the MOS section, driving the load direcly with the opamp, but it didn't fix the problem. I also add a capacitor, trying different values, in parallel to R2, but this strange behavior is still present. Mar 4, 2020 at 18:10