GS001 Getting Started with BLDC Motors and dsPIC30F Devices Author: Stan D’Souza Microchip Technology Inc. advance and is implemented mainly in software at high speeds of rotation. The result of phase advance is better efficiency in the BLDC motor operation. INTRODUCTION Sensored BLDC Motor Control As a means of reducing high energy and maintenance costs in motor control applications, BLDC motors are seeing a resurgence in applications where efficiency and reliability are important. The dsPIC30F motor control devices are ideally suited to drive and control a wide range of BLDC motor types, in a large number of applications. Microchip has developed a number of solutions using the dsPIC30F and BLDC motors. This document will help you select an appropriate solution for your BLDC motor application. When driving a BLDC motor, it is important to know the position of the magnetic rotor with reference to the stator. Most commonly, Hall effect sensors are used to generate feedback on the rotor position. This type of control is called sensored BLDC motor control. Most BLDC motors have three windings. Based on the position of the magnetic rotor, two windings are energized at a given time with each phase conducting for 120 electrical revolution degrees, resulting in six distinct combinations of energization. This type of drive is called “trapezoidal” or “six-step commutation”. BLDC MOTOR BASICS SIX-STEP COMMUTATION DC brush motors have a permanent magnet on the stator with the motor winding on the rotor. During rotation, the current in the windings is reversed using mechanical carbon brushes and a commutator located on the rotor. The BLDC motor has permanent magnets on the rotor with the electrical windings on the stator. The first obvious advantage of the BLDC motor is the elimination of the mechanical commutator and brushes, which significantly improves mechanical reliability. The commutator and brushes in DC motors also give rise to sparking, so eliminating these components means that BLDC motors can operate in a harsh environment. The I2R heat losses in the windings of a BLDC motor are now on the stator and can be dissipated very easily. Consequently, efficiency of the BLDC motor is vastly improved. Figure 1 depicts a typical six-step commutation scheme with the Hall sensor output overlay. Six-step commutation offers a simple, yet efficient, method of driving a BLDC motor. Hall A (HA), Hall B (HB) and Hall C (HC) sense the position of the rotor with respect to the windings, R, Y and B. Depending on the Hall sensor reading from 1 to 6, an appropriate pair of windings is driven high and low with the third winding not driven. Each 360 degree electrical cycle is broken down to six 60 degree electrical sectors, in which one winding is driven high, a second is driven low and the third is not driven. Example: In Hall position 6 or sector 1, the R winding is driven high while the B winding is driven low and the Y winding is not driven. By reading the Hall sensors, the six-step commutation algorithm can very easily be implemented in software. There are, however, some challenges when spinning a BLDC motor. Firstly, a revolving electrical field has to be created in the windings, which also has to be well aligned with the magnetic field on the rotor. The efficiency of the BLDC motor depends largely on the alignment of the revolving electrical field to the magnetic field on the rotor. To sense the magnetic field, Hall sensors are normally used. Based on the signal presented by the Hall sensors, the windings are appropriately excited. As the speed of the rotor increases, however, there is a certain amount of lag between the voltage excitation and the current effect on the windings due to the inductance of the windings. To overcome this lag, the voltage is initiated a little in advance. This phenomenon is known as phase © 2005 Microchip Technology Inc. FIGURE 1: TYPICAL SIX-STEP COMMUTATION HA R 60° HB Y HC B Sector Hall 5 5 0 4 1 6 2 2 3 3 4 1 5 5 0 4 1 6 DS93001A-page 1 GS153 DRIVING SENSORED BLDC MOTORS WITH A SINUSOIDAL VOLTAGE When it is rotated like a generator, a BLDC motor creates a sinusoidal voltage output (120 degrees apart) in all three phase windings. So the “natural” drivers for a BLDC motor are three sinusoidal voltages at 120 degrees apart. The six-step commutation normally works very efficiently in most BLDC applications. However, in some applications, the DC switching of the PWM drive voltage used in six-step commutation sometimes causes a phenomenon known as torque ripple. Torque ripple typically manifests as a low-frequency rumble in some systems. An alternative to the six-step method is to feed a PWM driven sine wave to the three phases (at 120 degrees apart) using a Space Vector Modulation (SVM) technique. This method is just as efficient as six-step commutation and delivers uniform torque to the load. Microchip is developing an application note on this technique. For example, in Sector 1, the Y winding is monitored for zero crossing. When that transition occurs, the timer is loaded with half the T60 time in a timer. When that timer times out, the windings are commutated as described earlier. That is, Y is driven high, B is kept at low and R is not driven. Microchip has developed two application notes on sensorless BLDC control: AN901, “Using the dsPIC30F for Sensoreless BLDC Control” and AN992, “Sensorless BLDC Motor Control Using dsPIC30F2010”. FIGURE 2: 0 R T30 0 Y Sensorless BLDC Motor Control Sensors add cost to a BLDC motor application. Also, sensors need to be adjusted during the manufacturing process. In quite a few applications, however, the need to find the exact position of the rotor is not necessary. Fan blowers and compressor motors are typical applications which run at a constant or limited speed range. In these applications, the back EMF detected on the third unexcited winding can be used to switch the PWM commutation of the motor windings. TYPICAL SENSORLESS COMMUTATION T60 0 B SECTOR 5 0 1 2 3 4 5 0 1 Figure 2 shows a typical sensorless commutation diagram. In this method, the back EMF voltage on the winding that is not driven in each sector is monitored. When this voltage crosses the imaginary “half-point” or “zero-crossing” line, zero crossing is detected. The algorithm now knows that it is in the center of the sector and has 30 electrical degrees remaining to do the next commutation. The time taken for each sector (60 degrees) is known as, say T60. When the zerocrossing point is detected, a timer is loaded with half the value of T60. When this timer times out, an interrupt is generated and the next winding commutation is implemented. This method of control is called sensorless control of a BLDC motor. DS93001A-page 2 © 2005 Microchip Technology Inc. GS153 dsPIC30F APPLICATION NOTES The following are some applications notes on BLDC motor control with the dsPIC30F that will help you jump start your BLDC motor control project AN957, “Sensored BLDC Motor Control Using dsPIC30F2010” This application note describes a simple open and closed-loop solution to control a sensored BLDC motor using a 28-pin dsPIC30F2010. The solution described uses the six-step commutation method described above to rotate and control the sensored BLDC motor. The hardware platform used is the PICDEM™ MC LV Board. With minor modifications, this application note can be used with any other hardware platform from Microchip (see the following section on motor control boards). The firmware, with minor modifications, can also be used with any motor control dsPIC30F device. The dsPIC30F2010 is ideally suited for this application due to on-chip availability of the motor control PWM, Hall sensor and QEI input modules and the ability of the DSP engine to compute multiple PID control loops. AN901, “Using the dsPIC30F for Sensorless BLDC Control” This application note describes how to implement sensorless control of a BLDC motor using the back EMF detection technique mentioned above. The back EMF voltage is attenuated and fed to the ADC inputs of the dsPIC® Digital Signal Controller (DSC). The high-speed ADC is then used to detect the zero crossing. This technique provides a very efficient control method for starting and running a sensorless BLDC motor with a minimum of components. The hardware used is a dsPICDEM™ MC1 Motor Control Development Board used in conjunction with either a dsPICDEM MC1L 3-Phase LowVoltage Power module or a dsPICDEM MC1H 3-Phase High-Voltage Power module. A dsPIC30F6010 device is used on the MC1 board in this application. The application note describes in detail how to start and run a sensorless BLDC motor. The control method, however, is general enough to work with any BLDC motor available in the market. Details are provided to assist you in configuring the 45 parameters needed to start and run the BLDC motor. All 45 of these user parameters can be set using the LCD and push buttons available on the MC1 development board. © 2005 Microchip Technology Inc. The firmware supports four different control modes and two starting modes. The hardware drive section is connected via a 37-pin D-type connector to either a high-voltage or low-voltage power module, which allows for BLDC motors that can operate in the voltage range from 10 to 400 VDC. The firmware can also be modified to work with any motor control dsPIC30F device. The dsPIC30F6010 is ideally suited for this application because it includes on-chip motor control PWM, Hall sensor and QEI input modules, along with a fast ADC required to sample the back EMF and detect zero crossing. A powerful DSP engine is available to compute multiple PID control loops. AN992, “Sensorless BDLC Motor Control Using dsPIC30F2010” This application note takes the application described in AN901 one step further and provides a low-cost, yet efficient, implementation on the smallest dsPIC30F motor control device available, namely the 28-pin dsPIC30F2010 with 12 Kbytes of program memory and 512 bytes of RAM. The hardware is simplified and uses the stand-alone PICDEM™ MC LV board as the hardware platform. Because the PICDEM MC LV board has no LCD and the dsPIC30F2010 has limited I/O, the 45 user parameters are set using a PC via the serial port and a HyperTerminal link. The PICDEM MC LV only supports voltages from 10 to 40 VDC, hence, only low-voltage BLDC motors are able to run on this board. However, the technique used in this application can be extrapolated. If higher voltage and current drivers are provided to support higher voltage and current, then a similar, but modified hardware can be used to run BLDC motors from 40V to 400V DC. The dsPIC30F2010 is ideally suited for this application. It includes on-chip motor control PWM, Hall sensor and QEI input modules, along with a fast ADC to sample the back EMF and detect zero crossing. A powerful DSP engine is available to compute multiple PID control loops. DS93001A-page 3 GS153 dsPIC30F HARDWARE MODULES TO CONTROL BLDC MOTORS Micorchip offers a number of hardware tools to help you implement your own BLDC motor control solution. FIGURE 3: PICDEM™ MC LV BOARD A two-lines by 20-character LCD is used along with four LEDs for display purposes. Four push buttons and two potentiometers are available for data entry and feedback. Spare analog and digital pins are made available on two header banks. No drivers are available on the board, so the MC1 board must be connected to an external drive system. A 37-pin D-type connector is used to connect the MC1 board to a dsPICDEM MC1H 3-Phase High-Voltage module (Figure 5) or dsPICDEM MC1L 3-Phase LowVoltage module (Figure 6). The D-type connector connects to external circuitry via opto isolators, thus allowing for a safe, electrically isolated drive to high voltage (400 VDC). The dsPICDEM MC1 Motor Control Development Board can be used with a dsPICDEM MC1H 3-Phase High-Voltage Power module to drive a high-voltage BLDC motor. Refer to the “dsPICDEM™ MC1 Motor Control Development Board User’s Guide” (DS70098) for full details on the capabilities and functions available on this board. PICDEM MC LV Board This board offers a self-contained, low-voltage platform (Figure 3) that supports all 28-pin motor control dsPIC30F devices, including the dsPIC30F2010, dsPIC30F3010 and the dsPIC30F4012. Hardware support for sensored, as well as sensorless, BLDC motors is available on this board. The factory shipped board supports a motor voltage of 24V; however, the hardware can support voltages from 10V to 40V at motor currents of up to 4 Amps. A serial port is available to communicate with an external source. An MPLAB® ICD 2 In-Circuit Debugger connection is available for programming and debugging purposes. A potentiometer is available for speed control, along with two switches for start/stop control. FIGURE 4: dsPICDEM™ MC1 MOTOR CONTROL DEVELOPMENT BOARD [Insert photo of dsPICDEM MC1 Board] On-board power drivers support direct drive to the BLDC motor. A low-side power resistor supplies current and Fault feedback to the dsPIC DSC. The “PICDEM™ MC LV Development Board User’s Guide” (DS51554) provides details on the use of this board. dsPICDEM MC1 Motor Control Development Board The dsPICDEM MC1 Motor Control Development Board (Figure 4), is a general purpose development board that uses a dsPIC30F6010 to control a wide range of motor control applications, including sensored and sensorless BLDC motors. Serial RS-232 and CAN ports are supported, along with an ICD 2 In-Circuit Debugger connection for programming and debugging purposes. DS93001A-page 4 © 2005 Microchip Technology Inc. GS153 FIGURE 5: dsPICDEM™ MC1H 3PHASE HV MODULE FIGURE 6: dsPICDEM™ MC1L 3-PHASE LV MODULE dsPICDEM MC1H 3-Phase High-Voltage Power Module dsPICDEM MC1L 3-Phase Low-Voltage Power Module The high-voltage module (Figure 5) connects to an MC1 board to form a high-voltage BLDC motor control system. The dsPICDEM MC1H 3-Phase High-Voltage Power module offers high-voltage isolation, as well as Fault, overcurrent and overvoltage protection. Each phase is monitored with fast current sensors and a robust latching network to disable the outputs in case any Fault condition occurs. This protection is necessary during code development and prevents accidental destruction of the drive circuitry due to inadvertent software issues. The low-voltage module (Figure 6) connects to an MC1 board to form a low-voltage BLDC motor control system. The dsPICDEM MC1L 3-Phase Low-Voltage Power module offers voltage isolation, along with Fault, overcurrent and overvoltage protection. Each phase is monitored with fast current sensors and a robust latching network to disable the outputs in case any Fault condition occurs. This protection is necessary during code development and prevents accidental destruction of the drive circuitry due to inadvertent software issues. The high-voltage module rectifies a single-phase wall input voltage of 110 VAC to generate a DC bus voltage of 165 VDC. Alternatively, it can also rectify an input wall voltage of 220 VAC to get a DC bus voltage of 330 VDC. This DC bus voltage is then converted to drive a 3-phase motor. The hardware can be used to drive ACIM and BLDC motors. For complete details on the features and capabilities of this module, refer to the “dsPICDEM™ MC1H 3-Phase High-Voltage Power Module User’s Guide” (DS70096). © 2005 Microchip Technology Inc. DC voltage is supplied externally from a power supply. This DC bus voltage is then converted to drive a 3-phase motor. The hardware can drive 3-phase low-voltage BLDC motors. For more details on the features and capabilities of this module, refer to the “dsPICDEM™ MC1L 3-Phase Low-Voltage Power Module User’s Guide (DS70097). DS93001A-page 5 GS153 DIFFERENT dsPIC30F BASED HARDWARE PLATFORMS FOR BLDC MOTOR CONTROL limited number of dsPIC DSC devices supported on a given hardware platform, you can build a daughter board based on the motor control dsPIC30F device needed for your application and plug it into the available socket or header pins on the PICDEM MC LV or MC1 development boards. You can use the Selection Summary (Table 1) to select different Microchip hardware platforms for specific application needs. Note that although there are a TABLE 1: SELECTION SUMMARY Supported dsPIC30F Devices Operating Voltage Range (VDC) Power Range (Watts) Application Note Sensored 10 to 40 50 to 200 AN957 PICDEM™ MC LV dsPIC30F2010 dsPIC30F3010 dsPIC30F4012 Sensored 40 to 400 Up to 800 AN957 MC1 and High-Voltage Power module dsPIC30F6010 Sensored 10 to 48 Up to 600 AN957 MC1 and Low-Voltage Power module dsPIC30F6010 Sensorless 10 to 40 AN992 PICDEM MC LV dsPIC30F2010 dsPIC30F3010 dsPIC30F4012 Sensorless 40 to 400 Up to 800 AN901 MC1 and High-Voltage Power module dsPIC30F6010 Sensorless 10 to 48 Up to 600 AN901 MC1 with Low-Voltage Power module dsPIC30F6010 Sensorless 40 to 400 As per user’s design AN992 PICDEM MC LV (user modified for high voltage) dsPIC30F2010 dsPIC30F3010 dsPIC30F4012 BLDC Motor Type Hardware Platform Recommendations ORDERING INFORMATION AND NUMBERS PICDEM™ MC LV Development Board: DM183021 Power Supply (optional): AC002013 Motor with cables: AC300020 “PICDEM™ MC LV Development Board User’s Guide” (DS51554) dsPICDEM™ MC1 Motor Control Development Board: DM300020 “dsPICDEM™ MC1 Motor Control Development Board User’s Guide” (DS70098) dsPICDEM™ MC1H 3-Phase High-Voltage Power Module: DM300021 “dsPICDEM™ MC1H 3-Phase High-Voltage Power Module User’s Guide” (DS70096) dsPICDEM™ MC1L 3-Phase Low-Voltage Power Module: DM300022 “dsPICDEM™ MC1L 3-Phase Low-Voltage Power Module User’s Guide” (DS70097) DS93001A-page 6 © 2005 Microchip Technology Inc. Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip’s products as critical components in life support systems is not authorized except with express written approval by Microchip. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart, rfPIC, and SmartShunt are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, PICMASTER, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active Thermistor, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel, Total Endurance and WiperLock are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2005, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona and Mountain View, California in October 2003. The Company’s quality system processes and procedures are for its PICmicro® 8-bit MCUs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. © 2005 Microchip Technology Inc. Advance Information DS93001A-page 7 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 India - Bangalore Tel: 91-80-2229-0061 Fax: 91-80-2229-0062 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 India - New Delhi Tel: 91-11-5160-8631 Fax: 91-11-5160-8632 Austria - Weis Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark - Ballerup Tel: 45-4450-2828 Fax: 45-4485-2829 China - Chengdu Tel: 86-28-8676-6200 Fax: 86-28-8676-6599 Japan - Kanagawa Tel: 81-45-471- 6166 Fax: 81-45-471-6122 France - Massy Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 China - Fuzhou Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 Germany - Ismaning Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Alpharetta, GA Tel: 770-640-0034 Fax: 770-640-0307 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 China - Shunde Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 China - Qingdao Tel: 86-532-502-7355 Fax: 86-532-502-7205 Malaysia - Penang Tel:011-604-646-8870 Fax:011-604-646-5086 Philippines - Manila Tel: 011-632-634-9065 Fax: 011-632-634-9069 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 England - Berkshire Tel: 44-118-921-5869 Fax: 44-118-921-5820 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 Taiwan - Hsinchu Tel: 886-3-572-9526 Fax: 886-3-572-6459 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 San Jose Mountain View, CA Tel: 650-215-1444 Fax: 650-961-0286 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 04/20/05 DS93001A-page 8 © 2005 Microchip Technology Inc.