I’m testing the VNH5019 motor controller, item #1451, and although it works mostly as expected, the gain of the current sense circuit seems to be unequal for forward and reverse full power output, showing a difference of about 10%.
I’m testing the driver with a 12V 5 amp regulated motor power supply and using a 5V ATmega328 board (which also powers the logic circuit of the controller) to control the driver on INA and INB, with ENA, ENB open and PWM wired to Vdd. CS_DIS is left open. At the moment, I’m using a 10 ohm 20 watt wire wound resistor as a load. I command full power forward and reverse, then measure the voltage across the load resistor and current sense outputs in each case.
The voltage across the load is +/- 11.98 V indicating the forward and reverse currents are equal. However, for “forward” the current sense output provides 0.217 V while “reverse” gives 0.199 V, all values measured with a decent multimeter. The 10-bit ADC readings for CS are consistent at 41 forward and 37 reverse, using uncalibrated AREF of about 5 V.
I can certainly live with this, but am a bit surprised. The data sheet does not seem to mention current directionality when discussing the “K” value(s) associated with CS.
I have not tested the driver with other loads (except no load and in that case the CS output gives 0V as expected). Comments anyone?
My impression is that these drivers use an arrangement of the power MOSFETs that give a proportional current out from some parallel MOSFETs, thus avoiding the losses involved with an inline current sense resistor. The power MOSFETS are made up of thousands of small cells in parallel, with gates all tied together and drains all tied together but a few of the sources not tied to the rest and instead diverted to the current sense circuitry. Since this is built right into the MOSFETs (the high-side ones in the case of the ST VNHxxx drivers, I think), there’s a separate copy of the circuit for each of the upper H-bridge legs, so it’s not too surprising that the results aren’t quite matched for different directions (which means different high-side MOSFETs and therefore current sense circuits active).
There’s a lot of info if you search for something like “current sensing power MOSFET”.
I have seen the same asymmetries when working on the TReX and Qik motor controllers, which are based on the very similar VNH2SP30. It was common for me to see a few counts of difference (using an 8-bit, 5 V ADC) in the current sense reading depending on the direction of the motor. I have always considered the current sense feature of these drivers to be appropriate only for very rough estimates of the current (according to the datasheet, at 5 A out, the ratio of Iout to Isense can be anywhere from 4700 to 10000), and I lump the asymmetric behavior in with that general uncertainty. I know you said you can live with the results you are getting (and I think the results should be good enough for typical applications), but if others reading this want better accuracy, I recommend adding one of our current sensors to your system.
Hi, Ben and Jan
Thanks for the reassurance. The application is linear actuators (from Pololu, of course) operating windows in a sunspace. All I really need to know is if the actuator has hit the limit switch or encountered a condition leading to excessive current draw (stall?). So, the observed behavior is acceptable.