P. 1
An 10661

An 10661

|Views: 97|Likes:
Publicado porNabeel Tanneh

More info:

Published by: Nabeel Tanneh on Sep 14, 2010
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/14/2010

pdf

text

original

AN10661

Brushless DC motor control using the LPC2141
Rev. 01 — 17 October 2007 Application note

Document information Info Keywords Abstract Content LPC2148, ARM7, Brushless DC motor control This application note demonstrates the use of a low cost ARM7 based LPC2141 microcontroller for sensored brushless DC motor control.

Contact information For additional information. please visit: http://www. All rights reserved.V.com AN10661_1 © NXP B. please send an email to: salesaddresses@nxp.com For sales office addresses.nxp. 2007. 01 — 17 October 2007 2 of 18 .NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 Revision history Rev 01 Date 20071017 Description Initial version. Application note Rev.

The LPC2141 is based on a 16/32-bit ARM7 CPU combined with embedded high-speed flash memory. fans. It may be used as a starting point for motor control system designers using an NXP LPC2000 microcontroller. A superior performance as well as their tiny size. electric bikes. low power consumption and a blend of on-chip peripherals make these devices ideal for a wide range of applications. mixers. Main reason to use the LPC2141 for this reference design (see Fig 1) is the on-chip USB interface. Brushless DC (Direct Current) motors are most commonly used in easy to drive. robots. Application note Rev. Control uC Gate driver MOSFET driver PWM Signals Speed Command Motor Sensors • Speed • Current • Position Fig 1. Controller (green) and Power (blue) demo boards for BLDC motor application AN10661_1 © NXP B. make them particularly suitable for industrial control.2007. food processors. All rights reserved. electric pumps. the reference design in this application note shows a complete motor control system solution from NXP Semiconductors in terms of NXP Microcontroller – NXP MOSFET driver – NXP MOSFET. toothbrushes. -seats. blenders. vacuum cleaners. Various 32-bit timers.V. printers.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 1. razors. Applications: Air conditioners. 01 — 17 October 2007 3 of 18 . -doors. coffee grinders. sun roofs. etc. 10-bit ADC and PWM features through output match on all timers. -windows. Besides the use of an LPC2141. which is used to communicate with a PC GUI (Graphical User Interface) controlling the motor. Introduction This application note demonstrates the use of a low cost NXP Semiconductors LPC2141 microcontroller for brushless DC motor control. They have become widespread and are available in all shapes and sizes from large-scale industrial models to small motors for light applications (such as 12 V BLDC motors). variable speed and long life applications.

Fig 2. Brushless DC motor AN10661_1 © NXP B. the electromagnets do not move. BLDC motors do not use brushes for commutation. the permanent magnets rotate and the three-phase stator windings remain static (see Fig 2). All rights reserved. The speed and torque of the motor depend on the strength of the magnetic field generated by the energized windings of the motor. In order to do this. And in addition. making them useful in applications where space and weight are critical factors. They offer longer life and less maintenance than conventional brushed DC motors. the brush-commutator assembly is replaced by an intelligent electronic “controller”. Brushless DC (BLDC) motors are rapidly gaining popularity. Therefore adjusting the rotor voltage (and current) will change the motor speed.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 2.2007. As the name implies. Application note Rev. Some other advantages over brushed DC motors and induction motors are: better speed versus torque characteristics. instead. which depend on the current through them. but is using a solid-state circuit rather than a commutator/brush system. This gets around the problem of how to transfer current to a moving rotor. 01 — 17 October 2007 4 of 18 . they are electronically commutated. Brushless DC motor fundamentals Brushless DC motors consist of a permanent magnet rotor with a three-phase stator winding. instead.V. Typically three Hall sensors (see Fig 2) are used to detect the rotor position and commutation is based on these sensor inputs. The controller performs the same power distribution as found in a brushed DC motor. In a brushless DC motor. the ratio of torque delivered to the size of the motor is higher. noiseless operation and higher speed ranges.

) In our design we use Hall effect sensors (some use a rotary encoder. the controller needs some means of determining the rotor's orientation/position (relative to the stator coils. Three phase bridge and sensor input by active switch table Vm Vm Vm PWM1 Q1 OFF Q2 OFF Q3 PWM1 Q1 OFF Q2 OFF Q3 OFF Q1 OFF Q2 PWM3 Q3 OFF Q4 OFF Q5 PWM3 Q6 OFF Q4 PWM5 Q5 OFF Q6 OFF Q4 PWM5 Q5 OFF Q6 Vm Vm Vm OFF Q1 OFF Q2 PWM3 Q3 OFF Q1 PWM2 Q2 OFF Q3 OFF Q1 PWM2 Q2 OFF Q3 PWM4 Q4 OFF Q5 OFF Q6 PWM4 Q4 OFF Q5 OFF Q6 OFF Q4 OFF Q5 PWM6 Q6 Fig 4. This divides a rotation into six phases (3-bit code). Application note Rev. Therefore. How to control a brushless DC motor 3. others sense the back EMF in the un-driven coils) to directly measure the rotor's position. All rights reserved.1 Rotation A BLDC motor is driven by voltage strokes coupled with the given rotor position. The three sensors have a 60° relative offset from each other. Each sensor element outputs a high level for 180° of an electrical rotation. 01 — 17 October 2007 5 of 18 . Commutator Armature Windings Hall Sensor code 101 Phase # 1 2 3 4 5 6 Active drive Q1 (PWM1) Q1 (PWM1) Q3 (PWM3) Q3 (PWM3) Q2 (PWM2) Q2 (PWM2) Q6 (PWM6) Q5 (PWM5) Q5 (PWM5) Q4 (PWM4) Q4 (PWM4) Q6 (PWM6) Q1 Q2 Q3 100 Three phase bridge 110 010 Q4 Q5 Q6 011 001 Fig 3.V. These voltage strokes must be properly applied to the active phases of the three-phase winding system so that the angle between the stator flux and the rotor flux is kept close to 90° to get the maximum generated torque.2007. Motor rotation Q1 to Q6 switch sequence AN10661_1 © NXP B. Fig 3 and Fig 4 show the relationship between the Hall sensor input code and the required active motor windings.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 3. and a low level for the other 180°.

1 Current sense Low cost motor current measuring can be implemented (like in this application note) using a current sensing resistor between the switching MOSFETs and ground (see also block diagram Fig 6). before being fed to an ADC input of the microcontroller. Vm duty cycle PWM1 Q1 Q2 Q3 Q4 Q5 Q6 Fig 5.2007.3 Motor feedback 3. All rights reserved. By having the Hall sensor signals available at the LPC2141 microcontroller input pins. Another possibility is to connect the sensor signals to Timer Capture inputs of the microcontroller. they can easily be “misused” for exact motor speed (RPM) measurement. The small voltage appearing across the current sense resistor is filtered and amplified. In case the motor is in a stalled position. 01 — 17 October 2007 6 of 18 . One possible way for example is to connect the Hall sensor outputs to external interrupt input pins of the microcontroller.2 RPM measurement For closed loop speed control the ‘real’ motor speed must be known. This way the exact time is measured between every rotation phase change. Due to this exceptional increase in current. avoiding any damages (switch into ‘coast’ mode). the ADC values will reach a current limit level that will cause the system to shut down. When using PWM outputs to control the six switches of the three-phase bridge. By simply counting the number of interrupts within a certain exact time (for example 1 second) it’s easy to calculate the exact motor speed. Like in this application note measuring the motor current is often used as a safety. This results in having an interrupt every 60° degrees of an electrical rotation.V. the current will increase dramatically. Application note Rev. one can control the speed of the motor. AN10661_1 © NXP B. PWM speed control 3.3. variation of the motor voltage can be achieved easily by changing the duty cycle of the PWM signal (see Fig 5).2 Speed control By simply varying the voltage across the motor.3.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 3. 3.

The ‘no-load’ speed is 5900 RPM at 24 V input. All rights reserved. I2C.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 4. The maximum continuous current is 6 A. used code size is 6 kB (including USB communication) Unused peripherals: UART.2 Motor selection For this application note a 120 W Maxon EC-40 motor is used. To give an impression of the possibilities this microcontroller offers. RTC. 8 kB of on-chip static RAM and 32 kB of on-chip flash program memory. Application setup FET drivers PWM PWM PWM Q1 Q2 12V Q3 BLDC Motor M Q4 Q5 Q6 HALL Sensors PWM PWM N S S N USB USB PWM CAP CAP CAP GPI GPI GPI Gain Amp AIN Im LPC2141 Fig 6. Ethernet.LPC2000 family members are available. for this application note: − − − CPU load is less than 5 %. mainly because of its sixchannel PWM timer and the on-chip USB interface.2007. 01 — 17 October 2007 7 of 18 .V. It offers high speed (60 MHz) 32-bit CPU performance.or additional specific peripheral (CAN. Application note Rev.) requirements. AN10661_1 © NXP B. Available in an LQFP64 package it is a small and cheap member of NXP’s ARM7 based LPC2000 family. For larger memory . etc. SPI/SSP. Block diagram 4.1 Using the LPC2141 For this application note the LPC2141 is used (see Fig 6). a broad selection of (compatible) NXP . 2 x Timer and 5 x A/D input Over 30 unused GPIO pins available for user’s application 4.

The latter is already reduced thanks to a soft-acceleration mechanism (in small steps up towards the required speed) implemented in software.3 Amps and a peak current of 137 Amps and is available in an SMD SOT669 (LFPAK) package (see Fig 7).V.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 4.4 MOSFET driver selection MOSFET drivers are needed to raise the controller’s output signal (driving the MOSFET) to the motor supply voltage level. which is supplied with 24 V. 01 — 17 October 2007 8 of 18 . as shown in Fig 7. Application note Rev. which makes it ideal for using it to control a three-phase bridge.5 Adjusting motor speed The LPC2141 has an on-chip six-channel (32-bit) PWM timer. M2 = 2 x LFPAK: PH20100S Qa. All rights reserved.supplied motor. Vcc Dbst Cbst Qa M1 SOT669 (LFPAK) package To motor winding M1. For a 24 V . Values for desired motor speed are received via the USB interface AN10661_1 © NXP B. In this application note we selected the PMD3001D and the PMGD400UN from NXP Semiconductors. Qb = 2 x PMD3001D M1s Dbst = 1 x PMGD400UN = 1 x BAS16VY 3V6 PWM_HS Qb M1s M2 PWM_LS Fig 7.3 MOSFET selection The NXP Semiconductors PH20100S N-channel TrenchMOS logic level FET is used for this system. while the drain current needs to be high enough to deal with the motor (starting) current. Simplified MOSFET – driver diagram for low and high side driver 4.2007. It is chosen in relation with the selected motor. the MOSFET VDS needs to be at least 40 V. The PH20100S can deal with a maximum drain current of 34. 4.

13 P0.25 CAP0.18 P1.19 P0.30 P1.17 P0.20 P1.2 / P0.16 P0.6 PWM2 / P0. Hardware schematics – controller part .3 P0.8 PWM6 / P0. All rights reserved.7 19 21 22 26 27 29 30 31 PWM_1 PWM_3 PWM_2 LPC2141 PWM4 / P0.0 PWM3 / P0.24 P1.31 Vbat Vref Vdd Vdd Vdd Vdda 9 13 14 15 17 Imotor USB 6 5 3 2 4 1 5V LD1117S33 IN OUT GND 3V3 49 63 23 43 51 7 + 10u + 100n 10u XTAL1 6 18 25 42 50 59 Vss Vss Vss Vss Vss Vssa XTAL2 62 61 12MHz RTXC1 RTXC2 3 5 22p 22p 100n 100n 100n AN10661 Fig 8.27 P1. 01 — 17 October 2007 9 of 18 AN10661_1 © NXP B.2 P0.1 P0.23 46 47 53 54 55 1 2 58 HAL_A HAL_B HAL_C PWM_5 Brushless DC motor control using the LPC2141 AD0.29 P1.12 P0. NXP Semiconductors 32 28 64 24 56 52 60 20 47K 3V3 57 100n 16 12 8 4 48 44 40 36 P1. Hardware schematics Application note Rev.3 / P0.21 P1.5 P0.19 P1.11 P0.22 P0.28 P1.30 P0.25 P1.15 P1.29 CAP0.26 P1.20 PWM5 / P0.0 / P0.17 P1.16 P1.5.18 P0.22 P1.4 / P0.V.10 P0.28 CAP0.23 33 34 35 37 38 39 41 45 PWM_4 PWM_6 47K 3V3 33e 11 10 33e 18p 1K5 18p DD+ P0.9 P0.4 P0.31 RSTn PWM1 / P0.14 P0. 2007.21 P0.

24V 5V BAS16 10K 1K 3V6 PMD3001D 1K BAS21 PWM_1 PMBF170 W1 W2 W3 + A B C Motor windings 5V HAL_A HAL_B HAL_C Q2 PH20100S 100n 10E Q1 PH20100S Q3 PH20100S Same as Q1 FET driver Same as Q1 FET driver PWM_3 PWM_2 5V 10K 10K 10E PMGD400UN PMD3001D PWM_4 BAS21 Q5 PH20100S Q4 PH20100S Q6 PH20100S Hall Sensor Same as Q4 FET driver Same as Q4 FET driver PWM_6 Brushless DC motor control using the LPC2141 PWM_5 LM358 + 1K 10K 100n 0.01E 1K 100K 10u BAS21 Imotor + AN10661 © NXP B. All rights reserved. 01 — 17 October 2007 10 of 18 AN10661_1 NXP Semiconductors 12 . Hardware schematics – power / motor part .V. Fig 9.Application note Rev. 2007.

01 — 17 October 2007 11 of 18 . 6. For more information please check website of Keil. sending motor current and measure and send calculated RPM Read and ‘guard’ the motor current. 6. USB driver and the Motor Control application code. Fig 10. so it needs the Microsoft . V3. using 10-bit ADC input Use Timer 1 to generate a system-interrupt every 10 milliseconds.3 BLDC Motor Control code The example software is written in C language and compiled using Keil’s uVision (ARM7 RealView.1 User interface A WindowsⓇ user interface is available to control the BLDC demo (see Fig 10). All rights reserved.EXE” and is developed in Microsoft Visual Basic 2005 Express.V.0) free demo compiler. Motor commutation by reading Hall sensors (using Timer 0 input capture pins). AN10661_1 © NXP B. Application note Rev. The program is called “BLDC_USBGUI.2 USB device driver For USB communication Keil’s LPC2148 USB HID (human interface device) software example is used. The program offers easy control of speed and readouts of motor current and RPM.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 6. It performs following main tasks: • • • • USB interface for receiving desired speed.NET framework installed at your PC. set the PWM Timer duty cycle for speed and drive Q1-Q6 MOSFET outputs for control of the three-phase bridge. Windows user interface screen 6. Software The software for the complete demo contains three main parts: User Interface (GUI). 2007.

h). } // LPC214x definitions // Host is asking for an InReport // send measured motor speed (low byte) // send measured motor speed (high byte) // send potm value for debugging // OutReport received from USB host // New desired speed value received // ADC0 Initialization // 10 msec tick // PWM Timer Initialization // USB Initialization // USB Connect // Loop forever // Check motor overcurrent // // // // // // // // // disable all interrupts! Q1 off Q2 off Q3 off Q4 off Q5 off Q6 off enable PWM0-PWM6 match latch (reload) wait for a RESET © NXP B. HES_Init(). All rights reserved. T1_Init().c – pwm.C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 AN10661_1 #include <LPC214x.. unsigned int RPM. 7. USB_Connect(1). void GetInReport(unsigned char *rep) { rep[0] = fRPM. PWMLER = 0x7F. while (1) .c timer1.h" unsigned char actualSpeed = 0.H> #include "bldc. rep[2] = AD0DR4 >> 8.c – adc. all listed below.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 7. The USB modules from Keil’s HID example are not listed in this application note.c) and a header file (bldc. PWMMR6 = 0. PWM_Init().1 BLDC. 01 — 17 October 2007 12 of 18 . PWMMR5 = 0.V. PWMMR4 = 0. Source code listings The motor control part consists of five modules (bldc. } void SetOutReport(unsigned char *rep) { if (rep[0] < 101) desiredSpeed = rep[0]. PWMMR2 = 0. For LPC2141 configuration the standard startup code from Keil was used and set as CCLK = PCLK = 60 MHz. unsigned char desiredSpeed = 0. } int main (void) { ADC0_Init(). rep[1] = fRPM >> 8. PWMMR3 = 0. while (1) { if (((AD0DR4 >> 8) & 0xFF) > MAX_Im) { VICIntEnClr = 0xFFFFFFFF.fRPM.c – hsensor. 2007. PWMMR1 = 0. Application note Rev. USB_Init().

timer runs at 60 MHz / 20 = 3 MHz prescale counter to 0 reset timer to 0 -> PMW base frequency = 3 MHz / 100 = 30 KHz Match 1 for Q1 (off) Match 2 for Q2 (off) Match 3 for Q3 (off) Match 4 for Q4 (off) Match 5 for Q5 (off) Match 6 for Q6 (off) reset TC on MR0 enable PWM1 . 01 — 17 October 2007 13 of 18 . PWMLER = 0x7F. } } } // calculate motor speed // filter it 7. see errata ADC. PWMPC = 0. PWMTCR = 0x09. PWMMR6 = 0.3 PWM. RPM = 10000000 / T0CR0. PWMMR3 = 0.V.PWM6 match latch (reload) enable PWM mode and start timer AN10661_1 © NXP B. PWMMR4 = 0. 2007. All rights reserved. } // P0.2 ADC. PWMMCR = 0x00000002. PWMTC = 0. fRPM = ((fRPM * 15) + RPM) / 16. } // select PWM1-4 and PWM6 // select PWM5 // // // // // // // // // // // // // // prescaler to 20.h> void PWM_Init(void) { PINSEL0 |= 0x000A800A.PWM6 outputs enable PWM0 .h> void ADC0_Init(void) { PINSEL1 |= 0x00040000. // every 10 mseconds if (actualSpeed > desiredSpeed) actualSpeed --. else if (actualSpeed < desiredSpeed) actualSpeed ++.2 7. PWMMR2 = 0. PWMMR0 = 100. select AIN4 // start burst mode now. PWMPCR = 0x7E00. AD0CR = 0x00200F10. Application note Rev. PWMMR5 = 0.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 if (f_10ms) { f_10ms = 0. PWMMR1 = 0. AD0CR |= 0x00010000.4 // initialise ADC0.25 = AIN0. PWMPR = 20. PINSEL1 |= 0x00000400.C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <LPC214x.C 1 2 3 4 5 6 7 8 #include <LPC214x.

break. 2007. PWMMR3 = 0. PWMMR3 = 0. All rights reserved. PWMMR4 = 0. PWMMR4 = 0. PWMMR5 = 0.18.4 HSENSOR. break. PWMMR6 = 0.h" __irq void T0_Isr(void) { T0TC = 0.C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 AN10661_1 #include <LPC214x. PWMMR2 = actualSpeed. 01 — 17 October 2007 14 of 18 . PWMMR5 = 0.H> #include "bldc. P0. PWMMR2 = 0. PWMMR3 = actualSpeed. PWMMR5 = actualSpeed. case 2: PWMMR1 = 0. PWMMR6 = 0. case 5: PWMMR1 = actualSpeed. break.V. PWMMR4 = 0. PWMMR4 = actualSpeed. PWMMR2 = 0. case 3: PWMMR1 = 0.20 // phase 6: 001 // phase 4: 010 // phase 5: 011 // phase 2: 100 // phase 1: 101 // phase 3: 110 © NXP B. PWMMR2 = 0. PWMMR4 = 0.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 7. PWMMR6 = 0. PWMMR2 = 0. PWMMR3 = actualSpeed. case 6: PWMMR1 = 0. PWMMR3 = 0. PWMMR6 = actualSpeed. PWMMR5 = actualSpeed. break.19 and P0. PWMMR4 = actualSpeed. case 4: PWMMR1 = 0. // LPC214x definitions // Reset timer // read Hall sensor inputs P0. PWMMR3 = 0. switch ((IO0PIN >> 18) & 7) { case 1: PWMMR1 = actualSpeed. Application note Rev. PWMMR2 = actualSpeed. PWMMR5 = 0. PWMMR5 = 0. PWMMR6 = actualSpeed. break.

__irq void T1_Isr(void) { f_10ms = 1. 0. timer count = 16. 1.V. T0PR T0MR0 T0MCR T0CCR T0TC T0TCR = = = = = = 60.. enabled VICIntEnable |= 0x20.3 // pre 60. break.5 TIMER1.P0. timer runs at 60 MHz / 60 = 1 MHz // = 1 sec / 1 us // Capture on both edges and enable the interrupt // Reset timer // start timer // reset flags // enable PWM0 . 1000000. // // // // // = 10 msec / 16.28. 3. default: break.30. enabled VICIntEnable |= 0x10. VICVectAddr = 0. // P0. 0x0FC7. 01 — 17 October 2007 15 of 18 .. 2007.67 nsec reset Timer counter enable Timer Application note Rev. T1TCR = 1. } T0IR = 0xFF.CAP0. VICVectCntl1 = 0x24.H> char f_10ms = 0.0.67 nsec Interrupt on Match0. } © NXP B. // Channel#4 is the Timer 0 PINSEL1 |= 0x3A000000.29 as CAP0.. T1MCR = 3.. reset timer on match Pclk = 60 MHz.PWM6 match latch (reload) // Acknowledge interrupt by reseting VIC 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 // invalid 74 } 7.C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 AN10661_1 #include <LPC214x. T1IR = 0x01. VICVectCntl2 = 0x25. // Channel1 on Source#4 .NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 PWMMR6 = 0.P0. VICVectAddr = 0. All rights reserved. } // LPC214x definitions // Timer 1 ISR every 10 msec // toggles every 10 mseconds // reset interrupt flag // reset VIC void T1_Init(void) { VICVectAddr2 = (unsigned int) &T1_Isr. } void HES_Init(void) { VICVectAddr1 = (unsigned int) &T0_Isr. // Channel#5 is the Timer 1 T1MR0 = 600000.CAP0.2. // Channel2 on Source#5 . PWMLER = 0x7F. T1TC = 0.

extern void PWM_Init(void). SetOutReport(unsigned char *rep). extern extern extern extern void void void void GetInReport(unsigned char *rep). extern char f_10ms. AN10661_1 © NXP B. Application note Rev. All rights reserved.H 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #define MAX_Im 0xF0 // max motor current limit extern unsigned char actualSpeed.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 7. extern void T1_Init(void).6 BLDC.V. extern void ADC0_Init(void). extern void HES_Init(void). USB_Connect(unsigned int con). 01 — 17 October 2007 16 of 18 . 2007. USB_Init(void).

at any time and without notice. aircraft. 8. Suitability for use — NXP Semiconductors products are not designed. nor in applications where failure or malfunction of a NXP Semiconductors product can reasonably be expected to result in personal injury. as to the accuracy or completeness of such information and shall have no liability for the consequences of use of such information. NXP Semiconductors accepts no liability for inclusion and/or use of NXP Semiconductors products in such equipment or applications and therefore such inclusion and/or use is for the customer’s own risk. Applications — Applications that are described herein for any of these products are for illustrative purposes only.NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 8. service names and trademarks are property of their respective owners. space or life support equipment. 01 — 17 October 2007 17 of 18 . Right to make changes — NXP Semiconductors reserves the right to make changes to information published in this document.V. which may result in modifications or additions. 2007. All rights reserved. This document supersedes and replaces all information supplied prior to the publication hereof. including without limitation specifications and product descriptions. expressed or implied. NXP Semiconductors does not give any representations or warranties as to the accuracy or completeness of information included herein and shall have no liability for the consequences of use of such information. death or severe property or environmental damage. military. AN10661_1 © NXP B. authorized or warranted to be suitable for use in medical.3 Trademarks Notice: All referenced brands. Application note Rev. Legal information 8.1 Definitions Draft — The document is a draft version only. 8.2 Disclaimers General — Information in this document is believed to be accurate and reliable. NXP Semiconductors makes no representation or warranty that such applications will be suitable for the specified use without further testing or modification. The content is still under internal review and subject to formal approval. NXP Semiconductors does not give any representations or warranties. product names. However.

...........3....................6 RPM measurement ...........C ........... 3....................................................V............................1 3.2 3...3 4.............com Date of release: 17 October 2007 Document identifier: AN10661_1 .............................. 4........................8 Controlling speed and direction .1 4.......13 PWM............2 8...........................17 Contents.6 Application setup ................................... email to: salesaddresses@nxp.............................5 Rotation .......... have been included in the section 'Legal information'......7 Using the LPC2101 ..........2 4........6 Current sense.............................................7 MOSFET selection ..........11 Source code listings ....................... 2...15 BLDC...................12 ADC...........................................12 BLDC............................6 8..........5 Speed control .......C.........................17 Definitions.17 Disclaimers...........13 HSENSOR..3 Brushless DC motor fundamentals ............2 7....1 3................................. 2007........3 9...........8 Hardware schematics ............................................................ Contents 1.........6 Motor feedback.................5 7................14 TIMER1..................................C........................................................................................2 4......... © NXP B................. For more information.. 3.....................................................................C ......................................................nxp...4 7...........................................................................7 Motor selection ..........4 How to control a brushless DC motor ............... 8............................. 7... 7....18 Please be aware that important notices concerning this document and the product(s) described herein..NXP Semiconductors AN10661 Brushless DC motor control using the LPC2141 9...............................9 Software .............................8 MOSFET driver selection ...3 7...................1 8.....................................com For sales office addresses..................................5 5.........C ...............16 Legal information ................................................................4 4... Introduction ..3.................. 6...... All rights reserved....H ..............1 7.....17 Trademarks .........3 3......... please visit: http://www.....

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->