Hi All!
We are developing an inverter that is loosely based on the oDrive using the DRV8353S as a gate driver. While doing the recherche on the possible solutions I also investigated separate shunt resistors and found an interesting note on filtering on page 25 of the datasheet of the INA181, one of TI’s most basic shunt amplifiers (https://www.ti.com/lit/gpn/ina181). There is not a lot stated about the shunt signal filtering in the datasheets of DRV8301 or 8353, but the topology seems to be the same. So the rather large and unbalanced filter resistor used int the oDrive 3.5 could have quite some impact on the precision of the measurement.
As the filtering should take place after the amplifier anyway, we replaced the 120R in a test design by a jumper - and ran into strange problems with the measurement when running the motor at high speeds. It turned out to be an oscillation of the measurement signal at the microcontroller as the shunt amp is not stable with its rather large capacitive load resulting from the 22R, 2n2 filter. On the original design the missing stability was no problem as the amp never had to deal with real steps in the input signal as this was (suboptimally) filtered.
So we modified the filter to optimize the stability while not sacrificing too much bandwidth or capacitance for the ADC’s sampling caps. Using 100R and 1n yielded way better performance and then again the sampling time was the limiting factor for the maximum possible band width. I appended a snapshot of the comparison measurements using the resistance measurement feature, with one channel using 22R, 2n2 in cyan and another one 100R, 1n in purple. The shorter oscillation is pretty easy to see.
With some further tinkering this could be improved even further, but the principle of filtering behind the amp with a low-capacitance filter should increase the performance by quite a bit.
Have fun rotating stuff,
ArcToubey