Current Sensing

Thread Starter

danielb33

Joined Aug 20, 2012
105
Hopefully some seasoned electrical engineers will have some insight here. I am making a current sensor on a motor controller. This sensor will be made using shunt resistors in parallel (kelvin sensing will be used). I need to measure 0-70amps with at least 1% accuracy/precision and 10ma resolution.

I am using 0.01mOhm resistors (3 in parallel), these are 5W resistors. (we will only be measuring a MAX of 60A continuously, and I have very nice heat sinks, yes the resistors are designed for kelvin sensing)

The issue is 10mA is represented as 33.333uA with such small resistors and such a large range of current.

I am damn sure that my design will read with this resolution(24bit adc) and accuracy/precision right now, EXCEPT my voltage reference needs to be more precise. I am using a 2.048Vref with 0.02% MAX initial tolerance. This leaves me with a whopping 409uV max uncertainty of initial offset error!!! I cannot find a more precise voltage reference than the one I am using.

Finally~ I am sure that if I can CALIBRATE the board at assembly, it will have the readings I am looking for. Does anyone know of methods for doing this to fix the offset which is constant? Rather than look for a better Vref I would rather find a good calibration process. This could eliminate other offset error and parasitic problems as well, and fix and long term drift in the future.

Thanks for taking you time to help!
 

praondevou

Joined Jul 9, 2011
2,942
Which reference are you using? ADR4520 or MAX6126? Will be hard to find a better one.

If you want to compensate for the initial offset why not just remove it after the AD conversion, i.e. subtract it digitally?
 

Thread Starter

danielb33

Joined Aug 20, 2012
105
Actually...I realized while laying in bed I should not stay at work for 13 hours. dumb mistakes start happening. The offset error is actually not important since it is actually factored into the Vref. that 12% of 1 amp will be equally distributed as error through out my entire range of measuring, making it to trivial for calibration.

That being said, I would still like some calibration techniques as a fail safe. I need calibration because I do not know what to offset digitally. It will not be the same each time.
 

praondevou

Joined Jul 9, 2011
2,942
because I do not know what to offset digitally. It will not be the same each time.
If there is no current then the value read by the AD converter is the offset, wherever it comes from. That's your "zero". You could even recalibrate it this way via software each time there is no current, i.e. before a measurement etc.

I don't know all the rest of your circuit but this seems to be the easiest way.
 

Thread Starter

danielb33

Joined Aug 20, 2012
105
No, not an offset by the MAX. An offset by my voltage reference which FEEDS the analog positive reference. This will not be seen as a steady state offset by the MAX. Understand? Calibration for offset of small current or my ADC will be very simple to get rid of. I need to get rid of offset produced by the REFERENCE that FEEDS the MAX12206. IF I cant, like stated before, it is no big deal. I was thinking it was a bigger deal than it is.
 

crutschow

Joined Mar 14, 2008
34,201
I believe you are calculating incorrectly. A 0.02% reference voltage tolerance will give a 0.02% error of the value you are reading even for small signals, not a 0.02% of full-scale error for that reading.
 

THE_RB

Joined Feb 11, 2008
5,438
And a 24bit ADC sounds a bit optimistic too for accuracy.

And don't forget your resistors change in resistance per 'C. It all sounds a bit optimistic, getting <10mA error on a simple resistor+ADC setup at 70 amps!
 

ErnieM

Joined Apr 24, 2011
8,377
First you need to develop an expression for A2D converter bits as a function of current.

You drop the current across your sense resistor, so

Vin = Im * Rs

The A2D will slice and dice the input as such:

Count = (Vin / Vref) * Nb

where Nb = 2^bits

Putting these together:

Count = ( (Im * Rs) / Vref) * Nb

The resolution may be found by setting Count to 1 and solving for Vin (or here Im):

1 = ( (Im * Rs) / Vref) * Nb

resolution Im = Vref/(Rs * Nb)

There is not one but two values that directly influence the accuracy: the ref voltage and the sense resistor. The effect of either may be found by differentiation:

d(Count) / d(Rs) = (Im / Vref) * Nb

d(Count) / d(Vref) = -(Im / Vref^2) * Nb

Errors will have two main contributors: initial set (how big the error is when it's first turned on) and drift (any change in error from initial). Age and temperature are two causes of drift.

To calibrate for initial set you need two points, generally neither one should be with zero current: 10% of full and 100% of full scale are good choices. Using a very accurate external meter, some simple algebra and assuming a straight line gives you an expression for the correction for initial set. That needs be done on each and every production unit, and implies you have some EEPROM or such to store the result.

To correct for drift... you need to do a recalibration step. You can't determine it on the fly. So buy a stable reference and good resistors.

I would not trust the kelvin connection for multiple resistors in parallel. There will be current in the sense wires.

By selecting such a low sense resistor you toss away resolution: if 60A is your typical and 70A your max reading then 70A should produce the reference voltage at the input. If this means the power at the sense resistor is excessive then add an amplifier.

Off to work... more later
 
Top