You are on page 1of 15

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Brushless DC (BLDC) Motor Control using PIC18Fxx31 Microcontrollers


2003 Microchip Technology Incorporated. All Rights Reserved. Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Agenda
G G G

Overview of motor control solutions from Microchip PIC18Fxx31 peripherals for motor control BLDC motor control using PIC18Fxx31
G G G G

Open loop control Closed loop control using Hall sensors Closed loop control using Quadrature encoder Sensorless control

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

The agenda for this discussion is: First we will discuss an overview of motor control solutions from Microchip PIC18Fxx31 has many peripherals that are useful for motor control application. We will discuss the major peripherals that are helpful in developing motor control application. Then we will discuss the Brushless DC motor control using PIC18Fxx31 devices in open loop, closed loop with Hall sensors and closed loop with Quadrature Encoder or also known as optical encoder. Finally we will see how a sensorless control of BLDC motor can be implemented using PIC18Fxx31 At the end of this discussion, we will show few references that would be helpful for you to understand BLDC motors and controls using PIC18Fxx31

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Motor Control from Microchip


G

G G

Complete solutions for Stepper, Brushed DC, BLDC, ACIM & SR motors utilizing PIC16, PIC18 and dsPIC devices Microchip Op Amps and International Rectifier drivers Provide everything a design engineer needs: G Low-risk product development G Lower total system cost G Faster time to market G Outstanding technical support G Dependable delivery & quality Visit us at www.microchip.com/motor
Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

2003 Microchip Technology Incorporated. All Rights Reserved.

Microchip Technology offers a broad product portfolio that provides a complete system solution for your brushed DC motor, variable speed brushless DC motor, AC induction motor, switched reluctance motor and stepper motor applications. This includes the microcontroller with firmware to drive the motor, analog op amps and comparators for sensors or feedback and power electronics from Microchip and International Rectifier. With our sophisticated development systems and technical documentation, Microchip makes it easy for designers of all experience levels to complete a high performance electronic motor control design quickly and cost effectively. Microchip provides everything a motor control design engineer needs: low-risk product development, lower total system cost, faster time-to-market, outstanding technical support and dependable delivery and quality. For access to Microchips complete motor control design resources, visit the Motor Control Design Center at www.microchip.com/motor.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

PIC18Fxx31 overview

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

PIC18Fxx31 family of microcontrollers have 4 parts, having 28-pin and 40-pin packages with 8Kbytes and 16Kbytes of program memory. The major peripherals that are useful in motor control are Power Control PWM or PCPWM, High-speed Analog-to-Digital Converter and Motion Feedback module. These peripherals simplify the motor control algorithm to a great extent. The main features of PCPWM include: Up to 8 channels output with independent or 4 pairs complimentary outputs Up to 14 bits PWM of resolution Center aligned or edge aligned PWM operation. Also known as symmetrical PWM or asymmetrical PWM operation Programmable dead band control for complementary outputs Hardware Fault interface pins for fast PWM shut down in the event of fault. Main features of high-speed ADC include: Up to 9 channels input, with 2 Sample and Hold circuits Simultaneous and sequential conversion capabilities with multiple channel selection 4 word deep FIFO with flexible interrupt settings Main features of Motion Feedback Modules are: Multiplexed Input Capture and Quadrature Encoder Interface (QEI) modules In QEI, A, B and Index signals interface for measuring, position velocity and direction of rotation 3 Input Capture pins with multiple modes for pulse width and frequency measurements Interrupt on change feature used for Hall sensor interface.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

PIC18Fxx31 peripherals
G

Power control PWM


G G

Up to 8 channels with up to 14-bit resolution Center aligned and edge aligned operations Up to 9 channels with up to 200 Ksps 4 word FIFO buffer with flexible interrupts Quadrature Encoder Interface (QEI) - QEA, QEB, Index G Position and velocity measurement modes 3 Input Capture (IC) pins G Pulse width and frequency measurement modes
Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

High-speed ADC
G G

Motion feedback module


G

2003 Microchip Technology Incorporated. All Rights Reserved.

PIC18Fxx31 family of microcontrollers have 4 parts, having 28-pin and 40-pin packages with 8Kbytes and 16Kbytes of program memory. The major peripheral that are useful in motor control are Power Control PWM or PCPWM, highspeed Analog-to-Digital Converter and Motion Feedback module. These peripherals simplify the motor control algorithm to a great extent. Main features of PCPWM include: Up to 8 channels output with independent or 4 pairs complimentary outputs Up to 14 bits PWM of resolution Center aligned or edge aligned PWM operation. Also known as symmetrical PWM or asymmetrical PWM operation Programmable dead band control for complementary outputs Hardware Fault interface pins for fast PWM shut down in the event of fault. Main features of high-speed ADC include: Up to 9 channels input, with 2 Sample and Hold circuits Simultaneous and sequential conversion capabilities with multiple channel selection 4 word deep FIFO with flexible interrupt settings Main features of Motion Feedback Modules are: Multiplexed Input Capture and Quadrature Encoder Interface modules In QEI, A, B and Index signals interface for measuring, position velocity and direction of rotation 3 Input Capture pins with multiple modes for pulse width and frequency measurements Interrupt on change feature used for Hall sensor interface. 5

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Drive topology
VDC+

H1

H2 Phase B (5) (2) (1) (4)

H3

Phase A L1
VDC 2003 Microchip Technology Incorporated. All Rights Reserved.

(3) (6) L2

Phase C

L3

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

A brushless DC motor is a synchronous motor that finds numerous applications in motion control. Appliance, automotive, aerospace, industrial automation, automation are few industries to list. These come with different torque and voltage ratings. A BLDC motor has windings on stator and alternate permanent magnets on rotor. BLDC motors are electronically commutated based on the rotor position with respect to the stator winding. This means, to run a BLDC motor an electronic drive is required. Normally 3 Hall effect sensors mounted on the stator are used to determine the rotor position. The Hall effect sensors give a combination of high and low signals when they pass next to the rotor poles. With this combination, the commutation sequence is determined. A typical control circuit with 3 phase winding connection is shown in the figure H1,H2, H3 and L1, L2,L3 make 3 phase voltage source inverter connected across the power supply indicated by VDC+ and VDC-. Stator windings A, B and C are connected in star to the inverter. In coming slide we will see how these stator windings are energized in synchronous with the Hall sensor inputs.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Switching Sequence
Step (1) (2) (3) (4) (5) (6) (1) (2) (3) (4) (5) (6) Hall sensor 101 001 011 010 110 100 101 001 011 010 110 Hall A Phase A Hall B Phase B Hall C Phase C
Hall Hall Hall Phase Phase A B A B High switch H3 H1 H1 H2 H2 H3 H31 H10 H1C H2NCH2 Vdc1 Low switch L2 L2 L3 L3 L1 L1 L21 L20 L30 L3 L1 VdcVdc+ 1 0 0 0 1 1 1 0 0 0 1 1 Vdc+ NC VdcVdcNC Vdc+ Vdc+ NC
7

Sequence table example


2003 Microchip Technology Incorporated. All Rights Reserved.

Phase C Vdc+ NC VdcVdcNC Vdc+

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

With 3 Hall sensors on the motor, every 60 degrees of electrical cycle, a Hall sensor makes transition either from low to high or from high to low. With this every electrical cycle has 6 steps to complete one full cycle. The energizing sequence will have 6 combinations of turning ON and Off of the 6 switches that we saw in the previous slide. A typical switching sequence is shown on the table here. The Hall sensor inputs are at 120 degrees phase shift to each other. Every sequence has two windings connected across the power supply and third winding left open. Considering the first step where the Hall sensor input is 101, Phase C is connected to positive DC bus and phase B is connected to negative DC bus and phase A is left open. In order to achieve this switch H3 and L2 should be closed and all other switches should be open. This will turn the rotor by 60 degree electrical in the given direction. This will make the Hall sensor to make another transition triggering the next point on the sequence table and so on. The electrical cycle and shaft rotation have a definite relation. The electrical cycle repeats with every rotor pole pairs. So to complete one rotation on the shaft, these 6 steps should be repeated as many times as rotor pole pairs. If the sequence is followed with rated motor voltage across the motor windings, motor will run at rated speed. Speed can be controlled using PWMs, by PWMing each switch according to the speed required. The phase current waveform looks trapezoidal in shape with each phase current having 120 degrees phase shift to each other.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Control using Hall Sensors


AC in

+
/MCLR AN0 1 2 3 4 28 27 26 25 RB7/PGD RB6/PGC PWM4 PWM5 PWM3 PWM2 PWM1 PWM0 Vdd Vss RC7/RX/DT RC6/TX/CK RC5/INT2 RC4/INT1

- DC bus

Potentiometer

AN1/IC1 AN2/IC2 AN3/IC3

B-Low B-High Y-High Y-Low R-High R-Low

Hall sensors Motor current

AN4 AVdd AVss OSC1 OSC2 RC0

5 6 7 8 9 10 11 12 13 14

PIC18F2431

24 23 22 21 20 19 18 17 16 15

3 phase Inverter bridge

Motor current

Motor current

/FLTA/CCP2

Reference
+

/FLTB/CCP1 RC3/INT0

BLDC Motor Hall sensors

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

This slide shows the hardware interface used for controlling a BLDC motor. Hall sensors are used for commutation. Hall sensors can be connected to either Interrupt on change pins that are on port C or they can be connected to Input capture pins on Motion feedback module. The input capture module has a mode in which the module generates an interrupt on transition on each pin, making it ideal for Hall sensor interface. Optionally, Timer5 can be captured on each transition. This Timer5 value can be used for determining the speed at which motor is running. This gives a low resolution speed measurement. For the applications where high resolution of speed measurement is required, quadrature encoder is used. The QE gives speed, position and direction of rotation.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

OVDCOND v/s PWM output


Step Hall sensor
OVDCOND

(1)
101

(2)
001

(3)
011

(4)
010

(5)
110

(6)
100

00100100 00000110 00010010 00011000 00001001 00100001

PWM5 - H3 PWM4 - L3 PWM3 - H2 PWM2 - L2 PWM1 - H1 PWM0 - L1


2003 Microchip Technology Incorporated. All Rights Reserved. Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Now let us see how to control the speed using PCPWM module. PCPWM module has a feature of over riding the PWM outputs based on the value in OVDCOND register. When the corresponding value in OVDCOND is set to 1, the PWM output becomes active and vise versa. With this we can efficiently allow the required PWM to appear on the pin, when required as per the sequence, and inhibit when not required. Speed variation is achieved by varying the duty cycle of each PWM. To increase the speed, the active part on duty cycle needs to be increased and to reduce the speed, the active time is reduced. By doing this the average voltage supplied across the motor winding varies, thus controlling the motor speed. This slide shows the relationship between the OVDCOND register and the PWM output. PWM0 to PWM5 control on and off of 6 switches. The PWMs are passed and inhibited according to the sequence discussed earlier.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Control Flow Chart


Initialization
Load new step sequence Hall sensor change?
No Yes

to the OVDCOND register from Table

Change Speed?
No

Yes Calculate new PWM

duty cycle

Key scan/ Other application?

Hall A 1 1 1 0 0 0

Hall B 0 0 1 1 1 0

Hall C 1 0 0 0 1 1

Phase A NC Vdc+ Vdc+ NC VdcVdc-

Phase B VdcVdcNC Vdc+ Vdc+ NC


10

Phase C Vdc+ NC VdcVdcNC Vdc+

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

This shows a simplified control flow chart for BLDC motor control. The sequence table dictates the PWM channels that should be in active or inactive states, based on the Hall sensor states. On every transition on Hall sensor input, new step from the sequence is loaded to the OVDCOND register. Any change in the speed command is read either using a potentiometer connected to one of the AD channel or a digital value from another controller calculate a new PWM duty cycle and load to the appropriate registers.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Control using Quadrature Encoder


Potentiometer
/MCLR 1 AN0 2 INDX 3 QEA 4 QEB 5 AN4 6 AN5 7 AN6 8 AN7 9 AN8 10 Vdd 11 Vss 12 OSC2 13 OSC1 14 RC0 15 FLTA/CCP2 16 FLTB/CCP1 17 INT0/RC3 18 RD0 19 RD1 20 4 0 RB6/PGC 39 PWM4 B-Low 38 B-High PWM5 37 RB7/PGD

AC in

- DC bus

QE interface

PIC18F4431

Motor current Temp. sensor

35

36 PWM3 PWM2

Y-High

Y-Low

Motor current Reference

34 PWM1 R-High R-Low 33 PWM0 32 Vdd 31 Vss 30 RD7 29 RD6 28 RD5 27 RD4 26 RC7/RX/DT 25 RC6/TX/CK 24 RC5/INT2 23 RC4/INT1 22 RD3 INT0 21 RD2

3 phase Inverter bridge

Motor current

Power factor correction

Hall sensors

BLDC Motor

QE
11

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

With QE for speed, position and direction feedback and Hall sensors for commutation can be interfaced as shown here. Hall sensors connected to INT pins, and QE connected to motion feedback module.

2003 Microchip Technology Inc.

11

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Sensorless control
Potentiometer
/MCLR 1 AN0 2 IC1 3 IC2 4 IC3 5 AN4 6 AN5 7 AN6 8 AN7 9 AN8 10 Vdd Vss OSC2 OSC1 11 12 13 14 4 RB7/PGD 0 RB6/PGC 39 PWM4 B-Low 38 B-High 37 PWM5

AC in

- DC bus

Back EMF ZC detect

Motor current Temp. sensor

PIC18F4431

36 PWM3 35 PWM2

Y-High

Y-Low

Motor current Reference

RC0 15 FLTA/CCP2 16 FLTB/CCP1 17 INT0/RC3 18 RD0 19 RD1 20

34 PWM1 R-High R-Low 33 PWM0 32 Vdd Vss 31 30 RD7 29 RD6 28 RD5 27 RD4 26 RC7/RX/DT 25 RC6/TX/CK 24 RC5/INT2 23 RC4/INT1 22 RD3 21 RD2

3 phase Inverter bridge

BLDC Motor

Motor current

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Sensorless control of BLDC motor gives many advantages, most importantly lowered system cost. Every phase develops a voltage called Back EMF, that opposes the power applied to the phase. During the non energized phase of the sequence, this back EMF crosses from positive voltage to negative voltage. From the the zero cross over point, rotor position can be determined, and used for commutation. This method eliminates the requirement of sensors for commutation. However, this may require additional hardware on the drive side and additional firmware overhead on the microcontroller.

2003 Microchip Technology Inc.

12

Power factor correction

Back EMF ZC detect

12

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Sensorless control schemes


1) Compare with DC bus/2
DC+ A + _ + _ Back EMF B DC/2 + _ To IC2 BZ_B To IC1 BZ_A To IC3 BZ_C

2) Compare with virtual neutral


DC+ A + _ + _ Back EMF C DCB Virtual Neutral + _ To IC1 BZ_A To IC3 BZ_C

DC- C

To IC2 BZ_B

AN0 A

3) Using ADC Channels


C B

Back EMF

AN1 AN2

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

13

We will see three different methods of determining the Back EMF zero cross point. 1) Comparing WRT center point of DC bus: Every sequence has two windings connected across power supply and third winding left open. The BEMF generated in the non energized winding is compared with respect to the half of DC bus. This gives a fairly good result, when the motor terminal voltage is approximately equal to the DC bus voltage. If the DC bus voltage is disproportionately high, the cross over point may drift away, making it difficult to determine a workable commutation sequence at all speeds. 2) Comparing with a virtual neutral: A virtual neutral point can be generated using resistor ladders as shown and the BEMF in the non-energized winding can be compared with this neutral point. This makes it comparatively easy to determine the zero cross point at all measurable speeds. 3) Using High speed ADCs: The BEMF signals are attenuated and read directly using an on chip ADC on a PIC18Fxx31 can give a great flexibility in determining the zero cross over point.

However, at low speeds, the BEMF developed is very low in amplitude, which makes it difficult to determine a zero cross over point.

2003 Microchip Technology Inc.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Summary
G G G

Overview of motor control solutions from Microchip PIC18Fxx31 peripherals for motor control BLDC motor control using PIC18Fxx31
G G G G

Open loop control Closed loop control using Hall sensors Closed loop control using Quadrature encoder Sensorless control

2003 Microchip Technology Incorporated. All Rights Reserved.

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

14

2003 Microchip Technology Inc.

14

Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

Resources
G

Application notes:
G G G

AN885 : Brushless DC motor fundamentals AN899 : Brushless DC motor control using PIC18Fxx31 AN857 : Brushless motor control made easy

Demo and development board


G

PICDEMTM MC G Completely isolated, debug tools can be connected when the board is live G Low cost design

Web design center: www.microchip.com/motor


Brushless DC Motor Control Using PIC18Fxx31 Microcontrollers

2003 Microchip Technology Incorporated. All Rights Reserved.

15

These are additional resources for more information on Microchips Motor Control solutions.

2003 Microchip Technology Inc.

15