I'm trying to design a current sensing circuit that can achieve a 0.01A accuracy across 50A DC. It is a battery powered brushless DC motor drive (battery --> current sensor --> controller --> motor). I need the accuracy because I am trying to determine efficiency and therefore the current reading is quite important. Most of the time, the system only draws 5-10A. I only need to measure current in one direction at a sample rate of 50Hz. I don't mind using a current shunt however I would prefer not to lose the power.

I have a 16 bit ADC that I am trying to interface the sensor with. I've considered sensors such as the ACS759.I have looked at data sheets, application notes, pretty much everything I can find on the topic but I can not find any circuit that achieves this kind of accuracy. Any help would be appreciated, if anyone knows of a circuit or a sensor. Thank you!

  • 1
    \$\begingroup\$ It is difficult to beat a current shunt for accuracy and dynamic linear range. I used a .001 .1% ohm shunt to measure 100 amp 600vac lines. They can be expensive, so you have to weigh the cost vs. minimum needs. \$\endgroup\$
    – user105652
    Jun 12, 2016 at 4:33
  • \$\begingroup\$ If I went with a current shunt, do you have any idea what I could use in between the shunt and the ADC that would provide me my desired accuracy? \$\endgroup\$
    – Peter
    Jun 12, 2016 at 5:10
  • \$\begingroup\$ Efficiency doesn't seem like something you calculate in real time while operating the BLDC. Sounds more like design validation. Could you just use a current probe for your oscilloscope? Put it directly around the wire? Anyway, what you need between shunt and ADC is a current shunt amplifier IC. Or you can build a current shunt amplifier from op-amps. Or, you can buy/rent a precision differential probe for your oscilloscope. \$\endgroup\$
    – user57037
    Jun 12, 2016 at 5:54
  • \$\begingroup\$ I'm using this on an ebike, so I can't use an oscilloscope. I'm just trying to get the most accurate power reading possible so that I can get an wH/km reading at the end of each 'test'. Perhaps I should've added that to the question. \$\endgroup\$
    – Peter
    Jun 12, 2016 at 5:56
  • \$\begingroup\$ I've found this here: ti.com/lit/ug/tidu820/tidu820.pdf, whilst it isn't a shunt it still provides very good accuracy which I think should be good enough. \$\endgroup\$
    – Peter
    Jun 12, 2016 at 5:57

2 Answers 2


I can not find any circuit that achieves this kind of accuracy.

In practice it is very difficult to get that kind of accuracy (0.01A at 50A is 0.02%) but it isn't necessary. 0.01A resolution is useful at lower currents, and is not difficult to achieve. I did it with a 0.001Ω shunt, precision op amp, and an MCU with 10 bit ADC.

Voltage will sag as the battery discharges, so to get accurate efficiency you need to measure Amps, Volts, rpm and torque simultaneously. However all these readings will have ripple, so they should be averaged over a period long enough to integrate the variations that occur at motor commutation speed.

With all the error sources combined you will be lucky to get better than 1% efficiency measurement accuracy, so don't worry if you can only get a current measurement accuracy of 0.2% (0.1A at 50A).

  • \$\begingroup\$ Thank you for your answer. I'll take this into consideration and I've already found one I can use. Thanks! \$\endgroup\$
    – Peter
    Jun 13, 2016 at 0:36

You can consider using CS5463. It has 24 bit ADC (+0.1% of reading over 1000:1 dynamic range). It communicates using SPI protocol. If you use the right value of oscillator, you can get a new reading after every 10 ms (50 Hz). i've tested at 20 Hz but haven't tried 50 Hz but i believe it's possible. It's cheap and you can find lots of libraries and getting-started circuits from the internet. i can share mine if you need it. Use 5% (or better 1%) shunt resistor to sense and feed it to it's voltage channel. But You'll have to calibrate it first. But it is trivial, you can use it's on-chip calibration procedure or use simple zero-offset and scaling procedure.

We use it regularly for AC/DC applications for voltage/current/energy measurement and we are quite satisfied with it.

P.S. i wanted to suggest this as a comment but due to my low "reputation score", i am not allowed to comment. Moderators please excuse.


Your Answer

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

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