I'm looking for a way to measure the +/-10A current in/out of a battery using this current sensor (10A variant). It needs a +/-15V supply and outputs +/-4V at it's rated current. I'll assume however that the output ranges from the full -15 to +15V and I'll just use an ADC with enough resolution to get the desired precision at +/-4V.

I think the MCP3425 16-bit ADC (datasheet) should be suitable but I'm not sure how to connect the two. On its differential inputs, it expects +/-2.048v to get the full 16-bit resolution, but the voltage on either pins can't be lower than -0.3V relative to GND.

This means that I can't just scale the +/-15V down to +/-2.048V using a voltage divider and feed it into the pins. I'd have to shift it up first. Maybe another option could be to set the PGA to 8x and scale the voltage to +/-256mV so it won't exceed -0.3V.

I'd also like to 'average' the output of the current sensor before feeding it into the ADC. The plan is to take 10 readings/s so I'd like each reading to approximately represent the average current over the last 100ms. I read about true RMS to voltage ICs but these are quite expensive and probably overkill. Can I just use an RC filter for this? If so, where exactly should I put it and which R and C values should I use? The switching frequency of the battery's current will probably be around 100kHz.

  • \$\begingroup\$ What is the use case here. Are you trying to measure the outflow/influx of DC to the battery to determine its current capacity? I am assuming you have some kind of processing on the digital output of the ADC, why not do the averaging in code? You could even do your RMS calculation relatively simply if it's required. \$\endgroup\$
    – mhaselup
    Nov 26, 2020 at 9:58
  • \$\begingroup\$ @mhaselup Yes, for logging the capacity and as an overcurrent protection to save the fuse. I will only be taking about 10 readings per second which I think will be too slow to calculate the RMS as there will be high-frequency ripple. \$\endgroup\$
    – Cedric
    Nov 27, 2020 at 9:07

2 Answers 2


The best way IMO to accomplish that is to use an instrumentation op-amp with a ref input like the AD8220 which is designed for this purpose. They can take in differential voltage and output and offset-ed signal that can be directly connected to an ADC.

The gain is simply set by an external resistor and the output can be offset by setting a voltage on the ref pin. So you can easily have a differential input and output directly to a non-differential, grounded ADC. Those devices usually show very good linearity and performance. They are quite pricy but if you are not trying to shave every cent it would simplify your design a lot. If needed, you can also use a simple resistor based voltage divider before the instrumentation opamp to accommodate the input range.

Be careful to the common-mode noise, better to connect one end of the sensor line to GND.

Note some design considerations, depending on the ADC spec, acquisition speed, and frequency of the signal, you might need a buffer op-amp between the instrumentation op-amp and the ADC to drive it properly in terms of current.

Concerning filtering, the simplest is simply to put an R-C filter after the instrumentation opamp and before the ADC, if you have a buffer opamp, you can have an R-C filter after each opamp.

You can also set an R-C filter before the instrumentation op-amp.

Last but not least, make sure your current sensor works in DC mode, hall effect current sensor usually do, but it is not specifically mentioned on the datasheet. Hall sensors for current sense are not very accurate, they have very strong temperature dependencies. They are usually needed for high voltage applications when you don't want an intrusive connection. If you deal with a battery, why not using a regular (4 pin kelvin) shunt resistor? it is cheaper and much more precise.

I would draw a schematic but the instrument op-amp doesn't exist in the StackExchange electronic drawing library.

  • \$\begingroup\$ Thanks for the in-depth response. When using an instrumentation op-amp, I suppose I'll have to feed about half of the ADC's supply voltage both into the op-amp's ref pin and into the (-) input of the ADC? I'm pretty sure the sensor will work with DC, Mouser says the range is DC-100kHz and in this datasheet on their website, DC is mentioned in (7.) on the third page. I'm using a hall effect sensor for physical isolation since the battery pack is high voltage. \$\endgroup\$
    – Cedric
    Nov 27, 2020 at 8:57
  • \$\begingroup\$ Lastly, what are the disadvantages of the little circuit I posted? Because it is quite a bit cheaper. \$\endgroup\$
    – Cedric
    Nov 27, 2020 at 8:58
  • \$\begingroup\$ It is not that simple because your sensor needs V+, GND, and V- and the output is referenced to GND. You miss GND on your schematic. from the datasheet, pin 4 is a current output loaded by a resistor which is referenced to GND, so connecting it to V- probably would cause some linearity issues. \$\endgroup\$
    – Damien
    Nov 27, 2020 at 10:57

Since I'm not getting any other responses, here's what I'll probably be using. I'm still open to other answers or comments on this circuit of course.

Voltage divider and RC filter

  • R1 and R2 act as the 10k pull-down resistor mentioned in the current sensor's datasheet.
  • The voltage divider scales down the signal from +/-15V to +/-0.3V.
  • R1 and C1 make up an RC low-pass filter with a cutoff frequency of about 10Hz.

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.