I'm developing a device which must be able to measure milliamps and microamps on one of its lines (down to 1 microamp, but also clearly seeing if it's less than 1uA). It's going to be DC of different voltages (0-3.3V), but always fixed when measuring current.

So the total scale is 1uA - 10ma. It doesn't have to be a megaprecision device, there are no fixed specs regarding accuracy (actually, I set them). Besides, I might have a calibration setting in the software, I can build a calibration circuit no problem.

I'm still on the brainstorming stage, some parts of the future device have already their final form, or at least I have a clear idea of how it should work, but most are still not finalized. So everything can be changed. Especially if you propose some good ideas, I'm open to ideas.

I haven't decided what my core MCU is going to be, to be honest, there are options. The project doesn't require much magic, so probably naked Atmega328p programmed in Arduino IDE. No need to make it more complicated than it is. But yeah, there are options, it could also be PIC. And it's not what the question is about.

I decided to use 10 Ohm shunt resistor with two current sense amplifiers attached to it, INA186. The current sense amplifiers have 0.5 NANOamp bias current (DATASHEET), which, I think, is totally tolerable.Example circuit

So the questions are:

1. Can I get away with the circuit in the picture? How reliable would that circuit be? What problems could I expect with it? What are other options to measure 1uA - 10mA?

2. I feel like staying with jelly bean 10-bit ADC MCUs that I have around me, but if some 12-bit or 14-bit MCU (in my case, PIC) would offer significant advantage in circuit design and/or reliability at little or no extra cost, I would consider that. I have enough free pins on MCU for multiple ADC inputs.

3. Any, as Dave from EEVBlog says, traps for young players?


1 Answer 1


It all depends on the specs (range, resolution, accuracy and speed) you set for yourself.

The 1uA to 10mA range is a relatively large range. If you want 1uA resolution, then you need 10'000 A/D steps which would mean you need a 14 bit A/D converter. If 10uA resolution is fine with you, then you have 1000 A/D steps which can be done with a 10 bit A/D converter.

There's a simple trick you could do: You could use 2 different shunt resistors in parallel for two different current ranges (low/high). Then you could dynamically switch one or the other shunt resistor into the current measurement loop by means of some transistors. This way you could go with a simple 8 bit A/D converter.

  • \$\begingroup\$ I was considering this option, but the voltages at which I want to do it, may be too low, they're all the way down to zero, I'm afraid they will distort small voltage readings. I guess I could go with an MCU with hyper mega ADC 14-bit+ tho indeed. Thank you for an advice \$\endgroup\$
    – Ilya
    Commented Jun 17, 2020 at 12:22
  • \$\begingroup\$ Small voltages are exactly the reason why you should use 2 shunt resistors: If you have a low current shunt resistor of e.g. 10k Ohms then you could easily measure 1uA and still have 10mV measurement amplitude. \$\endgroup\$ Commented Jun 17, 2020 at 12:31
  • \$\begingroup\$ I want to avoiding giving extra resistance to that line, I want to avoid compensating for it in software, although, I guess, it would only add a few computations of ohm's law. Nevertheless, I'm afraid MOSFETs might mess something up if applied voltage is some 0.05V (on the shunt) \$\endgroup\$
    – Ilya
    Commented Jun 17, 2020 at 12:34
  • \$\begingroup\$ There are tiny I2C SOT-23 16 bit ADCs, some don't even cost much, by the way, that could avoid switching MCU \$\endgroup\$
    – Ilya
    Commented Jun 17, 2020 at 14:02
  • \$\begingroup\$ As long as you only measure the voltage difference across the shunt resistor, the mosfet will not impact your measurement. Mosfet matters when you use voltage sensitive load, since mosfet will have internal resistance (Rdson), giving some burden voltage. But this effect can be minimized by selecting low Rdson mosfet (tens of mOhm or better) \$\endgroup\$
    – rosmianto
    Commented Jun 19, 2020 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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