AN414 Application note Controlling a brushed DC motor with an ST6265C or ST6260C MCU Introduction Variable speed drives have become widespread in the home appliance field. The most classical way to achieve it is to use an AC universal motor with TRIAC and a specific circuit which controls the TRIAC firing angle. We chose rather to use a permanent magnet DC motor driven by a chopper. The chopper is driven by a high frequency PWM signal. Controlling the PWM duty cycle is equivalent to controlling the motor voltage, which in turn adjusts directly the motor speed. Why did we make such a choice? ■ The main reason is the need of a speed sensor and a closed loop regulation for the universal motor. For the permanent magnet DC motor, the speed is almost proportional to the motor supply voltage. Therefore it is sufficient to control the motor voltage (through duty cycle adjustment) if a 10% speed accuracy is sufficient. This saves the expensive speed sensor. ■ The DC motor with chopper has higher efficiency, as there are no 50 Hz copper and iron losses, due to lower current ripple. ■ The DC operation allows to reduce the acoustic noise, especially at 100 Hz. Figure 1. Block diagram DC Motor M ST6265C IGBT MS19688V1 Table 1 lists the microcontroller products concerned by this application note. . Table 1. February 2013 Applicable products Type Part number Microcontroller ST6265C, ST6260C Doc ID 1876 Rev 2 1/14 www.st.com AN414 Figure 2. AC universal motor versus permanent magnet DC motor Imotor Imotor ΔΙ ΔΙ t t N L M M MS19689V1 The DC motor has a lower current ripple and therefore higher efficiency. 2/14 Doc ID 1876 Rev 2 AN414 1 Principle Principle The drive is supplied from the rectified mains voltage, and consists of a chopper driven by a PWM signal generated by the ST6265C microcontroller. The motor voltage control is achieved by measuring the rectified mains voltage with the analog-to-digital converter present on the ST6265C MCU and adjusting the PWM signal duty cycle accordingly: the voltage seen by the motor is the product of the supply voltage by the PWM duty cycle. So the motor speed can be stable even if the mains voltage ripple is high, as the MCU corrects the duty cycle according to this ripple. This avoids the use of a speed measurement device and a speed regulation loop. If this voltage measurement / duty adjustment process is carried out often enough, it also results in reducing motor current ripple, and therefore copper and motor iron losses, thus improving motor efficiency. The ripple period being 10 milliseconds (for 50 Hz mains), the later process must occur at least every millisecond to get a large ripple reduction. In our example, the voltage compensation loop lasts 380 micro-seconds. This drive also implements a power limitation: the motor current is measured by the analog-to-digital converter of the ST6265C MCU, and is used, together with the DC mains voltage, to compute the electrical power taken up by the motor. If it exceeds the maximum programmed power, the PWM signal duty cycle is reduced in real time by the ST6265C to stay below this maximum. This limitation requires only a few discrete components used to measure the current (2 resistors, a diode and a capacitor make up a peak current detector), it is otherwise fully software. Our application features a 300 watts maximum power, but this value can be easily adjusted by modifying a data table in the program, therefore allowing a very short design modification time if the drive must be used with various motors. 2 Why use a microcontroller? The classical implementation of such a high frequency chopper usually involves an application-specific circuit, and some analog circuitry to implement the additional features such as voltage compensation, power limitation or other. At first look, a microcontroller should reduce the overall cost of the electronics, as a single chip would ideally replace several chips. The real world is not so simple: the ST6265C outputs the PWM signal with a 5 volts level, so a buffer is needed to drive the IGBT with 15 volts, which takes 2 or 3 signal transistors. The MCU must be supplied with a voltage between 3 and 6 volts, and the 15 volts must be generated, so we need a small auxiliary supply to extract 5 and 15 volts from the mains. In addition, the MCU cannot generally replace the fast transistor protection needed for the IGBT, as its response time is in the range of 10 micro-seconds, while less than 1 micro-second is required. In conclusion, the MCU approach comes out at the same price, or slightly more expensive than the analog one, at least if we only account for components costs. We must, however, consider the overall system cost, not only the components cost of one function. Three factors at least should be considered: 1. In many cases, the appliance driven by the motor includes some kind of user interface: buttons, potentiometers, LED displays, even LCD displays. If the analog approach is used, more circuitry will be needed to interface them with the motor drive. With the Doc ID 1876 Rev 2 3/14 Why use a microcontroller? AN414 ST6265C MCU approach, the MCU itself can sense the buttons, potentiometers, drive LEDS... In some existing appliances, the analog approach is used in conjunction with a microcontroller, the latter being dedicated to the user interface. This is obviously a waste, as one ST62 MCU could take care of both tasks. If we consider the case of LCD displays, which are becoming more and more popular, a dedicated LCD driver circuit is generally used to interface them to a micro. We have implemented a software LCD drive function in the ST6265C MCU, using its free output pins; the ST6265C MCU can at the same time run the motor, drive the LCD and sense the user speed demand (in our case, two buttons "faster" and "slower"). (Cf. ref. [4] page 12). 4/14 2. Time-to-market and design time must be considered: the ST6265C MCU software contains all the characteristics of the application; it is much faster, if the application must be modified, to modify software than hardware especially when OTP parts are used for volume production. We have implemented a software motor power limitation: the motor characteristics are known by the software in the form of a look up table. If the application must accommodate a different motor type, it is very quick to modify the data table in the software. Most modifications of the application can be achieved by simple software modifications. If the ST6265C MCU replaces an ASIC, the time and money saved when it is necessary to modify the initial design goes without saying. The ST62 MCU can also be used to customize the application: to limit the stock inventory, several applications, for example a low-end and high-end vacuum cleaner can use the same electronics board, with the same MCU, but the MCUs have different softwares, or the software is programmed into the ST62T65Cxx order codes (OTP version of ST6265C) at the end of the board assembly line. 3. The MCU lets you do things that are not possible otherwise. Simple examples are: a) Execute pre-programmed sequences of motor speeds, diagnostic faults and alert the user (with temperature sensors, speed sensors, ... or sometimes without them, by deducing motor speed from current, or temperature from cumulated current ...). b) Store in non-volatile memory (EEPROM) user settings which must be saved when power is turned off. Doc ID 1876 Rev 2 AN414 3 Application description Application description Figure 3. Permanent magnet DC motor control with ST6265C MCU and IGBT M Supply 15 V IGBT 5V 0V Buffer Vdd Ud PWM MCU Vss User interface Ic Peak current detectoe MS19690V1 The power part of the hardware is a bridge rectifier, an input filter capacitor, and the chopper. This converter drives the permanent magnet DC motor. The chopper switch is an IGBT. The control part of the hardware is made of the ST6265C MCU, the user interface and the power interface. The latter is made of a low-power supply (5 volts for the MCU and 15 volts for the IGBT gate), a level shifter to interface MCU and IGBT, a peak current detector and a resistor bridge to measure the loop DC voltage, Ud. The complete schematic with component values is shown in the Permanent magnet motor drive. 3.1 What microcontroller to use? The MCU generates a 5 volts PWM signal which drives the IGBT and permits to control the average voltage across the motor, and consequently the motor speed through duty cycle adjustment. On the MCU are also implemented software functions such as a line voltage compensation and a motor power limitation described later. In order to implement these functions, the MCU should include the following special features: ● PWM timer: it must be autoreload to leave the CPU free for other tasks, and fast to obtain high switching frequencies. ● Analog-to-digital converter, necessary to measure the DC voltage and the motor current. ● Good noise immunity to withstand the chopper and brush sparks proximity. ● A watchdog for safe operation Doc ID 1876 Rev 2 5/14 Application description AN414 We used the ST6260C / ST6265C: it is a low-end 8-bit MCU with 20 pins (or 28 pins respectively), depending upon the I/O request of the user interface, with an internal analog-to-digital converter and a fast PWM generator. Figure 4. ST6260C / ST6265C Block diagram EEPROM 128 RAM 128 PWM A/D TIMER CONVERTER TIMER 8 BIT DATA BUS WATCHDOG SPI TIMER ROM 4K 8 BIT CPU PORT A PORT B PORT C 20 or 28 pins package MS19692V1 3.2 PWM control The PWM feature is required to control the average voltage on the motor and therefore its speed. The autoreload timer of the ST6265C is used to achieve the PWM control (See Figure 5: PWM timer operation (Operation of the Autoreload PWM timer: The CPU controls the period with the Reload register, and the duty cycle with the Compare register.)). At each end of count, it reloads itself without CPU operation. The CPU is then available for other tasks after it has programmed the frequency and duty cycle of the PWM signal. ● 6/14 The duty cycle can be adjusted by software from 0 to 100%. The maximum frequency is: 31.25 kHz with a resolution of 256 steps (0.4% resolution). For our application, we chose a frequency of 8 kHz. Doc ID 1876 Rev 2 AN414 Application description Figure 5. PWM timer operation (Operation of the Autoreload PWM timer: The CPU controls the period with the Reload register, and the duty cycle with the Compare register.) SWITCHING PERIOD TIMER 255 COMPARE REGISTER t 000 DUTY CYCLE PWM OUTPUT MS19693V1 3.3 Voltage compensation Using such feature on a Permanent magnet DC motor, the speed is kept almost constant by keeping the motor voltage constant even if the rectified mains voltage is strongly swinging across the filter capacitor. So a closed loop speed control is not necessary and the speed sensor is saved. A compensation feature is implemented in order to: ● Obtain a motor speed insensitive to mains voltage variations (static performance), ● Reduce acoustic motor noise and dissipation by reducing the motor current ripple (dynamic performance). The average motor voltage Vmot must be kept constant. The duty cycle d is modulated as a function of the direct voltage Ud around a reference point given by: ● User request duty cycle (d0), ● Nominal direct voltage (Udnom). Vmot = d x Ud Vmot = constant = d0 x Udnom To achieve this function, Ud is measured using the A/D converter of the ST6265C and quantized on 32 levels, and d0 is quantized on 16 levels. A duty cycle correction is picked up from a look-up table versus Ud and d0. Then the correction is added to d0 and the sum d is loaded in the PWM timer register. The table could also contain values chosen specifically for the application. In order to reduce motor current ripple, the control loop must be fast, so as to minimize the time between voltage reading and duty cycle updating. Doc ID 1876 Rev 2 7/14 Application description AN414 Our compensation algorithm takes 380 µs, so in one Ud ripple cycle (10 ms for a 50 Hz line), the correction is made approximately 26 times. Figure 6 shows results obtained for the static performance of the compensation: the motor voltage is measured while the DC input voltage varies from 100 to 400 volts. It is shown that the motor voltage remains within a 5 to 15% range of the voltage demand. This compensation is good enough for most home appliance applications. The motor voltage and therefore, motor speed, remains constant while the DC line voltage ud varies. Figure 6. Voltage compensation static performances V motor (V) 250 200 150 100 Δ Vmotor < 10% 50 0 100 200 300 400 Ud (V) 500 MS19694V Figure 7 shows the dynamic performance of the compensation: the 100 Hz ripple in motor current is considerably reduced when using the compensation (lower trace), compared to the ripple without compensation (upper trace). The top trace shows the motor current without compensation. The measurement is made with a loaded motor: Imotor = 2.5 amps (average) / Vmotor = 105 volts. The mains voltage is 230 volts. 8/14 Doc ID 1876 Rev 2 AN414 Application description Figure 7. Voltage Compensation (Dynamic performance: motor current ripple reduction (1 A/Div, 2 Ms/Div) ΔI = 2 Amp 0 Amps -- ΔI = 1 Amp 2 ms/dv ; 1 A/dv 0 Amps -Imotor av = 2.5 Amps ; Vmotor = 105 V Uac = 230 V ; C = 100 μF 3.4 MS19695V1 Motor power limitation The purpose of the power limitation is to keep the motor within its safe operating area in case of excessive loading (avoid overheating and hard brush switching). The motor current is evaluated every 3 milliseconds by measuring the peak chopped current in the IGBT emitter. If we call d the duty cycle of the PWM signal, Ud the motor DC supply voltage and Imot the average current in the motor, the electrical power fed to the motor is: P = Vmot x Imot = d x Ud x Imot If we want to limit P to a maximum value Pmax (300 W in our example), we must keep the duty cycle below a maximum duty cycle "d_max": d £ d_max with d_max = Pmax / (Ud x Imot) The program repetitively measures Imot and Ud using the A/D converter of the ST6265C. Then it extracts d_max from a table addressed by Ud and Imot. It then compares d to d_max and decreases d if it is larger than d_max. The power limitation presents "smooth" transitions between "limited" condition and "non-limited" condition, in order to avoid oscillations or jerks. Doc ID 1876 Rev 2 9/14 Application description AN414 Figure 8 shows the measured performance of the power limitation. To modify the power limit target, the look-up table can easily be modified. When the motor load changes, the motor current varies. The ST6265C MCU measures this current and limits the motor voltage if necessary. Figure 8. Motor power limitation performance Power (W) Vmotor (V) 250 500 200 400 Power 150 300 100 200 50 100 Vmotor 0 0 0 1 2 3 Imotor (A) 3.5 4 5 6 MS19695V1 Program highlights The total program takes 400 bytes of memory space, plus 1024 bytes for the tables. One timer remains free, and 2500 bytes remain available on the ST6260C / ST6265C for additional software or enlargement of the look-up tables. It is possible, for example, to drive an LCD display by software, to execute pre-programmed sequences of motor speeds, current limitations, etc. The EEPROM also remains available, for example, to store user adjustments which must be saved when the power is off. The line voltage compensation algorithm must be executed at high speed, as already explained, while the power limitation algorithm can be executed less often. Therefore, the complete program executes seven line compensations for each power limitation. The line voltage is compensated every 380 micro-seconds while the power is sensed and limited only every 3 milliseconds. 10/14 Doc ID 1876 Rev 2 AN414 4 Conclusion Conclusion Microcontrollers are often limited to controlling and monitoring the user interfaces. This paper describes a digital solution based on a general purpose MCU with on-chip PWM generator, the ST6265C. Besides the user interface such as an LCD drive, the MCU controls directly a DC motor with few external components and sophisticated control. A simple instruction set and the use of look-up tables allow for a short time-to-market, while avoiding the investment into an ASIC circuit. The demonstrated concept is applicable to home appliances (food processor, washing machine, refrigerator, HVAC ...) and to industrial applications where high speed accuracy is not required (pumps, fans ...). 5 References [1] - Microcontroller and TRIAC on 120/230 v mains A.N 392/A - Ph. RABIER and L. PERIER (SGS-THOMSON Microelectronics) [2] - Design with microcontrollers in noisy environment A.N 435 - L. PERIER (SGS-THOMSON Microelectronics) [3] - Versatile and cost-effective induction motor drive with digital three phase generation A.N 424 - B. MAURICE, JM. BOURGEOIS, B. SABY (SGS-THOMSON Microelectronics) [4] - Direct Software LCD Drive with ST621x and ST626x A.N 594 - T. CASTAGNET, J. NICOLAI, N. MICHEL (SGS-THOMSON Microelectronics) Doc ID 1876 Rev 2 11/14 12/14 Doc ID 1876 Rev 2 P1 R17 12K/2W 3A F1 0.47/2W R11 T3 R10 0.47/3W BYT11-600 D10 100nF C8 D5 STTA806DI R3 R15 8.2K 220 STGP10N50 C5 100nF D1 1N4148 2N2222A T2 R2 270K T1 BC337 C3 100uF R4 4.7K 22K R5 D3 13V 47K R6 R1 6.8K R19 15K R20 2.2K 1K R16 R9 10K T4 BC327 R7 1N4148 C6100 1nF D2 27pF C10 C9 27pF X1 8MHz 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ST6265 PA3 PA2 14 PA4 PA1 13 PA5 VSS 12 PA6 VCC 11 PA0 10 PA7 XTAL PB7/TIM20 9 EXTAL PB6/TIM21 8 NRES U1 PB5 7 CKOUT PB4 6 PB3 5 PC4 PB2 4 PC3 TST/VPP 3 PC2 PB1 2 PC1/TIM1 PC0 PB0 1 C7 47n SW2 SW1 C4 200uF D4 5.1V R12 D7 LED 3.9K R13 D8 LED 3.9K Figure 9. 100u380V C1 P4 Appendix A R18 12K/2W D6 4X3A 600V P2 P3 Permanent magnet motor drive AN414 Permanent magnet motor drive The permanent magnet motor drive schematic is shown in Figure 9. Complete schematic of the permanent magnet motor drive MS19697V1 AN414 6 Revision history Revision history Table 2. Document revision history Date Revision Changes Nov-1993 1 Initial release. 05-Feb-2013 2 Modified title and part numbers to include ST6265C and ST6260C. ST62T65 MCU replaced with the ST62T65Cxx order codes. Doc ID 1876 Rev 2 13/14 AN414 Please Read Carefully: Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any time, without notice. All ST products are sold pursuant to ST’s terms and conditions of sale. Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no liability whatsoever relating to the choice, selection or use of the ST products and services described herein. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such third party products or services or any intellectual property contained therein. UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS EXPRESSLY APPROVED IN WRITING BY TWO AUTHORIZED ST REPRESENTATIVES, ST PRODUCTS ARE NOT RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY, DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK. Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any liability of ST. ST and the ST logo are trademarks or registered trademarks of ST in various countries. Information in this document supersedes and replaces all information previously supplied. The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners. © 2013 STMicroelectronics - All rights reserved STMicroelectronics group of companies Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan Malaysia - Malta - Morocco - Philippines - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America www.st.com 14/14 Doc ID 1876 Rev 2