Identifying the rotor position is an important aspect in BLDC motor control. The rotor position is used to determine the proper electronic commutation. The most common method of identifying rotor position in a BLDC motor is by using Hall effect sensors. Hall effect sensors are sensing switches that produce logic level, based on the detected magnetic field. As the motor rotates, the Hall effect sensors identify the position information of the magnet poles (positive or negative polarity) installed in the motor, sending it to the controller. In this application, three Hall effect sensors are pre-installed inside the motor. These Hall sensors are distributed equally around the stator (120° apart) in a way that its output can generate six different combinations in one electrical cycle, which changes for every 60° of movement. These combinations can be translated into a number from one to six, which are represented by three binary digits. These sensors are positioned in a way that the magnets' polarity will change even before the rotor is in the position for the next commutation, preventing the rotor from being stuck.
The number of electrical cycles in one complete revolution is based on the number of pole pairs the motor has, as shown in Figure 2-1. Since a 5-pole pair motor is used in this application, a total of five electrical cycles is needed to complete one mechanical revolution (one rotation). Also, it is known that the Hall sensor will change states every electrical cycle and by measuring the time between each state change, the angular velocity or motor speed can be obtained.
In this application, the microcontroller counts the number of system clock ticks that is accumulated during a Hall period or an electrical cycle, using a series of timers. The number of clock ticks in a Hall period represents the speed of the motor, which means that the speed of the motor in clock ticks is five times the number of system clock ticks on a Hall period. This information can be used to subdivide the Hall period into smaller intervals for the rate of changing the applied voltage to the driver, which is vital to the sinusoidal current drive or simply measure its current speed.