In this application, the implementation of the sinusoidal current drive on PIC18-Q43 can be divided into three functions; Drive Signal Generator, Angular Position Detector and Fault Detection Control. The drive signal generator provides the necessary signals for the implementation of the sinusoidal current drive. The drive signals produced in this stage are connected to an external MOSFET driver, which is used to directly drive the BLDC motor. The drive signals are used in gating the power supply to provide modulated voltage. The angular position detector provides periodic interrupts based on the motor angular position. These interrupts are used to trigger a change in drive signal applied voltage. The Fault detection controller monitors events such as overcurrent condition and stall condition. Once a Fault is detected, the controller disables the drive signal generator and all the interrupts, which stops the motor from running. The following are the list of peripherals used to successfully perform these functions.

Figure 1. Control Diagram

Figure 1 shows the functional block diagram of the 3-phase BLDC motor operation. Input control signals are available for stop/go commands and direction control. These input controls determine when the motor will rotate and the commutation sequence the drive signal generator will follow. The sinusoidal data provides PWM duty cycle values stored on Programmable Flash Memory (PFM), which will be loaded to the drive signal generator, depending on the rotor position. The motor used in this application is DMB0224C10002, which has a built-in Hall effect sensor as feedback for the motor position.