Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

milliamp measurement

Status
Not open for further replies.

hemnath

Advanced Member level 3
Joined
Jun 24, 2012
Messages
702
Helped
61
Reputation
120
Reaction score
57
Trophy points
1,308
Location
Chennai
Activity points
6,588
I want to measure 0 to 30 mA with a resolution of 1uA stability and display it on LCD. Can you please help me to design the circuit.
 

Hello!

Some hints on how to start:
- 0 ~ 30 mA with a resolution of 1µA implies a 15 bit converter. You can find many 16 bits.
- As for the circuit, you have to use an op amp and set its gain to fit the input range of
your ADC.
- In the case you have enough noise (usually it's not a problem), and if your signal is slow
enough, you can use a lower resolution ADC. For example if you want to have 16 bits from
a 12 bit converter, then you can accumulate 256 times and divide b6 16. Then you will have
a 16 bit converter, but it will simply be slower.
- Some microcontroller (e.g. Texas' MSP432) have a 14 bit converter, which means that you
can accumulate 16 measurements and divide by 4 to get 2 extra bits.

Bt the way what did you do so far?

Dora.
 

I want to measure 0 to 30 mA with a resolution of 1uA stability ...

Convert to uA first: 0 to 30000 (with +/- 1 res); I presume you do not worry about the sign bit (else add one more bit)

16 bit will give you 64k without sign and 32k with sign.

You will need a 16 bit ADC; see the suggestions made in #2 and they are very good (boxcar averaging) if you have a very accurate repetitive signal. Basically you need to worry about the rate at which your current values are changing.

Are you good with the programming?
 

And something else. If you want to convert the converter's digital value to a real life value, then you should worry about the firmware as well, in order not to loose your analysis. Keep in mind that C doesn't round a value to its closest one, but instead it "cuts" the list significant digit (ie 13.9 will be converted to 13). And you must keep this in mind not only for the final operation when you calculate the milliampere value, but during all stages of the mathematic formula.
 

Thanks for the information guys.

Yes I have used 16 bit ADC for some of my projects. Also I am Familiar with programming the micro-controller. Not an issue with this. My concern is about designing and measurement of analog part.
 

30 ma needs a 167 ohms resistor to give the around 5V needed for ADC, if that is a high resistor to be inserted in the circuit, then you will select a smaller one and use an amplifier, select a very low input bias current and input offset current to minimize the error due to its currents at 1 ua
LM358 can have input bias current as high as 250 na so may be TL071 or AD620 will be better but both needs dual supply.
 

Hi,
M358 can have input bias current as high as 250 na
--> 250nA is OK if you want 1uA precision.
I´m more worried about OPAMP input offset voltage.

***
At first you have to decide is:
* what signal frequency do you expect (max. signal frequency of interest including overtones). This also defines ADC sampling frequency.
* what voltage drop at the current measuremant is allowed?
* what ADC input voltage range?
* what ADC reference voltage source do you use?

Klaus
 

How about LMC662?
I have done this with TLC2272, it worked just fine. But you should take care of the offset voltage.

If no negative rail is available, then it is better to give a small offset on your own like 5-10mV in the opamp input and subtract this voltage from the measured voltage that will be converted to current.

In order to do this, you need to measure the opamp output in no current condition after reset. This "no load" output voltage will be subtracted from the measured voltage, each time you read it (sort of calibration).

You need to do this for each board seperately because the offset output may vary. If you don't do this, you will need a negative rail for calibration as well, or for not cost sensitive application you could use a more embedded solution like max4080 for high side measurement.
 

Hi,

You need to do this for each board seperately because the offset output may vary. If you don't do this, you will need a negative rail for calibration as well, or for not cost sensitive application you could use a more embedded solution like max4080 for high side measurement.

We do this:
* Check if the EEPROM contains the "magic number"
* if not: perform the offset calibration, store the offset value in EEPROM, store the magic number in EEPROM

* read the offset value from the EEPROM and store it into a variable.

...after each ADConversion: subtract the offset(variable) value from ADC_value.

*******

With this simple software it is automatically calibrated at the first power up. You just need to ensure that the current at the first power up is zero.
So there is no additional effort for each single device.


Klaus
 

I want to measure 0 to 30 mA with a resolution of 1uA stability and display it on LCD.

1. Display update frequency (ADC sample)

2. What is the stability expected (be more detailed and clearer)

3. You microprocessor may have some max range set for the ADC; please check.

4. Using OP-AMP for I-V conversion is messy; have you decided already on a specific op-amp?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top