AN889 VF Control of 3-Phase Induction Motors Using PIC16F7X7 Microcontrollers Author: Rakesh Parekh Microchip Technology Inc. INTRODUCTION An induction motor can run only at its rated speed when it is connected directly to the main supply. However, many applications need variable speed operations. This is felt the most in applications where input power is directly proportional to the cube of motor speed. In applications like the induction motor-based centrifugal pump, a speed reduction of 20% results in an energy savings of approximately 50%. Driving and controlling the induction motor efficiently are prime concerns in today’s energy conscious world. With the advancement in the semiconductor fabrication technology, both the size and the price of semiconductors have gone down drastically. This means that the motor user can replace an energy inefficient mechanical motor drive and control system with a Variable Frequency Drive (VFD). The VFD not only controls the motor speed, but can improve the motor’s dynamic and steady state characteristics as well. In addition, the VFD can reduce the system’s average energy consumption. Although various induction motor control techniques are in practice today, the most popular control technique is by generating variable frequency supply, which has constant voltage to frequency ratio. This technique is popularly known as VF control. Generally used for open-loop systems, VF control caters to a large number of applications where the basic need is to vary the motor speed and control the motor efficiently. It is also simple to implement and cost effective. The PIC16F7X7 series of microcontrollers have three on-chip hardware PWM modules, making them suitable for 3-phase motor control applications. This application note explains how these microcontrollers can be used for 3-phase AC induction motor control. 2004 Microchip Technology Inc. VF CONTROL A discussion of induction motor control theory is beyond the scope of this document. We will mention here only the salient points of VF control. The base speed of the induction motor is directly proportional to the supply frequency and the number of poles of the motor. Since the number of poles is fixed by design, the best way to vary the speed of the induction motor is by varying the supply frequency. The torque developed by the induction motor is directly proportional to the ratio of the applied voltage and the frequency of supply. By varying the voltage and the frequency, but keeping their ratio constant, the torque developed can be kept constant throughout the speed range. This is exactly what VF control tries to achieve. Figure 1 shows the typical torque-speed characteristics of the induction motor, supplied directly from the main supply. Figure 2 shows the torque-speed characteristics of the induction motor with VF control. Other than the variation in speed, the torque-speed characteristics of the VF control reveal the following: • The starting current requirement is lower. • The stable operating region of the motor is increased. Instead of simply running at its base rated speed (NB), the motor can be run typically from 5% of the synchronous speed (NS) up to the base speed. The torque generated by the motor can be kept constant throughout this region. • At base speed, the voltage and frequency reach the rated values. We can drive the motor beyond the base speed by increasing the frequency further. However, the applied voltage cannot be increased beyond the rated voltage. Therefore, only the frequency can be increased, which results in the reduction of torque. Above the base speed, the factors governing torque become complex. • The acceleration and deceleration of the motor can be controlled by controlling the change of the supply frequency to the motor with respect to time. DS00889B-page 1 AN889 FIGURE 1: TORQUE-SPEED CHARACTERISTICS OF INDUCTION MOTOR Breakdown Torque Torque Current Full Load Torque Locked Rotor Torque Torque and Current TRATED IRATED Pull-up Torque NB Slip FIGURE 2: NS Speed TORQUE-SPEED CHARACTERISTICS OF INDUCTION MOTOR WITH VF CONTROL Torque Voltage VRATED Torque and Voltage VMIN fmin frated fmax (Base Speed) Frequency DS00889B-page 2 2004 Microchip Technology Inc. AN889 MOTOR DRIVE The 3-phase induction motor is connected to a 3-phase inverter bridge as shown in Figure 3.The power inverter has 6 switches that are controlled in order to generate 3-phase AC output from the DC bus. PWM signals, generated from the microcontroller, control these 6 switches. Switches IGBTH1 through IGBTH3, which are connected to DC+, are called upper switches. Switches IGBTL1 through IGBTL3, connected to DC-, are called lower switches. The amplitude of phase voltage is determined by the duty cycle of the PWM signals. While the motor is running, three out of six switches will be on at any given time; either one upper and two lower switches or one lower and two upper switches. The switching produces a rectangular shaped output waveform that is rich in FIGURE 3: harmonics. The inductive nature of the motor’s stator windings filters this supplied current to produce a 3-phase sine wave with negligible harmonics. When switches are turned off, the inductive nature of the windings oppose any sudden change in direction of flow of the current until all of the energy stored in the windings is dissipated. To facilitate this, fast recovery diodes are provided across each switch. These diodes are known as freewheeling diodes. To prevent the DC bus supply from being shorted, the upper and lower switches of the same half bridge should not be switched on at the same time. A dead time is given between switching off one switch and switching on the other. This ensures that both switches are not conductive at the same time as each one changes states. 3-PHASE INVERTER BRIDGE DC+ IGBTH1 IGBTH2 IGBTH3 3-PH Induction Motor IGBTL1 IGBTL2 IGBTL3 DC- 2004 Microchip Technology Inc. DS00889B-page 3 AN889 Control half bridge of the inverter: one to the upper switch, the other to the lower switch. The driver also adds a fixed dead time between the two PWM signals. Members of the PIC16F7X7 family of microcontrollers have three 10-bit PWMs implemented in hardware. The duty cycle of each PWM can be varied individually to generate a 3-phase AC waveform as shown in Figure 4. The upper eight bits of the PWM’s duty cycle is set using the register CCPRxL, while the lower two bits are set in bits 4 and 5 of the CCPxCON register. The PWM frequency is set using the Timer2 Period register (PR2). Because all of the PWMs use Timer2 as their time base for setting the switching frequency and duty cycle, all will have the same switching frequency. 3-Phase Sine Waveform Synthesis Along with the three PWM modules, the 16-bit Timer1 hardware module of PIC16F7X7 is used to generate the control signals to the 3-phase inverter. This is done by using a sine table, stored in the program memory with the application code and transferred to the data memory upon initialization. Loading the table this way minimizes access time during the run time of the motor. Three registers are used as the offset to the table. Each of these registers will point to one of the values in the table, such that they will always have a 120-degree phase shift relative to each other (Figure 4). This forms three sine waves with 120 degrees phase shift to each other. To derive a varying 3-phase AC voltage from the DC bus, the PWM outputs are required to control the six switches of the power inverter. This is done by connecting the PWM outputs to three IGBT drivers (IR2109). Each driver takes one PWM signal as input and produces two PWM outputs, one being complementary to the other. These two signals are used to drive one FIGURE 4: SYNTHESIS OF 3-PHASE SINE WAVEFORM FROM A SINE TABLE Sine Table Value + Offset 1 Sine Table Value + Offset 2 Sine Table Value + Offset 3 DC+ Voltage DC- Time DS00889B-page 4 2004 Microchip Technology Inc. AN889 A potentiometer connected to a 10-bit ADC channel (AN1) determines the motor frequency. The microcontroller uses the ADC results to calculate the PWM duty cycle and thus, the frequency and the amplitude of the supply to the motor. For smooth frequency transitions, the channel AN1 is converted at every 4 ms. loaded to the corresponding PWM duty cycle register. Subsequently, the offset registers are updated for next access. If the motor direction key is pressed, then PWM1, PWM2 and PWM3 duty cycle values are loaded to PWM2, PWM1 and PWM3 duty cycle registers, respectively. The Timer1 reload value is based on the ADC result (AN1), the main clock frequency (FOSC) and the number of sine table entries (36 in the present application). After every Timer1 overflow, the value pointed to by the offset register on the sine table is read. The value read from the sine table is scaled based on the motor frequency input. The sine table value is multiplied with the frequency input to find the PWM duty cycle and is The new PWM duty cycle values will take effect at the next Timer2 overflow. Also, the duty cycle will remain the same until the next Timer1 overflow occurs, as shown in Figure 5. The frequency of the new PWM duty cycle update determines the motor frequency, while the value loaded in the duty cycle register determines the amplitude of the motor supply. FIGURE 5: TIMER1 OVERFLOW, PWM DUTY CYCLE AND OUTPUT VOLTAGE 1 1 1 1 1 Timer Events 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 Timer1 Interrupt Timer2 to PR2 Match Interrupt Instantaneous Voltage 2 Average Voltage Output Voltage Time The equation used to calculate the Timer1 reload value is given in Equation 1. In the present application, the Timer1 prescaler is 1:8. PR2 is set to generate a 20 kHz PWM frequency with FOSC of 20 MHz. EQUATION 1: The method of accessing and scaling of the PWM duty cycle is shown in an excerpt from the application code in Example 1. TIMER1 RELOAD VALUE CALCULATION FOSC 4 Timer1 Reload Value = FFFFh – 2 x Sine Samples per Cycle x Timer1 Prescaler x Value of AN1 2004 Microchip Technology Inc. DS00889B-page 5 AN889 EXAMPLE 1: SINE TABLE UPDATE ;********************************************************************************************* ;This routine will update the PWM duty cycle on CCPx according to the offset to the table with ;0-120-240 degrees. ;This routine scales the PWM value from the table based on the frequency to keep VF ;constant and loads them in appropriate CCPx register depending on setting of FWD/REV flag ;********************************************************************************************* UPDATE_PWM_DUTYCYCLES MOVLW LOW(SINE_TABLE_RAM) MOVWF FSR ;Base address of sine table in RAM is loaded to FSR BANKSEL TABLE_OFFSET1 MOVF TABLE_OFFSET1,W ;Table_offset1 is copied To WREG ADDWF FSR,F ;Address to be read = sine table base adress + Table_offset1 BANKISEL SINE_TABLE_RAM MOVF INDF,W ;Copy sine table value pointed to by FSR to WREG BTFSC STATUS,Z ;Check is value read zero? GOTO PWM1_IS_0 ;Yes, goto PWM1_IS_0 MOVWF NO_1_LSB ;No, sine table value x Set_freq to scale table value ;based on frequency setting CALL MUL_8X8 ;Call routine for unsigned 8x8 bit multiplication MOVF RESULT_MSB,W ;8 MSB of 16 bit result is stored at TEMP_LOC MOVWF TEMP_LOC ;this represent PWM Duty Cycle value for phase 1 GOTO UPDATE_PWM2 ;Go for updating PWM Duty Cycle for 2nd phase PWM1_IS_0 CLRF TEMP_LOC ;Clear PWM Duty Cycle value for phase 1 UPDATE_PWM2 MOVLW LOW (SINE_TABLE_RAM) MOVWF FSR ;Base address of sine table in RAM is loaded to FSR BANKSEL TABLE_OFFSET2 MOVF TABLE_OFFSET2,W ;Table_offset2 is copied to WREG ADDWF FSR,F ;Address to be read = Sine table base adress + Table_offset2 BANKISEL SINE_TABLE_RAM MOVF INDF,W ;Copy sine table value pointed to by FSR to WREG BTFSC STATUS,Z ;Check is value read zero? GOTO PWM2_IS_0 ;Yes, go to PWM2_IS_0 MOVWF NO_1_LSB ;No, sine table value x set_freq to scale table value ;based on frequency setting CALL MUL_8X8 ;Call routine for unsigned 8x8 bit multiplication MOVF RESULT_MSB,W ;8 MSB of 16 bit result is stored at TEMP_LOC_1 MOVWF TEMP_LOC_1 ;this represent PWM Duty Cycle value for phase 2 GOTO UPDATE_PWM3 ;Go for updating PWM Duty Cycle for 3rd phase PWM2_IS_0 CLRF TEMP_LOC_1 ;Clear PWM Duty Cycle value for phase 2 UPDATE_PWM3 MOVLW LOW(SINE_TABLE_RAM) MOVWF FSR ;Base address of sine table in RAM is loaded to FSR BANKSEL TABLE_OFFSET3 MOVF TABLE_OFFSET3,W ;Table_offset3 is copied to WREG ADDWF FSR,F ;Address to be read=Sine table base address + Table_offset3 BANKISEL SINE_TABLE_RAM MOVF INDF,W ;Copy sine table value pointed by FSR to WREG BTFSC STATUS,Z ;Check is value read zero? GOTO PWM3_IS_0 ;Yes, goto PWM3_IS_0 MOVWF NO_1_LSB ;No, sine table value x set_freq to scale table value ;based on frequency setting CALL MUL_8X8 ;Call routine for unsigned 8x8 bit multiplication MOVF RESULT_MSB,W ;8 MSB of 16 bit result is stored at TEMP_LOC_2 MOVWF TEMP_LOC_2 ;this represents PWM duty cycle value for phase 3 GOTO SET_PWM12 ;Go for checking direction of motor rotation reequired PWM3_IS_0 CLRF TEMP_LOC_2 ;Clear PWM duty cycle value for phase 3 DS00889B-page 6 2004 Microchip Technology Inc. AN889 EXAMPLE 1: SET_PWM12 BANKSEL BTFSS GOTO MOVF MOVWF MOVF MOVWF BSF MOVF MOVWF BCF BSF SINE TABLE UPDATE (CONTINUED) CCPR1L FLAGS,MOTOR_DIRECTION ROTATE_REVERSE TEMP_LOC,W CCPR1L TEMP_LOC_1,W CCPR2L STATUS,RP0 TEMP_LOC_2,W CCPR3L STATUS,RP0 LED_PORT,FWD_REV_LED ;Is MOTOR_DIRECTION flag set for forward rotation? ;No - Go for reverse rotation ;Copy TEMP_LOC and TEMP_LOC_1 values to ;CCPR1L and CCPR2L respectively for ;forward rotation of motor ;Copy TEMP_LOC_2 to CCPR3L ;Turn on FWD_REV_LED to indicate ;forward rotation of motor RETURN ROTATE_REVERSE MOVF MOVWF MOVF MOVWF BSF MOVF MOVWF BCF BCF TEMP_LOC_1,W CCPR1L TEMP_LOC,W CCPR2L STATUS,RP0 TEMP_LOC_2,W CCPR3L STATUS,RP0 LED_PORT,FWD_REV_LED ;Copy TEMP_LOC_1 and TEMP_LOC values to ;CCPR1L and CCPR2L respectively for ;reverse rotation of motor ;Copy TEMP_LOC_2 to CCPR3L ;Turn off FWD_REV_LED to indicate ;reverse rotation of motor RETURN 2004 Microchip Technology Inc. DS00889B-page 7 AN889 OVERVIEW OF SYSTEM HARDWARE Overcurrent Protection Figure 6 shows the overall block diagram of the power and control circuit for the motor control demo board. The main single phase supply is rectified by using a diode bridge rectifier. The ripple on the DC bus is filtered by using an electrolytic capacitor. The filtered DC bus is connected to the IGBT-based 3-phase inverter, which is controlled by the PIC16F7X7. The inverter output is a 3-phase, variable frequency supply with a constant voltage-to-frequency ratio. A non-inductive resistor is connected between the common source point of the inverter and the power ground. Voltage drop across this resistor is linearly proportional to the current flowing through the motor. This voltage drop is compared against the reference voltage signal, through an optoisolator (linear optocoupler), which represents overcurrent limit. There are three possible ways to compare these voltage signals: • Using an external comparator • Using the PIC16F7X7 on-chip comparator • In software, by reading the voltage drop across the resistor through one of the ADC channels A potentiometer connected to AN1 sets the motor frequency. Push button keys are interfaced for issuing commands, like Run/Stop and Fwd/Rev, to the microcontroller. Acceleration and deceleration features are implemented to change the motor frequency smoothly. Time for both of these features are user selectable and can be set during compile time. LEDs are provided for Status/Fault indications like Run/Stop, Forward/Reverse, Undervoltage, Overvoltage, etc. The design discussed in this application note implements an external comparator. It’s output drives the shutdown signal of the driver through an optoisolator (optocoupler). At the same time, this signal is provided to RB4. By using the PORTB interrupt-on-change feature, the microcontroller responds to Fault detection and stops the motor. The PWM outputs are generated by on-chip hardware modules on the PIC16F7X7. These are used to drive the IGBT drivers through optoisolators. Each IGBT driver, in turn, generates complementary signals for driving the upper or lower halves of the 3-phase inverter. It also adds a dead time of 540 ns between the respective higher and lower switch driving signals. Overvoltage and Undervoltage Protection To implement voltage protection, the DC bus voltage is attenuated by a potential divider. The resulting signal is fed to AN2 through an optoisolator (linear optocoupler). The application monitors the voltage via periodic A/D conversions of the value on RA2; if the voltage falls outside of a preset range, the motor is stopped. The IGBT driver has a shutdown signal (SD) which is controlled by an overcurrent protection circuit. The driver also has its own on-chip Fault monitoring circuit for driver power supply undervoltage conditions. Upon any overcurrent or undervoltage event, the outputs are driven low and remain low until the time the Fault condition is removed. Note: Refer to Appendix B: “Motor Control Schematics” for schematics of the motor control demo board. FIGURE 6: BLOCK DIAGRAM OF THE MOTOR CONTROL DEMO BOARD Single-Phase AC Input Rectifier Voltage Current Attenuator Comparator 1 Speed Set Fwd/Rev AN1 AN2 RB4 PWM1 PWM2 PWM3 2 1 2 2 Run/Stop PIC16F7X7 Optoisolators SD HIN1 HIN2 HIN3 HOut1 IGBTH1 HOut2 IGBTH2 HOut3 IGBTH3 LOut1 IGBTL1 LOut2 IGBTL2 IGBT Drivers LOut3 3-Phase Induction Motor 3-Phase IGBTL3 Inverter Status/Fault Indicators DS00889B-page 8 2004 Microchip Technology Inc. AN889 Isolation The use of optoisolators ensures that power ground (P_GND) and control ground (D_GND) are separated. This means that development tools, such as MPLAB® ICD 2 and MPLAB® ICE can be safely connected to the system while it is connected to the AC supply. This simplifies the task of debugging a live system. The isolation components are often removed when a design goes for production. To remove isolation: • Remove the PWM drive optoisolators (U6 through U9). • Remove the power isolation optoisolators (U17 and U18). • Disconnect the voltage followers for U17 and U18 (U13B, U13C, U16A and U16B). DO NOT physically remove U13 and U16, since U13A and U16C are still used by the system. • Remove all other components associated with the power isolation system (capacitors C41/42/43 and resistors R81/82/83/84/91/92/93/96). • Make all grounds common by shorting P_GND to D_GND. VF CONTROL FIRMWARE While the PIC16F7X7 microcontroller makes 3-phase motor control possible, it is the firmware that makes VF control straightforward. In addition to maintaining the sine table and driving the PWM modules to produce the AC output (previously described in the “3-Phase Sine Waveform Synthesis” section), the firmware interprets control inputs and system status to sense and act on Fault conditions. It also manages other features of motor control, such as direction, acceleration and deceleration (as described below). 2004 Microchip Technology Inc. The VF control firmware uses a set of defined routines and parameters for operation. Users can change these parameters as needed for their applications. The firmware can also be incorporated as the motor control core of a larger application, using the parameters to pass information between sections of the code. An overview of the firmware’s logic flow is provided in Figure 7 and Figure 8. A complete list of parameters and defined functions is provided in Tables 1 through 4. Users are encouraged to download the complete source code of the firmware from the Microchip web site (www.microchip.com) and examine the application in more detail. Acceleration and Deceleration Acceleration and deceleration time can be specified during compile time. The actual motor frequency (SET_FREQ) and the required user frequency (NEW_FREQ), set through the potentiometer, is compared at 4 ms intervals. If the SET_FREQ and the NEW_FREQ are different, then the SET_FREQ is changed step by step (each step size is 0.25 Hz) until it reaches the NEW_FREQ. The time to change the SET_FREQ by one step is calculated in software, depending upon the difference between the SET_FREQ and the NEW_FREQ, as well as the acceleration and deceleration parameters entered during compile time. If the NEW_FREQ is changed during the acceleration and deceleration process, then the time to change each step is recalculated. DS00889B-page 9 AN889 FIGURE 7: MOTOR CONTROL FLOW CHART (MAIN AND ADC ROUTINES) Main Routine START Initialization of Motor Parameters and On-Chip Peripherals Has Timer1 overflowed? Yes Update PWM Duty Cycle by Reading Sine Table No Update Sine Table Offset<1:3> Call SET_ADC_GO Key Scan to Read Run/Stop and Fwd/Rev Switch Status ADC Routine SET_ADC_GO No Yes Is 4 ms interval over? No Configure and Start ADC for Converting DC bus Voltage Level Signal Calculate Time Step Required for Unit Change in SET_FREQ Is SET_FREQ = NEW_FREQ? Yes Calculate Timer1 Reload Value (X) Configure and Start ADC for Converting Potentiometer Set Reference Signal Return DS00889B-page 10 2004 Microchip Technology Inc. AN889 FIGURE 8: MOTOR CONTROL FLOW CHART (INTERRUPT SERVICE ROUTINE) ISR Yes Run/Stop the Motor per Status of PORTB<5> Is RBIF = 1? (overcurrent protection) No Yes Timer1 = X Is TMR1IF = 1? (motor frequency decider) No Is ADIF = 1? (motor frequency reading and UV/OV protection) Yes Is ADC set for reading DC bus voltage? No No Yes No Yes No Read Potentiometer Setting (motor frequency) Is TMR2IF = 1? (acceleration/deceleration) Is 4 ms interval over? Is DC bus voltage outside set limit of UV/OV? No Yes Yes No Is it the time to change SET_FREQ ? Stop the Motor and Indicate Appropriate Fault Condition Yes Change SET_FREQ by Unit Step RETFIE 2004 Microchip Technology Inc. DS00889B-page 11 AN889 TABLE 1: USER DEFINED PARAMETERS IN SOFTWARE Name Description OSC_FREQ Defines the oscillator frequency. In the present application, this is set to 20 MHz. TIMER1_PRESCALE Defines Timer1 prescaler value. In the present application, it is set to 1:8. TIMER2_PRESCALE Defines the Timer2 prescaler value. In the present application, this is set to 1:1. PWM_FREQUENCY Defines the PWM switching frequency. In the present application, this is set to 20 kHz. ACCELERATION_TIME Defines the user set acceleration time for the motor speed. In the present application, this is set to 3 seconds. DECELERATION_TIME Defines the user set deceleration time for the motor speed. In the present application, this is set to 3 seconds. SINE_TABLE_ENTRIES Defines the length of the sine table. In the present application, this is set to 19. TABLE 2: CONSTANTS IN SOFTWARE Name Description FREQ_SCALE Used to calculate Timer1 reload value. It’s value depends on FOSC, Timer1 prescaler and the number of sine table entries PR2_VALUE Defines the Timer2 overflow time period and thus, the PWM switching frequency. It’s value depends on FOSC, Timer2 prescaler and required PWM switching frequency. DEC_CON Used for calculating time required for unit step decrement in SET_FREQ. It’s value is: Deceleration Time x 250. ACC_CON Used for calculating time required for unit step increment in SET_FREQ. It’s value is: Acceleration Time x 250. LIMIT_V_LOW Defines the DC bus voltage limit for undervoltage protection to activate. LIMIT_V_HIGH Defines the DC bus voltage limit for overvoltage protection to activate. TABLE 3: VARIABLES IN SOFTWARE Name Description SET_FREQ Actual motor frequency. NEW_FREQ Required motor frequency (set through the potentiometer). TABLE_OFFSET1 Pointer to sine table for phase 1. TABLE_OFFSET2 Pointer to sine table for phase 2. TABLE_OFFSET3 Pointer to sine table for phase 3. DS00889B-page 12 2004 Microchip Technology Inc. AN889 TABLE 4: FUNCTIONS IN SOFTWARE Name Description UPDATE_PWM_DUTYCYCLES Loads new duty cycle values to CCPRxL for generating the 3-phase sine wave. This routine also scales the sine table value depending on SET_FREQ. UPDATE_TABLE_OFFSET Changes the pointers to the sine table after every access to maintain 120-degree phase shift between generated sine waves. SET_ADC_GO Configures the ADC for reading DC bus voltage or the potentiometer setting for the required motor frequency. This routine also calculates time needed for unit change in SET_FREQ for acceleration and deceleration. KEY_CHECK Checks the status of Run/Stop and Fwd/Rev keys and acts accordingly. CHECK_FAULT Responds to setting of RBIF. This routine responds to the output status of the external current comparator. TIMER1_OVERFLOW Responds to setting of TMR1IF. This routine sets the user-defined flag indicating Timer1 overflow, which in turn is responsible for calling of UPDATE_PWM_DUTYCYCLES in the main routine. AD_CONV_COMPLETE Responds to setting of ADIF. This routine reads the frequency setting from the potentiometer through ADC. If the frequency is set below 5 Hz or above 60 Hz, it limits the frequency to 5 Hz or 60 Hz. This routine also reads the DC bus voltage level through ADC. If the level is outside the preset limits, it activates undervoltage or overvoltage protection as required. TMR2_ISR Responds to setting of TMR2IF. This routine is used for implementing acceleration and deceleration feature. 2004 Microchip Technology Inc. DS00889B-page 13 AN889 RESOURCE USAGE CONCLUSION The VF control application consumes both memory and hardware resources, as shown in Table 5. Substantial resources, particularly memory, are still available to users for development of their own applications. VF control provides a simple and cost efficient method for open-loop speed control of 3-phase induction motors. A low-cost VF solution can be implemented using the PIC16F7X7 family of devices. With three dedicated PWM modules implemented in hardware, it is ideal for controlling 3-phase induction motors. Additional on-chip resources, like multiple timers and ADC, allow users to easily implement safety and control features, such as current and voltage protection and configurable acceleration and deceleration time. TABLE 5: RESOURCES USED IN THE MOTOR CONTROL DEMO BOARD (USING PIC16F777) Resource Type Used Available to User when PIC16F777 is Used Program Memory 1041 words 7215 words 49 bytes 319 bytes Data Memory CCP Channels 3 0 ADC Channels 2 12 Timers 2 1 External Interrupts 1 4 I/O Lines 15 21 DS00889B-page 14 2004 Microchip Technology Inc. AN889 APPENDIX A: TABLE A-1: Test # TEST RESULTS TEST RESULTS Set Frequency (Hz) Set Speed (RPM) Actual Speed (RPM) Speed Regulation (%) 1 7.00 420 413 1.67 2 10.50 630 624 0.95 3 12.75 765 763 0.26 4 15.50 930 923 0.75 5 18.75 1125 1124 0.09 6 24.00 1440 1429 0.76 7 29.50 1770 1767 0.17 8 31.50 1890 1900 -0.53 9 36.25 2175 2184 -0.41 10 40.00 2400 2402 -0.08 11 44.50 2670 2670 0.00 12 46.50 2790 2805 -0.54 13 50.00 3000 3017 -0.57 14 54.50 3270 3275 -0.15 60 3600 3560 1.11 15 Note: Above tests are conducted on a motor with the following specifications: Terminal Voltage = 208-230V, Frequency = 60 Hz, Horsepower = 1/2 HP, Speed = 3450 RPM at full load, Rated Current = 1.8A, Test Condition = no load. 2004 Microchip Technology Inc. DS00889B-page 15 DS00889B-page 16 VDD VDA VCC 470 µF 450V 0.1 µF 600V 470 µF 450V VDC 0.001 µF .100V 0.1 µF 25 µF 450V 56 pF 500V 22 µF .40V 2.2 nF .400V 220 pF 1000 µF .10V 1000 µF 25V 0.1 µF 6.8 µH 1A 10 µH 1A 1% 1% 470 µF 10V 470 µF 25V VDD VCC 0.1 µF > 30V 0.1 µF > 30V 0.1 µF FIGURE B-1: 470 µF .10V APPENDIX B: 1000 µF .10V 6.8 µH 1A AN889 MOTOR CONTROL SCHEMATICS POWER SUPPLY 2004 Microchip Technology Inc. VCC AN889 SYSTEM CONTROL 2004 Microchip Technology Inc. VSS VSS PIC16F7X7-DIP40 PIC16F7X7-DIP28 VSS VSS VCC 0.1 µF VCC VDD VCC VDD VDD VREF 0.1 µF FIGURE B-2: DS00889B-page 17 DS00889B-page 18 100 pF MCP6004-DIP14 100 pF MCP6004-DIP14 +VCCT +VCC2 +VCC2 MCP6004-DIP14 MCP6004-DIP14 VCC 0.1 µF Note: MCP6004-DIP14 C45 0.0033 µF To disable isolation, remove or disconnect all components within the bounded area. Connect A_SV directly to ISO_CSV and VDC_B to ISO_VDC. 0.1 µF FIGURE B-3: +VCCT See Note VDC AN889 INVERTER AND FEEDBACK 2004 Microchip Technology Inc. 2004 Microchip Technology Inc. VCC VCC VCC Note: VCC VCC VCC To disable isolation, remove all components within the bounded area. Connect the PWM inputs to the IN pins of their respective drivers. Connect the OC input to the SD pin of each driver. 0.1 µF 0.1 µF 0.1 µF 4.7 µF 4.7 µF 4.7 µF 0.1 µF 0.1 µF 0.1 µF FIGURE B-4: VCC See Note VDD AN889 INVERTER DRIVERS AND OPTOISOLATORS DS00889B-page 19 AN889 DISPLAY AND COMMUNICATION SECTION DS00889B-page 20 0.1 µF VCC MCP6004-DIP14 VCC VCC 24LC16 0.1 µF 0.1 µF 0.1 µF VCC VCC 0.1 µF 0.1 µF VCC VCC 0.1 µF VCC MCLR/VPP FIGURE B-5: 2004 Microchip Technology Inc. AN889 APPENDIX C: SOFTWARE DISCUSSED IN THIS APPLICATION NOTE Because of its overall length, a complete source file listing of the PIC16F7X7 VF motor control firmware is not provided here. The complete source code is available as a single WinZip archive file, which may be downloaded from the Microchip corporate web site at: www.microchip.com 2004 Microchip Technology Inc. DS00889B-page 21 AN889 NOTES: DS00889B-page 22 2004 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 intended through suggestion only and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Microchip Technology Incorporated with respect to the accuracy or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise. 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 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, 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, Migratable Memory, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel and Total Endurance 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. © 2004, 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. 2004 Microchip Technology Inc. DS00889B-page 23 WORLDWIDE SALES AND SERVICE AMERICAS China - Beijing Korea Corporate Office Unit 706B Wan Tai Bei Hai Bldg. No. 6 Chaoyangmen Bei Str. Beijing, 100027, China Tel: 86-10-85282100 Fax: 86-10-85282104 168-1, Youngbo Bldg. 3 Floor Samsung-Dong, Kangnam-Ku Seoul, Korea 135-882 Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Chengdu 200 Middle Road #07-02 Prime Centre Singapore, 188980 Tel: 65-6334-8870 Fax: 65-6334-8850 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: 480-792-7627 Web Address: http://www.microchip.com 3780 Mansell Road, Suite 130 Alpharetta, GA 30022 Tel: 770-640-0034 Fax: 770-640-0307 Rm. 2401-2402, 24th Floor, Ming Xing Financial Tower No. 88 TIDU Street Chengdu 610016, China Tel: 86-28-86766200 Fax: 86-28-86766599 Boston China - Fuzhou 2 Lan Drive, Suite 120 Westford, MA 01886 Tel: 978-692-3848 Fax: 978-692-3821 Unit 28F, World Trade Plaza No. 71 Wusi Road Fuzhou 350001, China Tel: 86-591-7503506 Fax: 86-591-7503521 Atlanta Chicago 333 Pierce Road, Suite 180 Itasca, IL 60143 Tel: 630-285-0071 Fax: 630-285-0075 Dallas 4570 Westgrove Drive, Suite 160 Addison, TX 75001 Tel: 972-818-7423 Fax: 972-818-2924 Detroit Tri-Atria Office Building 32255 Northwestern Highway, Suite 190 Farmington Hills, MI 48334 Tel: 248-538-2250 Fax: 248-538-2260 Kokomo 2767 S. Albright Road Kokomo, IN 46902 Tel: 765-864-8360 Fax: 765-864-8387 Los Angeles 18201 Von Karman, Suite 1090 Irvine, CA 92612 Tel: 949-263-1888 Fax: 949-263-1338 San Jose 1300 Terra Bella Avenue Mountain View, CA 94043 Tel: 650-215-1444 Fax: 650-961-0286 Toronto 6285 Northam Drive, Suite 108 Mississauga, Ontario L4V 1X5, Canada Tel: 905-673-0699 Fax: 905-673-6509 ASIA/PACIFIC Australia Suite 22, 41 Rawson Street Epping 2121, NSW Australia Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Hong Kong SAR Unit 901-6, Tower 2, Metroplaza 223 Hing Fong Road Kwai Fong, N.T., Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 Singapore Taiwan Kaohsiung Branch 30F - 1 No. 8 Min Chuan 2nd Road Kaohsiung 806, Taiwan Tel: 886-7-536-4818 Fax: 886-7-536-4803 Taiwan Taiwan Branch 11F-3, No. 207 Tung Hua North Road Taipei, 105, Taiwan Tel: 886-2-2717-7175 Fax: 886-2-2545-0139 EUROPE China - Shanghai Austria Room 701, Bldg. B Far East International Plaza No. 317 Xian Xia Road Shanghai, 200051 Tel: 86-21-6275-5700 Fax: 86-21-6275-5060 Durisolstrasse 2 A-4600 Wels Austria Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark China - Shenzhen Regus Business Centre Lautrup hoj 1-3 Ballerup DK-2750 Denmark Tel: 45-4420-9895 Fax: 45-4420-9910 Rm. 1812, 18/F, Building A, United Plaza No. 5022 Binhe Road, Futian District Shenzhen 518033, China Tel: 86-755-82901380 Fax: 86-755-8295-1393 China - Shunde Room 401, Hongjian Building, No. 2 Fengxiangnan Road, Ronggui Town, Shunde District, Foshan City, Guangdong 528303, China Tel: 86-757-28395507 Fax: 86-757-28395571 China - Qingdao Rm. B505A, Fullhope Plaza, No. 12 Hong Kong Central Rd. Qingdao 266071, China Tel: 86-532-5027355 Fax: 86-532-5027205 India Divyasree Chambers 1 Floor, Wing A (A3/A4) No. 11, O’Shaugnessey Road Bangalore, 560 025, India Tel: 91-80-22290061 Fax: 91-80-22290062 Japan Benex S-1 6F 3-18-20, Shinyokohama Kohoku-Ku, Yokohama-shi Kanagawa, 222-0033, Japan Tel: 81-45-471- 6166 Fax: 81-45-471-6122 France Parc d’Activite du Moulin de Massy 43 Rue du Saule Trapu Batiment A - ler Etage 91300 Massy, France Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Germany Steinheilstrasse 10 D-85737 Ismaning, Germany Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Italy Via Quasimodo, 12 20025 Legnano (MI) Milan, Italy Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands P. A. De Biesbosch 14 NL-5152 SC Drunen, Netherlands Tel: 31-416-690399 Fax: 31-416-690340 United Kingdom 505 Eskdale Road Winnersh Triangle Wokingham Berkshire, England RG41 5TU Tel: 44-118-921-5869 Fax: 44-118-921-5820 02/17/04 DS00889B-page 24 2004 Microchip Technology Inc.