As stated in the heading, I'm currently having a problem with driving a BLDC motor with VCC being 30 V. I'm using the DRV8320S motor driver IC from Texas Instruments. It is configured in 1x PWM mode, i.e. it only needs PWM, the desired direction of rotation as well as the hall sensor values. It will then drive the three external NMOS half bridges accordingly.
Given below is a simplified schematics of the board. For simplicity, I removed the two current sensor ICs and their shunts as well as the MCU, which actually gets the hall sensor values and delegates them to the motor controller. It also generates the remaining signals for INHx / INLx. The PWM frequency is 24 kHz. Attached motor is a maxon 402685.
Most of the time, the motor behaves just as expected. Hall sensor mapping is also correct, as other mappings will result in high pitch and frequency noises or rapid vibration of the motor. But if the motor is in standstill, most of the time it won't start up by itself. More precisely, I got this behavior in the following situations:
- After powering up the board (firmware is configured to drive motor instantly after initialization)
- If motor PWM is a sawtooth (after reaching zero, the direction of rotation will alternate), the motor sometimes won't turn on after PWM passed zero
- If you stop motor by applying a high enough external torque
In these situations, the motor driver still generates opposite PWM signals at two of its outputs as expected (active freewheeling). If it helps, current differs slightly if the motor turns clockwise or counterclockwise. Besides that, I didn't measure anything unexpected at all.
A guess from my side is, that the motor reaches a steady state acc. to the hall sensors, i.e. the rotor is perfectly aligned with the stators so that there is no effective torque. Maybe I have to adjust the hall sensor values in the MCU before I delegate them to the motor drivers, not by permuting them but by choosing the next / last state in the commutation table. But doesn't that presumption imply that the motor driver drives the motor always so that it reaches steady state, which IMHO is a contradiction to the fact that it can drive the motor clockwise / counterclockwise?
I searched a lot on the Internet, but only found some solved the problem but won't tell you how posts. Hope you can help me with this issue. If you need any further information, just ask me.