4

I have been having some difficulty recently when trying to measure very low currents when using a small sense resistor.

I am trying to measure in the range of uA (1 - 150uA) with a supply voltage of 3.3V. Now, usually this is not too much of an issue, but the problem I am getting here is that this particular project uses a WiFi module that peaks at around 600mA.

I am needing to use a small current sense resistor (0.1R) because I just can not afford the voltage drop over higher values at peak current consumption. I tried a few different current sense amplifiers but found them to be not quite accurate enough at these small levels. I eventually settled for a chopper stabilised amplifier (TLC2652) because even though it wasnt a specific current sense amplifier, it offered my <1uV offset which I thought was great. I set it up as a differential amplifier with a gain of 100 however, it still struggled with accuracy when getting tot he very low current range. Annoyingly, it works perfectly when using a 1R current sense resistor, but as previously mentioned, I cannot afford this voltage drop. With the 0.1R resistor, it is fine untill it gets below round about 20ish uA then it gets a bit noisy.

Does anyone have any suggestions on a good workaround for this to get it to work?

Here is the way I have it set up:

schematic

simulate this circuit – Schematic created using CircuitLab

I will say that it is not highly critical for it to be supremely accurate, this is just part of a circuit to do functionality checks, so I am fine with it being a little noisy in these very low currents, however, it does not stop my curiosity and my desire to find a way to solve it!

I hope I have worded my question alright, please let me know if I have missed any information or if there is something I have not explained correctly.

Also, as a side note, I must state I am still learning electronics so apologies if I have done something incorrectly or done something that some more experienced people may find silly!

MCG
  • 11,923
  • 5
  • 35
  • 71
  • One way would be to use an 1Ω current sense resistor, and then shunt it with a low Rds(on) MOSFET whenever you're not actually measuring the current. – Dampmaskin Mar 31 '17 at 13:21
  • or if the Wifi module is not important for the current measurement, just source it directly from the voltage regulator and use a higher resistance to source the circuitry you need to measure – LuisF Mar 31 '17 at 13:23
  • This will be constantly measuring the current and displaying it on an LCD. and with the voltage drop over a 1R resistor I get all sorts of issues – MCG Mar 31 '17 at 13:23
  • What does a little noisy mean in terms of signal numbers and noise numbers. It's not a particularly quiet op amp btw. Also the LM317 is a particularly good noise generator and made significantly worse by the lack of input and output capacitors. Maybe you should show the exact circuit including ALL power decoupling. – Andy aka Mar 31 '17 at 13:24
  • @LuisF This project is a test rig to test the functionality of something that uses a WiFi module. It provides the power to this unit and is constantly measuring the current consumed by the device and display it on an LCD – MCG Mar 31 '17 at 13:26
  • @Andy aka a little noisy means the op amps output is jumping up and down by a few hundred microvolts. For example, when I am measuring 10uA the op amp should output 1mV, but it is jumping beween about 990uV - 1.01mV. As I said, it is not massively critical, but would still be nice to improve. And I did not know the op amp wasn't particularly quiet. I was seduced by its extremely low offset! – MCG Mar 31 '17 at 13:30
  • @Andyaka, yes sorry, I did forget to add in all the decoupling capacitors, they should be added in to the schematic now – MCG Mar 31 '17 at 13:32
  • You might also want to fix the error in your schematic that connects the output to the positive rail. – Andy aka Mar 31 '17 at 13:39
  • LOL didn't notice that! All fixed now! – MCG Mar 31 '17 at 13:42
  • And C3 is still looking bad. – Andy aka Mar 31 '17 at 13:42
  • DAMMIT! 1 second..... Done. It kept trying to connect to the output of the opamp so had to move it around slightly – MCG Mar 31 '17 at 13:47
  • Use a low-dropout regulator instead of LM317. That will allow more headroom for a much bigger current-sense resistor. And look for a low-noise low-dropout regulator! – glen_geek Mar 31 '17 at 14:34
  • The regulator won't let me have a larger sense resistor as I cannot afford the voltage drop when the load is pulling it's peak current – MCG Mar 31 '17 at 14:35
  • Why do you need to measure such low current with high accuracy? Is the device powered by a battery? – Bruce Abbott Mar 31 '17 at 18:03
  • The accuracy needs to be good, but I did state it's not critical that the accuracy needs to be spot on. It was mainly for my own understanding and curiosity that I'd like to improve it – MCG Mar 31 '17 at 18:05
  • @glen_geek, are you suggesting moving the sense resistor to the input side of the regulator? Because otherwise I don't see how the Vdo of the regulator changes things. – The Photon Mar 31 '17 at 18:18
  • @ThePhoton I think this can work, but you must add an op-amp offset to account for the 53 uA Iadj current + current drawn thru the two divider resistors (which is constant). Iadj does have a tempco though. Its a thought - haven't tried it. Perhaps an AD8628 op-amp (6X better noise voltage) could help OP's noise concerns. – glen_geek Mar 31 '17 at 18:33
  • google (high side) current sensing amplifier. the circuit you have here require very high precision resistors R2..5. a current sensing amplifier helps with that. if built with a discrete part, watch out for its common mode range. you still need a solution for the range question - you set too lofty design goal for yourself. – dannyf Mar 31 '17 at 18:37
  • I was set the task by someone else for work.... and the external resistors are all 0.1% tolerance and as well matched as I could get them. I have Googled current sensing, hence how I got this! I have done what I set out to do, it's just not as accurate as I would like – MCG Mar 31 '17 at 19:09

4 Answers4

5

Try this

schematic

simulate this circuit – Schematic created using CircuitLab

How much noise to expect?

enter image description here

1uVrms, 48dB SNR

And now, with time and frequency combined, in SWE; here is 3Volt Peak signal at 50Hz, with 0dB RMS noise of bandwidth 250Hertz, into 20Hz LowPass filter:

enter image description here

The frequency response of the 20Hz LPF is

$$ 1 / sqrt(1 + (Freq/20Hz)^2)$$

At DC, gain is unity.

At 20Hz, gain is 1/sqrt(1 + 1) = 1/1.414 = 0.707 == -3dB

At 200Hz, gain is nearly 0.1

At 2,000Hz gain is nearly 0.01

EDIT>>> In the first schematic, the 100Kohm and 1uF create a 0.1 second TAU or TimeConstant. For accurate measurements, you need to WAIT after the current changes; 1Tau provides 1 Neper of accuracy (9dB or 1.5bits); 2tau provides 2 Nepers of accuracy because the RC has had twice as long to settle (18dB, 3 bits, or approximately 16% error); 5 TAU or 0.5 seconds achieves 45 dB of accuracy, nearly 0.5% accuracy.

Thus the bandwidth of the system, here set by that 100Kohm and 1uF, determines how LONG YOU MUST WAIT after a big step change to accurately measure that big step change. Small changes only need proportionately less time, before you can accurately measure the value. Of course, small changes may be almost buried in the noise.

analogsystemsrf
  • 34,253
  • 2
  • 19
  • 48
  • I shall indeed give that a go. I am just about to leave work though so that will have to be a Monday job, I shall let you know how I get on. Would you be able to explain this 'bandwidth' to me and how you came to those values? That would be very helpful for the future. Many thanks for your answer! – MCG Mar 31 '17 at 14:53
  • Brilliant, thanks for the edit! I'll try this Monday when I'm back at work! – MCG Mar 31 '17 at 15:42
  • @MCG This is a nice idea. But am suspecting it may not help your noise problem...the ADC you'll use for displaying current is likely dual-slope integrator type, which is an even-narrower BW noise filter than this! – glen_geek Mar 31 '17 at 19:06
  • The thing I'm using to display current is a lascar dpm 1as bl which has everything built in – MCG Mar 31 '17 at 19:18
  • This circuit did improve it, as in it was more reliable than mine, plus the explanation was very good about noise etc so I will accept this one as the answer. But thanks to everyone for their help! – MCG Apr 03 '17 at 07:47
  • @MCG In original question, you'd mentioned the 0.99 -- 1.01 millivolt bouncing around. How did that change? – analogsystemsrf Apr 03 '17 at 11:05
  • It is no longer that bad. It's still a bit noisy, but nowhere near what it was. It's about half of that. So it's not fully resolved but it's better. I'm going to replace the LM317 aswell and go from there. If that doesn't work then I'll have to leave it for now as it does do it's job! – MCG Apr 03 '17 at 11:09
  • The common-mode noise (the shunt bouncing up and down) may be the primary challenge to the measurement; two capacitors to GND, from each end of that first 1uF, will greatly reduce that challenge to the opAmp's Common Mode Rejection at high frequencies. Go for it: 1uF each, from the ends of C2, to GND; and tie the GND end of the new caps together before Grounding. Just keep the values of the NEW caps the same; they need not same value as C2. [see the original schem for options]; at this level of noise cancellation, imbalances in the R2&R3 499_Ohms may set the filtering floor. – analogsystemsrf Apr 03 '17 at 11:35
  • Did replacing LM317 achieve what you wanted? – analogsystemsrf Apr 05 '17 at 05:26
  • @analogsystemsrf I decided to revisit some old questions and noticed I never replied to your comment. Yes, once that was replaced and your circuit implemented, it was a lot more stable. I have since redesigned the PCB layout which also improved it, so that would have been a factor too! – MCG Aug 01 '17 at 15:12
4

I have been having some difficulty recently when trying to measure very low currents.

Use a I-V converter instead.

Quite simple.

edit:

I am trying to measure in the range of uA (1 - 150uA) ... that peaks at around 600mA.

that's a range of 600k:1.

I would say that it is (way) beyond even what 99.99% of expert analog engineers can do. any one coming out with a solution here would be an instant multi-millionaire.

HP happens to have a patent on that front - less than the range you are looking for - that may serve as a starting point for you.

dannyf
  • 4,342
  • 1
  • 8
  • 9
  • I will try to make a schematic with this. To OP: please say how much capacitance there is on the board to be powered, and its type (ie, 10µF ceramic, etc) – bobflux Mar 31 '17 at 15:14
4

When the problem is problematic, why not change the problem?

schematic

simulate this circuit – Schematic created using CircuitLab

This is a simple opamp-based voltage regulator, with an extra current-sense. Compensation and stability is on you, but it's not that hard. Pick a FET which can pass the current...

R3 (100R here) is your sense resistor, so 10µA gives you 1mV on the resistor. Plug your diff-amp input across R3. Choose a proper value for R3. You can use a switch with several value if you want.

D1, of course, solves your dynamic range problem, by limiting the voltage across R3 to one diode drop, so you can use a large resistor AND have your high current, too.

Say you want to measure 150µA... no problem, set R3 to 2k2 kOhm. 150µA gives you 330mV. Easy to mesure. And you set your current sense amp gain to make sure that it does not clip when voltage on R3 reaches one diode drop and it begins conducting.

Because if your current sense amp clips, then its input stage will have a thermal tail, delaying settling by potentially milliseconds. Which is why none of the circuits proposed here will work. You don't use an opamp to measure microvolts on a sense resistor, and trust the results if it occasionnally clips.

bobflux
  • 77,207
  • 3
  • 91
  • 222
  • Sounds like a good idea. Is it necessary to build your own regulator, or could you just do the parallel resistor/diode before the input to an integrated LDO? – Justin Mar 31 '17 at 20:47
  • Yes, using an off the shelf LDO would be my preferred choice. It would need to be stable with the caps in the load, and have a ground current low enough not to screw up the measurement, so you need a micropower LDO. You will need to add a cap in parallel with the current sense resistor, or a cap to GND at the LDO input, to ensure it is stable, because a 100 ohm impedance in the input may upset it – bobflux Mar 31 '17 at 21:20
1

Ignoring the schematic error showing the opamp output connected to the positive power rail.....

The opamp noise is about 30 nano volts per root hertz so, if you have a 1 MHz measurement bandwidth, the rms noise at the input will be about 30 uV rms. You have a gain of 100 so this becomes 3 mV of noise at the output.

Now, these are just ballpark figures for you to muse over. If the bandwidth of your measuring circuit is only 10 kHz then the noise will be about 300 uV rms.

This and the LM317 are the likely culprits.

Another problem is the tolerances on the resistors. With such a high gain differential circuit and 1% resistors, the common mode rejection will be pretty bad and noise from the LM317 power rail will be amplified. There are chips that will do this job for you. Linear Technology make "high side" current monitors that will be much more suitable than a diff opamp circuit.

Andy aka
  • 456,226
  • 28
  • 367
  • 807
  • Could you suggest an alternative op amp? All I saw was the low offset and just assumed it would do the job. Poor way of thinking I suppose! And to be honest I have no idea what the bandwidth is or how to find that... I didn't even consider that as I don't quite understand that side of it – MCG Mar 31 '17 at 13:39
  • What do you connect the output of the opamp to and how much bandwidth do you need to measure over? – Andy aka Mar 31 '17 at 13:41
  • I am connecting it to a Lascar DPM 1AS BL. ( http://www.farnell.com/datasheets/2843.pdf?_ga=1.10619570.788714094.1477307907 ) – MCG Mar 31 '17 at 13:44
  • And I don't really understand bandwidth so I am quite unsure about that...... I'll have a google of it but I am sure you would probably make it easier to explain than wikipedia or something! – MCG Mar 31 '17 at 13:45