How to measure nano/micro-amps to 500mA without crashing?

Go To Last Post
17 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm looking to build up a few new test fixtures for some of my AVR products. These products are all battery based, so keeping the current consumption down, especially in Sleep mode, is important. We've found over the years that measuring the system current is a good way to find production problems, such as flux trapped under a IC etc.

In an idea world I want to have a current (I) data acquisition system with the following specifications:

* Current is measured on the high side.
* Works with source voltages as high as 32 volts.
* Has continuous current scale of 1nA to 1A, with a low source impedance (less than 10 Ohms).
* Cost less than $50 per unit to build (Please don't recommend high end meters the boss will never spend money on).

I'll settle for 1uA to 500 mA, in multiple scales, as long as the scale switching is automatic, at 12V.

The reason I need a low impedance is that my products are part of a sensor network, which transmits data using RF. The RF section wakes up at random intervals around thirty seconds or so. The time is deliberately random to avoid RF packet collisions. You never know when the current meter is about to have its needle wrapped around the end stop with a nice satisfying "Thunk".

If I try to measure low currents with say a 10k or 100k resistor I get my current measurement, but when the transmit comes on the system crashes because it does not have enough current to sustain it. I want to be able to run through a full sleep->transmit->sleep cycle without crashing due to current starvation, and track the current throughout the full cycle.

I've found various ideas on Internet such as:

Measuring nanoamperes; Measuring low currents can be tricky. Clever analog-design techniques and the right parts and equipment can help.
By Paul Rako, Technical Editor -- EDN, 4/26/2007
http://www.edn.com/article/CA6434367.html

10nA to 10mA using a LogAmp:
http://circuits.linear.com/Precision/.../Eight_Decade_Current_Sensing_Log_Amplifier

TI has their LOG10x series of LogAmps as well.

Once we get above 10mA things are fairly simple, lots of ways to do that. The fundamental problem is the micro-amp measurements, while maintaining a low impedance.

What I want to know is that any of you have been down this road before, and what suggestions you might have?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

10K and 100K is way too high! Typically you will measure current with a high precision high power low value resistor, like a 0.01Ohm or 0.1Ohm, and amplify the voltage through an opamp. Granted you won't get much swing at very low currents, but that's just the way it is. Maybe you can figure out a way to use two different resistor values for the sleep and active profiles?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

* Cost less than $50 per unit to build (Please don't recommend high end meters the boss will never spend money on).


Somewhat of an LOL, eh? Anyway, I've had success in the past with test equipment by watching eBay, and "taking a chance". With a bit of research and luck, get two $20 units off of eBay and one will probably work as expected. It may not be the newest models but who cares if it works?

Quote:

10K and 100K is way too high! Typically you will measure current with a high precision high power low value resistor, like a 0.01Ohm or 0.1Ohm, and amplify the voltage through an opamp. Granted you won't get much swing at very low currents, but that's just the way it is. Maybe you can figure out a way to use two different resistor values for the sleep and active profiles?

For the ranging, you might have two (or more) op amp circuits for the uA range and the mA range.

Even our decent Fluke meter is tricky at the low end. It uses a higher resistor than at the high range, so you get that out-of-range symptom. Remember that over the life of your product that the deep-sleep total current consumption is not even significant if there are a "lot" of transmissions and only becomes significant when there are "few" transmissions. ("lot" and "few" are subjective)

We measured the deep-sleep current to ensure no many-uA drains. For the cycle profile, we found that measuring the battery voltage gave us good enough numbers as there is a distinct voltage drop during the high-mA warmup/receive modes (~20mA) and transmit mode (~125mA). You can see the 2mA AVR running current, etc. Essentially, you are using the internal battery impedance as the sense resistor. With that, you can profile a transaction with just a 'scope and measure the low-uA of deep-sleep separately.

Try it--I think you'll like it. It served us well for practical measurement. For verification we did life-cycle tests with several transmissions/second until the battery died. In our case, this was ~10M transmissions over some days. (18AH 3.6V Saft/Tadiran "D" cell)

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

theusch wrote:

With that, you can profile a transaction with just a 'scope and measure the low-uA of deep-sleep separately.
The system needs to be 'no touch' for use on the production floor, by semi-trained monkeys. Each board gets tested, at 50,000 to 100,000 boards per year.

Last Edited: Tue. Sep 22, 2009 - 04:28 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How about putting a diode across the sense resistor to limit the voltage drop to 200 millivolts? Then use another series meter for the high currents.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Each board gets tested, at 50,000 to 100,000 boards per year.

Then I'm out, if there is that quantity involved and the boss has a $50 limit on test equipment purchases.

Let me add, though, that the tests you propose--especially checking the deep-sleep current draw--are important IME. The cleaning (or lack thereof) on a particular board build can easily lead to some/many uA of excess leakage current draw. There are a lot of uA in a bushel-basket.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

theusch wrote:
Quote:

Each board gets tested, at 50,000 to 100,000 boards per year.

Then I'm out, if there is that quantity involved and the boss has a $50 limit on test equipment purchases.

Let me add, though, that the tests you propose--especially checking the deep-sleep current draw--are important IME. The cleaning (or lack thereof) on a particular board build can easily lead to some/many uA of excess leakage current draw. There are a lot of uA in a bushel-basket.

I know the current tests are important, that is why we do them now, but the existing system has far to much manual fiddling with various things, that is why I'm looking to automate it.

The issue with the $50 is more than I need five to ten units, Boss isn't going to buy ten $1000 meters. Also I don't want our semi-trained monkeys doing things you would not think of to do with $1000 meters, lets not give them the temptation. Also real meters bring the cost of the Calibration Police into the picture.

The system I have in mind knows a profile of a good system, and the tester gives a Go/No-Go in comparisons to the board under test. First we have to masure the current...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dak664 wrote:
How about putting a diode across the sense resistor to limit the voltage drop to 200 millivolts? Then use another series meter for the high currents.
A perfect diode perhaps. Seems like a real diode will have significant leakage and temperature coefficient issues compared to the low currents being measured?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wow.

Where is MicroCarl when you need him? :) He would say buy a Fluke with an RS-232 output and move on!

Certainly measuring nA and even uA, reliably, and reproducibly, and accurately presents MANY challenges, and is way outside of my domain.

That said, when I have difficulty solving a problem I like to mold the problem into one I can solve.

The problem is that 1 uA with a 1 ohm sense resistor gives only 1 uV, down in the noise level for many circuits.

So how about you modify the test routine?

The widget has a test software, or a test mode as part of the normal software.

Mode I: Low current, not transmitting. You can use a much larger sense resistor, as you have already experimented with. Get a higher voltage to work with to make the measurement.

Mode II: Transmitting. The widget transmits a bunch of continuous packets. Now you use the lower value sense resistor, but the voltage is still higher, as you are known to be in the transmitting mode.

To enter the Test Mode you also have options. If it is a bi-directional RF link you can send it a special test mode code. It enters test mode for X seconds then auto exits.

Spare Pin, put two pads on the board to short out for test mode, (i.e. pull a pin low...).

"Plan B": If the others don't work... The device Auto Enters Test Mode on Power Up, (External Power Cycling), QED.

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I wonder if you could use an indirect method such as measureing the discharge time of precision capacitors - especially for your nA measurements. Use resistors for the higher current measurements then switch in a capacitor of known value and measure the discharge time to a known voltage.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

bpaddock wrote:
dak664 wrote:
How about putting a diode across the sense resistor to limit the voltage drop to 200 millivolts? Then use another series meter for the high currents.
A perfect diode perhaps. Seems like a real diode will have significant leakage and temperature coefficient issues compared to the low currents being measured?

But the low currents will be flowing through a high-value sensing resistor, which will make any parallel diode leakage insignificant.

Just thinking out loud here, I'd look into a high value, low current sensing resistor shunted by a (zener?) diode, all in series with a low value, high current sensing resistor. Read the voltage across both resistors independently, taking the high current reading if above a certain threshold, and the low current reading otherwise.

Of course I'm just an analog dilettante, so what do I know? :)

Mike

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can you measure the high and or low current at a different parts on the circuit?

I think you are going to struggle trying to get a cheap solution over the dynamic range required - close to 114dB.

oddbudman

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If your board has a switching regulator you could use the inductor's parasitic resistance as the sense element, like this application note describes. The interesting part is you can get a desired voltage swing by changing the value of two out-of-loop components...

http://www.microsemi.com/micnote...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just take a look for LT1636 op amp at Linear Technology.
Rail to rail up to 44V and has an application for high side current measurment.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Fluke makes a bench top meter for measuring leakage current in low power devices. It has zero burden by utilizing the fact that the inverting input of an opamp with neg feedback is a virtual ground. A current to voltage converter. You might try this concept with a power transistor front end on an opamp to get the range you need. No idea if this will actually work.

Rick

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why no feed the system thru a 0.1 ohm when it runs,an see the current. Put it to sleep and then only feed it thru a 1K resistor, see the drop, etc. etc.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You are going to need to address long term drift if you expect your employees to be able to pass or reject a product based on microamps. Vishay makes metal foil resistors that will hold one ppm for almost a year. There goes half your budget. Then you need a good voltage reference that has good long term drift specs and then you might use a 24 bit delta sigma ADC to handle the big span and use SPI to interface that to your AVR. If you try to use gain setting resistors you will get drift from those unless you pay $25 each for metal foil ones. So using a high res ADC with a buffer in front of it such as LTC2050 (no drift/no offset) might work.