BLDC Skateboard Part 4

In Part 1, I determined what components were needed to turn the motor I found.

In Part 2, I determined what parts were needed to attach the motor to the skateboard wheel.

In Part 3, I created the mount and attached the motor to the skateboard.

Now that the motor is mounted to the skateboard, we need to spin it at full speed to make sure everything is balanced and aligned.

The motor I am using has three hall effect sensors located 120 degrees apart from each other around the stator.   This is a typical setup for BLDC motors that have sensors.  The sensors detect the magnetic field of the permanent magnets in the rotor and can be used to both excite the motor phases to get the rotor turning and as a course method to determine rotor speed.  This is called trapezoidal control.

The motor actually has a detailed specification sheet, however most inexpensive brushless motors do not have anything like this.  To be thorough, we will use a current limited DC power supply to determine which sensors are active for each position of the rotor and check our findings with the specification sheet.  Then, we will make an appropriate commutation table to excite the motor phases.

Since most hall effect sensors have open collector outputs, we need to create a simple circuit on a breadboard to read the feedback from the sensors.  We will also use this circuit to power the hall effect sensors.

The first step is to label each motor phase wire (three wires).  Two of the hall effect wires will be power for the sensors.   I will assume that the phase wires are labeled “A”, “B”, and “C”.

The circuit consists of a 3.3V switching regulator, a capacitor, and some pull-up resistors:

I use an external 12V supply that is regulated down to 3.3V with the Recom R-78HB3.3 (there are many different ways to do this).  The important thing is to not use the same power supply that will be used for the motor to do this test. The motor power supply will hit current limit and the voltage will drop, turning off the hall effect sensors.

The state of each of the hall effect sensors will be monitored on TP1, TP2, and TP3 using an oscilloscope.  Attach the hall effect sensor wires to J1.  The positive supply is pin 1 and the ground is pin 5.

I set my DC bench supply set to a current limit of 0.5A and voltage set to 12V.  Connect the positive terminal to “A” and the negative lead terminal to “B” and “C”.  This should align the rotor to the axis associated with phase “A”.  Now check the hall effect sensor feedback.  Two of the sensors should either both be high or low and one sensor should be different (i.e. High, High, Low).   The sensor that is different can be labeled “Z”.

Now, connect the positive terminal to “A” and “B” and the negative terminal to “C”.   The hall effect sensor that changed from the previous feedback can be labeled “X”.  The third sensor can be labeled “Y”.

Here is a commutation table to spin the motor using the labels we just created:

X Y Z A B C
1 0 0 + OFF
1 1 0 + OFF
0 1 0 OFF +
0 1 1 + OFF
0 0 1 OFF +
1 0 1 OFF +

To spin the motor the opposite direction, you reverse the polarity of the voltage in the table:

X Y Z A B C
1 0 0 + OFF
1 1 0 OFF +
0 1 0 OFF +
0 1 1 + OFF
0 0 1 + OFF
1 0 1 OFF +

If you compare this to the motor data sheet, you will see that this table matches if you set “X” to sensor lead “1”, “Y”  to sensor lead “2”, and “Z” to sensor lead “3”.

Following is a scope screenshot of the hall effect sensors with two full rotations of the motor.  X is yellow (channel 1), Y is blue (channel 2), and Z is magenta (channel 3).  I offset the zero point of each of the signals to better show their state.  This shows that there are four electrical rotations of the motor for two mechanical rotations.  Two electrical rotations per mechanical rotation confirms that the motor has two pole pairs.

In part 5, we will set up the TMS320F28069 LaunchpadDRV8323 Boosterpack, and go over the various feedbacks from the motor and driver.

Leave a Reply

Your email address will not be published. Required fields are marked *