I'm trying to build a brushless dc motor driver, which provides the possibility to measure the currents on all three phases of the motor independently. The driver IC that I'm using (DRV8313) has three pins broken out for low-side current sensing using a shunt resistor.

I'm familiar with the basic concept of a shunt resistor, but I find it hard to select a suitable amplifier (opamp,...) and design the needed circuit around it.

Some information about my project: The maximum current is 2.5A, but most of the time it will not exceed 1A. The ADC I'm going to use has a 3.3V reference voltage. Thus, using an 0.1Ohm resistor would result in a voltage drop of 250mV, which had to be amplified by about 13V/V for the ADC.

My question is, how exactly do I design a low-side current sensing circuit? Which criteria does the opamp have to meet?

Looking forward to any kind of help. :)

  • \$\begingroup\$ Why do you want a low side sensing ? It is ideally recommended to have high side current senseing as then there is no ground corruption. In the low side the MOSFET will not be directly connected to the ground. The high side will not have that issue. I believe that you are using an opamp to interrupt the MCU on the event of the zero crossing of the BEMF, right ? Which MCU are you using ?. if your MCU has an inbuilt op-amp, you can use a voltage divider network to step it down. \$\endgroup\$ – Board-Man May 3 '16 at 13:27
  • \$\begingroup\$ Put an instrument amp across the sense resistor.. and add what gain you need. \$\endgroup\$ – George Herold May 3 '16 at 13:28
  • \$\begingroup\$ @Board-Man I thought about high-side current sensing, but since the drive IC has dedicated pins for low-side sensing I decided to use them (not definitely yet). I want to implement FOC in the future, hence I need accurate current feedback. I haven't decided, which mcu I'm going to use. For now, I just need the driver to work. \$\endgroup\$ – invenibo May 3 '16 at 13:40
  • \$\begingroup\$ @Board-Man where does it say that it is "ideally recommended"? The DRV8313 has to have a 0V connection for the synchronous MOSFETs. \$\endgroup\$ – Andy aka May 3 '16 at 13:44
  • \$\begingroup\$ @Andyaka. I mentioned a general practice. Not wrt this IC. \$\endgroup\$ – Board-Man May 3 '16 at 13:45

If you want independent monitoring of all three sense resistors then use an op-amp like the AD8608 quad op-amp - it has rail-to-rail capabilities and use three of the op-amps as non-inverting amplifiers like this: -

enter image description here

Gain is Rf/Rg + 1. I would also put an RC low pass filter in line with the non-inverting input - probably initially try 10k and 10nF. This also acts to protect the op-amp inputs should there be ground bounce.

  • \$\begingroup\$ That's right, but I can only measure one (phase) current with the internal comparator. I need at least two for field-oriented control. \$\endgroup\$ – invenibo May 3 '16 at 13:49
  • \$\begingroup\$ The answer has been re-configured. \$\endgroup\$ – Andy aka May 3 '16 at 14:05
  • \$\begingroup\$ @invenibo Since you want do the FOC control, maybe you forgot to measure also the backward current, in this case you would require to bias the output at Vref/2. \$\endgroup\$ – Marko Buršič May 3 '16 at 22:51

You can use a differential op-amp amplifier as follows:


simulate this circuit – Schematic created using CircuitLab

OA1 is a RRIO amplifier.

The 'extra' resistors allows you to use a Kelvin connection to the sense resistor and thus eliminate errors due to the traces.

R3 should be a non-inductive type. D1 and D2 are optional (could be a dual too) to clamp any transients.

You'll get transients from the gate drivers even without the motor- a good gate driver might source a few amperes.


You dont need any instrumentation amplifier. Check page 12. The inverting terminal is connected to the internal voltage reg and the non inverting to the GND. Its just an intelligent selection of Rsense.


Use the /COMPO pin to interrupt your MCU on the relevant over current detection.

  • \$\begingroup\$ The op wants monitoring not triggering on an over-current. \$\endgroup\$ – Andy aka May 3 '16 at 13:57
  • \$\begingroup\$ @Andyaka. What is the function of the /COMPO pin ? \$\endgroup\$ – Board-Man May 3 '16 at 13:59
  • \$\begingroup\$ You tell me!!!! \$\endgroup\$ – Andy aka May 3 '16 at 14:00
  • \$\begingroup\$ I thought it would give a low on over current detection. \$\endgroup\$ – Board-Man May 3 '16 at 14:01
  • \$\begingroup\$ He doesn't want over-current detection - he wants linear amplification of the current for external monitoring purposes. \$\endgroup\$ – Andy aka May 3 '16 at 14:05

Low side sensing isn't suitable for motor current measurement, latter can be used only for overcurrent detection and not for current measurement suitable for FOC. You would need to place a series resistor from output and use high side current sensing technique, but only at two phases since the third is calculated Ia+Ib+Ic=0.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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