Driver phase voltage calibration

I am looking at using simplefoc to drive a stepper motor using an arduino due and a couple of 7960 drivers / TB9051FTG drivers. I was looking at testing the phase voltages on the driver output using the technique described here ( Getting started | Arduino-FOC). I am using a multimeter to measure the phase voltages and I do not see any output on the motor outputs till I get to a phase voltage setting over 1.4V. Also, for input setting over 1.4V I still get a 0.8V to 1V offset in the output setting. Is there some way to correct this issue in the code? Maybe adding a offset for the voltages being applied?


You need 3 of these drivers to drive a BLDC… you can only use one half-bridge channel of each driver, and have to drive each driver using 2 PWM signals, e.g. using 6-PWM mode.

This is because the driver has interlocking protection, e.g. the H-H and L-L states on the PWM lead to High-Z output (both half-bridges are off).

Is this how you have it set up?


Ah - I just re-read and you’re using it on a stepper. Is this in 2-PWM or 4-PWM mode?

I am using the 4-pwm stepper mode. I tried this on two different driver board setups - bt7960 and the tb9051ftg and got a similar result from both. I am thinking it’s possible it has something to do with the way the pwm voltages are generated from the arduino since reducing the pwm frequency to 4kHz lowered the turn on voltage at the driver output to about 1V of input set voltage. Both of the drivers should be able to handle at least 20 to 25kHz pwm as per my understanding.