BLDC Motor rotor vibrates with audible high pitch beep, but does not spin. Controlled by custom motor controller

by sudo127   Last Updated November 08, 2018 23:25 PM

The circuit I have built (taken from the HIP4086A gate driver data sheet found at is:

enter image description here

The only difference between this circuit and what I actually have is that the motor's brake is implemented mechanically (irrelevant here) and speed control has not been implemented yet - right now the duty cycle of the xHI and xLI pins are all 20%. I am using trapezoidal commutation, and so I actually have 6 pins leaving the controller instead of the 3 in the diagram (I manually invert the HI pins in the controller).

My motor is rated for 36V. When my circuit is connected to a 12V power supply with roughly 1.5A of current running through, the motor rotor vibrates, and it is physically harder to try spin the rotor manually with my hand. There is also a slight high pitched sound, but the rotor does not spin. Could this be because I am not providing enough voltage/current, or could my phases be swapped? My motor's datasheet does not provide a commutation table, so I have used this one (from this BLDC data sheet:

enter image description here

I know that my controller is parsing the Hall effect sensor inputs correctly and determine the correct state the rotor is in. I have also verified that the circuit is connected correctly. My main question is what is most likely to be the issue here? Could the issue be that my controller's clock speed is too low? (Using Arduino UNO but a Teensy 3.5 is available). Am I not providing enough current/voltage? Are my phases simply swapped?

My motor's data sheet can be found here:

Answers 1

There are three sources that I can think of for the high frequency

  1. The PWM frequency of the control signal. If you're using the analogWrite() function, it is only at a few hundred Hz. It'll control a motor, but be noisy.

  2. The behavior of the current limiting. Are you doing anything with the signal from the sense resistor going back to the controller?

  3. (most likely) The phases are not in the sequence that the commutation table expects. The motor datasheet shows that the Hall signals are spaced at 120 degrees, so that part is correct, but if the phases are in the wrong sequence, you can get a situation where the motor rotates to a point where the Hall signals change, and in the next sector the phases are energized to provide torque in the opposite direction, so the motor just oscillates back and forth around that point. Try swapping the phase leads around, there'll likely be one combination that works.

Phil G
Phil G
November 08, 2018 23:11 PM

Related Questions

Control BLDC Motor without Microcontroller?

Updated January 22, 2019 07:25 AM