Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Open Loop Universal Motor Chopper Based on the MC68HC908QT4 Microcontroller Reference Design M68HC08 Microcontrollers Designer Reference Manual DRM057 Rev. 0, 1/2004 MOTOROLA.COM/SEMICONDUCTORS For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Open Loop Universal Motor Chopper Based on the MC68HC908QT4 Microcontroller Designer Reference Manual — Rev 0 by: Ladislav Makovic Motorola Ltd. Roznov pod Radhostem WARNING: This circuit is powered directly from the mains. It is dangerous to touch any part of the circuit, even if a 0% duty cycle is generated. Do not connect any computer, oscilloscope or development system to this circuit without using an isolation transformer. Motorola and the Motorola logo are registered trademarks of Motorola, Inc. CodeWarrior® is a registered trademark of MetroWerks, a wholly owned subsidiary of Motorola, Inc. DRM057 — Rev 0 Designer Reference Manual MOTOROLA 3 For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. Revision history To provide the most up-to-date information, the revision of our documents on the World Wide Web will be the most current. Your printed copy may be an earlier revision. To verify you have the latest information available, refer to: http://www.motorola.com/semiconductors Freescale Semiconductor, Inc... The following revision history table summarizes changes contained in this document. For your convenience, the page number designators have been linked to the appropriate location. Revision history Date Revision Level 1/2004 0 Description Initial release Designer Reference Manual Page Number(s) N/A DRM057 — Rev 0 4 MOTOROLA For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Table of Contents Freescale Semiconductor, Inc... Section 1. Introduction 1.1 Overview of the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 1.2 Intended Functionality of the Application . . . . . . . . . . . . . . . . . 11 1.3 Benefits of Our Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 The MC68HC908QT4 Microcontroller . . . . . . . . . . . . . . . . . . .12 1.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Section 2. Initial Design Conditions 2.1 System Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 System Software Requirements . . . . . . . . . . . . . . . . . . . . . . . .15 Section 3. Hardware Design 3.1 Hardware Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Parts List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 3.3 PCB Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Section 4. Software Design 4.1 Basic Software Description. . . . . . . . . . . . . . . . . . . . . . . . . . . .23 4.2 Constant and Variable Definitions . . . . . . . . . . . . . . . . . . . . . . 25 4.3 Flow Chart Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 4.4 Microcontroller Resource Usage . . . . . . . . . . . . . . . . . . . . . . . 35 Section 5. System Setup DRM057 — Rev 0 Designer Reference Manual MOTOROLA 5 For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. Table of Contents 5.1 Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2 Software Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 5.3 Required Software Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.4 Building and Uploading the Application . . . . . . . . . . . . . . . . . .38 5.5 Executing the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 Freescale Semiconductor, Inc... Appendix A. Abbreviations and Definitions Designer Reference Manual DRM057 — Rev 0 6 MOTOROLA For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 List of Figures Figure Freescale Semiconductor, Inc... 1-1 1-2 3-1 3-2 3-3 3-4 4-1 4-2 4-3 Title Page The Open Loop PWM Chopper . . . . . . . . . . . . . . . . . . . . . . . .10 The Pulse Width Modulation ‘Chopper’ Technique. . . . . . . . . .11 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Circuit Schematic Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 PCB — Track Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 PCB — Component Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Main Program Flow Chart. . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Interrupt Subroutine Flow Charts . . . . . . . . . . . . . . . . . . . . . . . 25 PWM Setup for 3.2 MHz Bus Frequency . . . . . . . . . . . . . . . . . 33 DRM057 — Rev 0 Designer Reference Manual MOTOROLA 7 For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. List of Tables List of Tables Table Freescale Semiconductor, Inc... 3-1 4-1 4-2 Title Page Parts List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Memory Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 I/O Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Designer Reference Manual DRM057 — Rev 0 8 MOTOROLA For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Section 1. Introduction This reference manual describes a real application, which can be used in a low-cost product. Using a microcontroller allows the system to be software programmable by changing defined constants within the application software. Another advantage of using a microcontroller is that the control algorithm can be changed simply, by re-programming the microcontroller with new firmware. The unused memory and some performance capacity remain available for other purposes. These facts make this application particularly suitable for the appliance market. 1.1 Overview of the Application The application presents a low-cost, open loop universal motor chopper control drive system based on the MC68HC908QT4 microcontroller. A PWM (pulse width modulation) technique is used to adjust the voltage applied to the motor. Modulation of the PWM's duty cycle allows the average value of the voltage applied to the motor to be varied. Compared to a phase angle drive, the chopper drive requires a more complicated power stage, with an input power rectifier, a power switch, and a power fast diode. The advantage of the chopper drive is higher efficiency, with less acoustic noise and better EMC behavior. 1.1.1 Uses of the Application • Washing machines • Vacuum cleaners • Hand tools • Food processors • Dishwashers • Single-phase variable-speed drives • Low-cost, medium-power applications with variable voltage output DRM057 — Rev 0 MOTOROLA Designer Reference Manual Introduction For More Information On This Product, Go to: www.freescale.com 9 Freescale Semiconductor, Inc. Introduction Freescale Semiconductor, Inc... 1.1.2 Features • Capable of supplying universal/DC motors • Variable output voltage 0-230 V AC rms with defined step and delay ramp • Maximum output current 6.52 A AC rms (1500 W, 230 V) (short time peak current 8 A) • Uses PWM technique to modulate output voltage (5.882 kHz switching frequency) • Capable of supplying general DC inductive/resistive loads • Electronic switch on/off PWM generation • Easy to re-program the system behavior Figure 1-1. The Open Loop PWM Chopper Designer Reference Manual 10 DRM057 — Rev 0 Introduction For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Introduction Intended Functionality of the Application 1.2 Intended Functionality of the Application Freescale Semiconductor, Inc... This reference manual describes the design of a low-cost chopper motor control drive system based on the MC68HC908QT4 microcontroller, an IGBT (Insulated Gate Bipolar Transistor), and an ultra-fast high voltage (freewheeling) diode. This low-cost single-phase power board is dedicated to universal brushed motors. The universal motor is the most widely used motor in home appliances, such as vacuum cleaners, washers, hand tools, and food processors. The operational mode used in this application is open loop and regulated input motor voltage. The type of motor and its drive have a high impact on many home appliance features, such as cost, size, noise and efficiency. Electronic control usually becomes necessary when variable speed or energy savings are required. Motor Voltage 50% duty cycle DC Voltage Gate Signal Figure 1-2. The Pulse Width Modulation ‘Chopper’ Technique Microcontrollers offer the advantages of low cost and attractive design. They can operate with only a few external components, reducing the energy consumption as well as the cost. This circuit was designed as a very simple schematic, using all the features of a simple microcontroller. The microcontroller and this circuit scheme may be used in a wide variety of applications. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Introduction For More Information On This Product, Go to: www.freescale.com 11 Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Introduction The Pulse Width Modulation technique (PWM) is used to adjust the voltage applied to the motor (Figure 1-2). Modulation of the PWM’s duty cycle allows variation of the average voltage value seen by the motor. This PWM technique is often termed ‘chopper’, because of the chopped drive signal that is created. This document also explains how to design the software implementation using an M68HC08 family microcontroller. A low-cost microcontroller such as this is powerful enough to handle the workload necessary for driving a closed loop chopper drive. 1.3 Benefits of Our Solution Compared to a poorer analog solution, a microcontroller based drive exhibits many advantages. Some of these are listed below. • Choice of different control algorithms • Choice of any shape of speed command (acceleration and deceleration phase) • Easy adaptation to a closed loop control algorithm • Software can simplify the hardware • Diagnostic functions • Open for innovation 1.4 The MC68HC908QT4 Microcontroller The MC68HC908QT4 is a member of the low-cost, high-performance M68HC08 Family of 8-bit microcontroller units (MCUs). The M68HC08 family is a Complex Instruction Set Computer (CISC), with a Von Neumann architecture. All MCUs in the family use the enhanced M68HC08 central processor unit (CPU08), and are available with a variety of modules, memory sizes and types, and package types. Designer Reference Manual 12 DRM057 — Rev 0 Introduction For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Introduction References Some key features of the MC68HC908QT4 are listed below. • 4K bytes of in-application re-programmable FLASH and 128 bytes of RAM • 2-channel, 16-bit timer with selectable input capture, output compare, and PWM • High-performance, easy-to-use M68HC08 CPU • Trimmable internal oscillator with ± 5% accuracy • 4-channel, 8-bit analog to digital converter • Selectable trip point low voltage inhibit (LVI) • Computer operating properly (COP) timer with auto wake-up from STOP • Flexible high-current I/O and keyboard interrupts • Five bidirectional I/O pins and one input-only pin • Available in 8-pin DIP or SOIC packages 1.5 References 1. PWM_setup.xls - placed into project [2] sources. 2. UM_Chopper.mcp - project, debugged under CodeWarrior CW08 V3.0. 3. Schematic, PCB. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Introduction For More Information On This Product, Go to: www.freescale.com 13 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Introduction Designer Reference Manual 14 DRM057 — Rev 0 Introduction For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Section 2. Initial Design Conditions This section deals with system hardware and software constraints and requirements that must be met by the design. 2.1 System Hardware Requirements 1. The power stage must be able to switch a 1.5 kW load at a line voltage of 230 V. 2. The solution is based on the MC68HC908QT4 microcontroller. 3. No external crystals or resonators are used. 4. Control circuit power supplies are derived from the rectified line voltage, without a transformer. Two DC power supplies are required: a 12 V power supply to feed the IGBT driver; and a 5 V power supply to feed the microcontroller and control circuits. 5. There is no feedback, although the solution allows for its addition. 6. The circuit is electronically switched on and off by the microcontroller IRQ pulse interrupt. 7. The required PWM duty cycle (a potentiometer output voltage) is sensed by the microcontroller’s A/D converter. 8. A single layer PCB and through-hole devices are used. 2.2 System Software Requirements 1. The PWM duty cycle is set from 0% to 100% with an accuracy of 1/18 duty cycle. 2. The duty cycle accuracy can be set using a defined constant. 3. The PWM frequency can be set in a given range using a defined constant. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Initial Design Conditions For More Information On This Product, Go to: www.freescale.com 15 Freescale Semiconductor, Inc. Initial Design Conditions 4. The PWM ramp has 18 steps (duty cycles), and the number of steps can be set using a defined constant. 5. The PWM ramp time duration can be set using a defined constant. 6. The PWM signal can be set to invert the IGBT driver by a defined constant. Freescale Semiconductor, Inc... 7. The required PWM duty cycle is processed by an 8-sample moving average filter. Designer Reference Manual 16 DRM057 — Rev 0 Initial Design Conditions For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Section 3. Hardware Design This section describes the system hardware solution, and provides a block diagram, circuit schematic and PCB (printed circuit board) design. WARNING: This circuit is powered directly from the mains. It is dangerous to touch any part of the circuit, even if a 0% duty cycle is generated. Do not connect any computer, oscilloscope or development system to this circuit without using an isolation transformer. 3.1 Hardware Description Figure 3-1 shows a system block diagram of the chopper motor control board. The system comprises the following five major parts. • Power stage • 12 V power supply • Driving stage • 5 V power supply • Microcontroller, with user interface. Figure 3-2 is a schematic diagram of the chopper motor control board. The power stage consists of the input power bridge rectifier D2 with capacitor C1, the power IGBT transistor Q2, and the freewheeling diode D4. Diode D7 protects the IGBT against negative spikes. The 12 V power supply contains diode D1, and resistors for decreasing input voltage. This follows on to an adjustable precision shunt regulator TL431, with setting resistors R3 and R9, filtration capacitor C3, and smoothing capacitor C2. The primary function of the 12 V source is to feed the driving stage; a secondary function is to feed the 5 V supply. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Hardware Design For More Information On This Product, Go to: www.freescale.com 17 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Design Figure 3-1. Block Diagram The driving stage switches the power IGBT Q2 on the base of input logic signal from pin 7 of the microcontroller MC68HC908QT4. The IGBT is switched on via resistor R11; it is switched off via resistor R17 and a Schottky diode D6. The 5 V power supply feeds the microcontroller circuit. To achieve 5 V power supply from a 12 V source, a decreasing resistor R15, 5V1 zener diode D5, and smoothing capacitor C4 are used. The microcontroller circuit contains the MC68HC908QT4 microcontroller and supporting devices. The A/D converter, pin 6 of the microcontroller, provides the conversion of the input voltage from potentiometer R16 representing the required PWM duty cycle. Start and stop of the PWM signal generation is made on the strength of the interrupt generated by push button SW1 connected to pin 5 (IRQ) of microprocessor. To filter voltage noise, capacitor C6 (pin 1) is connected to Vdd, C7 is connected to A/D converter input (pin 6), and C7 is connected to IRQ (pin 5). NOTE: The potentiometer R16 should be connected to the PCB in the required manner. This means that if the potentiometer R16 is in a zero position, a 0% duty cycle is required, and the 0Ω resistance must be between “runner” and “-” of the potentiometer R16. Designer Reference Manual 18 DRM057 — Rev 0 Hardware Design For More Information On This Product, Go to: www.freescale.com MOTOROLA 1 2 D2 +12 V 5V1 D5 +5V MUR160 STTH8L06D R15 510 D7 KBU8J + D4 J4CON/FASTON MOTOR 1 2 J3CON/FASTON 1 2 J2CON/FASTON 230V AC - DRM057 — Rev 0 Hardware Design For More Information On This Product, Go to: www.freescale.com 1 2 3 4 MC68HC908QT4CP D6 BAT42 TL431 U1 Vss Vdd PTA5/OSC1PTA0/AD0/TCH0 PTA4/OSC2PTA1/AD1/TCH1 PTA3/RST PTA2/IRQ U2 R11 30 R9 6k8 R3 27k 8 7 6 5 100n C3 + C2 Figure 3-2. Circuit Schematic Diagram 10K C5 PAD PAD PAD R17 47 R8 68k/2W R7 68k/2W R6 68k/2W R2 68k/2W R1 68k/2W 100n 1 1 1 1M/275V C1 D1 1N4006 IGBT Q2 R16 + C4 100u/16V 1 2 T+ TR T- MOTOROLA 470u/25V J1CON/FASTON F1Fuse 8A 100n C6 PWM Q3 BC547 BC557 Q1 100n SW1 R12 6k8 C7 Freescale Semiconductor, Inc... R5 6k8 PWM ON/OFF PUSH BUTTON R14 6k8 Q4 BC547 R10 6k8 6V8 D3 R4 10k R13 3k3 +12 V Freescale Semiconductor, Inc. Hardware Design Hardware Description Designer Reference Manual 19 Freescale Semiconductor, Inc. Hardware Design 3.2 Parts List Freescale Semiconductor, Inc... Table 3-1. Parts List DESIGNATORS QUANTITY DESCRIPTION MANUFACTURER PART NUMBER C1 1 1M/275V ICEL MKT - X2 CLASS C2 1 470u/25V ELECTROLYTIC - ANY ACCEPTABLE C3,C5,C6,C7 4 100n/CERAMIC - ANY ACCEPTABLE C4 1 100u/16V ELECTROLYTIC - ANY ACCEPTABLE D1 1 800V/1A FAIRCHILD 1N4006 D2 1 600V/8A DIODE BRIDGE FAIRCHILD KBU8J D3 1 6V8 ZENER DIODE - ANY ACCEPTABLE D4 1 ULTRAFAST DIODE 600V/8A ST STTH8L06D D5 1 5V1 ZENER DIODE - ANY ACCEPTABLE D6 1 30V/4A SCHOTTKY DIODE ST BAT42 D7 1 600V/1A ULTRAFAST DIODE VISHAY MUR160 F1 1 FAST FUSE 8A ANY ACCEPTABLE J1,J2,J3,J4 4 CONNECTOR FASTON - ANY ACCEPTABLE Q1 1 -45V/-100mA PNP TRANSISTOR FAIRCHILD BC557 Q2 1 600V/20A HIGH FREQ. IGBT ST STGP20NB60H Q3,Q4 2 45V/500mA NPN TRANSISTOR FAIRCHILD BC547 R1,R2,R6,R7,R8, 5 68k/2W RESISTOR - ANY ACCEPTABLE R3 1 27k/0.6W RESISTOR - ANY ACCEPTABLE R4,R16 2 10k/0.6W RESISTOR - ANY ACCEPTABLE R5,R9,R10,R12,R14 5 6k8/0.6W RESISTOR - ANY ACCEPTABLE R11 1 30/0.6W RESISTOR - ANY ACCEPTABLE R13 1 3k3/0.6W RESISTOR - ANY ACCEPTABLE R15 1 510/0.6W RESISTOR - ANY ACCEPTABLE R17 1 47/0.6W RESISTOR - ANY ACCEPTABLE SW1 1 PUSH BUTTON - ANY ACCEPTABLE U1 1 ADJUSTABLE VOLTAGE REGULATOR ON SEMICONDUCTOR TL431 U2 1 MICROCONTROLLER MOTOROLA MC68HC908QT4CP Designer Reference Manual 20 DRM057 — Rev 0 Hardware Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Hardware Design PCB Design 3.3 PCB Design Figure 3-3 shows the design of the tracking side of the PCB. The design of the component side is shown in Figure 3-4. High current in the power stage is a limiting factor in the PCB design. Due to this current, the PCB copper thickness must be 0.35 µm at the minimum. Freescale Semiconductor, Inc... All power devices (rectifier, IGBT, freewheeling diode) and the board are mounted onto the heat sink placed under the board. The size of the heat sink depends on the size of the load, the switching devices used, and PWM frequency. Figure 3-3. PCB — Track Side DRM057 — Rev 0 MOTOROLA Designer Reference Manual Hardware Design For More Information On This Product, Go to: www.freescale.com 21 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Hardware Design Figure 3-4. PCB — Component Side Designer Reference Manual 22 DRM057 — Rev 0 Hardware Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Section 4. Software Design This section describes the design of the driver software blocks. The software is described in terms of: • Basic software description • Constants and variables definition • Flow chart description • Total microcontroller resource usage 4.1 Basic Software Description The application controls the universal motor. A chopper control is implemented. The software reads the user interface – the speed potentiometer and start/stop switch. It calculates the desired speed using a speed ramp and, accordingly, the PWM duty cycle is set and PWM is generated on the output. The system can be viewed on three levels (see Figure 4-1). • Pre-programming phase • Program restart • Main program loop During the pre-programming phase, the user can set the program behavior. For this purpose, some constants that determine system behavior are defined. More about constants setup is presented in this section. Program restart — the program starts when the board is connected to the mains. During this phase, a delay for system stabilization is performed, and the constants set the microcontroller peripheral to the required state. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 23 Freescale Semiconductor, Inc. Software Design The main program loop is performed as long as the board remains connected to the mains supply. Freescale Semiconductor, Inc... System and peripherals setup Set configuration registers Start Set initial output value on port A, Delay system start for 1.5 s to stabilize System constants system constants : INVERTING_DRIVER, F_PWM, K_AD RAMP_TIME void set_PWM(void) {enable timer overflow interrupt, set PWM configuration} void set_ADC(void) void set_IRQ(void) Pre-programming phase Enable interrupts Main program loop - 10ms interval flag + + IRQ pressed flag - - IRQ oscillation filter start/stop system (electronic switch) Is system switched on ? + Get sample of required speed and compute moving average Ramp step time over - + Is actual PWM value>required? + Decrement actual PWM value Is actual PWM value< required? + Increment actual PWM value - Is driver inverting? + Invert required PWM value considering PWMLEVELS - Set output PWM value : CH0MAX, TOV0, TCH0H, TCH0L Figure 4-1. Main Program Flow Chart Designer Reference Manual 24 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Software Design Constant and Variable Definitions Timer overflow subroutine test PWM period flag and choose right registers set output PWM value to TCH0H, TCH0L registers set output PWM value to TCH1H, TCH1L registers change PWM period flag count 10ms interval reti IRQ subroutine set IRQ pressed flag reti Figure 4-2. Interrupt Subroutine Flow Charts 4.2 Constant and Variable Definitions This section describes definitions and variables used in the program. Definitions can be grouped into two categories. • System setup definitions — defined by programmer/user • Auxiliary system definitions — dependent on the system setup definitions DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 25 Freescale Semiconductor, Inc. Software Design 4.2.1 System Setup Definitions These constants are available for the user/programmer to setup system behavior, according to required conditions. 1. #define PWMLEVELS 18 /*see PWM_setup.xls*/ The constant represents the number of possible PWM duty cycles from 0% to 100% duty cycle (see the following note). Freescale Semiconductor, Inc... for example: If PWMLEVELS EQU 5 is defined, then possible duty cycles are 0/4,1/4, 2/4, 3/4, 4/4. 2. #define F_PWM 32 /*1,2,4,8,16,32,64*/ The constant sets the timer clock prescaler, thus allowing changes to PWM frequency in a given range (see the following note). 3. #define K_AD 15 /*see PWM_setup.xls*/ The constant transforms the value of A/D converter, from interval <0;255> to the interval given by constant PWMLEVELS. Then the required PWM duty cycle is given by the formula: PWM = ADC Data register / K_AD (see the following note). NOTE: The constants PWMLEVELS, F_PWM, and K_AD can be easily changed by means of the PWM_setup.xls file [1]. An example table of PWM setup values for 3.2 MHz bus frequency, plus setup procedure, are presented in section 4.3.2. 4. #define RAMP_TIME 2000 /*[ms]*/ The constant defines the ramp duration from 0% PWM to 100% PWM. Unit is one millisecond. 5. #define INVERTING_DRIVER 0 /*x=x/1*/ The constant defines whether a non inverting (<>1) or inverting (=1) IGBT driver is used. This feature makes it easy to apply the program to systems where inverting drivers are used. In this application, a non inverting driver is used. Designer Reference Manual 26 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Software Design Constant and Variable Definitions 4.2.2 Auxiliary System Definitions The following auxiliary system constants are used in the program, and some of them depend upon the system setup definitions. 1. #define TIME1 10 /*[ms]*/ Defines the system timing constant in milliseconds. All actions are timed by their own counters that count the number of defined time intervals. Freescale Semiconductor, Inc... 2. #define P_1 (PWMLEVELS-1) An auxiliary definition for the following definitions. 3. #define K_10MS ((TIME1*3200/(P_1*F_PWM))+1) The constant defines the number of timer overflows during the defined timing constant. It depends on: i. PWM setting constants: - prescaler - F_PWM - number of PWM duty cycles - PWM_LEVELS ii. timing constant - TIME1 The expression in the definition is a simplified version of the following expression: TIME1 BusFrequency K_10MS = ⎛ ( int ) ⎛ ------------------- × ---------------------------------------------------------------------------------------------------------⎞ + 1⎞ ⎝ ⎝ 1000 ⎠ ( ( PWMLEVELS – 1 ) × TimerPrescaler )⎠ 4. #define RAMPSTEPTIME (RAMP_TIME/P_TIME1) The constant defines the time between two PWM levels change. 5. #define K_RAMP ((RAMPSTEPTIME/TIME1)+1) The constant defines the number of timing cycles between two PWM levels change. 6. #define MAXPWMVAL P_1 The variable represents the maximal PWM duty cycle that can be set for a chosen system setup. MAXPWMVAL = PWMLEVELS - 1 DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 27 Freescale Semiconductor, Inc. Software Design 4.2.3 System Variables This section describes static global variables used in the program. 1. static Byte ucOn_Off_PWM Freescale Semiconductor, Inc... The variable on_off_PWM is defined to realize an electronic switch. This variable switches on and off PWM generated on a given pin. If the value of this variable is 0x00, then PWM is off and a 0% duty cycle is generated. If the value of the constant is negated and its value is 0xFF, then the required PWM duty cycle is generated. The variable negation depends on IRQ interrupt (pressing push button SW1). 2. static Byte ucAct_PWM_val The variable represents the value that tracks the required PWM duty cycle by the given ramp. 3. static Byte ucEnd_PWM_val The variable represents the required PWM duty cycle. It is the result of the moving average from A/D conversions. 4. static Byte ucADCbuffer[8] The buffer saves the last eight A/D conversion values for use in moving average calculations. 5. static Byte uc_p_ADCbuff The variable points to the actual position in the ucADCbuffer. 6. static Word uwSum The variable represents the sum of all values of the ucADCbuffer. 7. static Byte ucAct_Period The variable enables writing the required PWM duty cycle value into the appropriate TCHxH, TCHxL registers to perform a buffered PWM generation. It symbolizes the just finished period (0x00 => TCH0H, TCH0L; 0xFF => TCH1H, TCH1L), The new duty cycle value can be written into thus marked registers. Designer Reference Manual 28 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Software Design Constant and Variable Definitions 8. static Byte ucOut_PWM The variable represents the actual resultant value of the PWM duty cycle that can be written into the registers TCHxH, TCHxL. 9. static Byte ucIRQ_Flag Freescale Semiconductor, Inc... This flag is set (0xFF) when the IRQ interrupt is generated and it starts counting three 10 ms intervals by means of the variable ucCountIRQ_10ms. Having finished counting, the variable is cleared and the IRQ pin is tested again (button oscillations filter). If its value is still log.0, the variable ucOn_Off_PWM is inverted. Otherwise, no action is performed. 10. static Byte uc10ms_Flag The flag informs the system that the 10 ms interval has run. This happens when the variable ucCount_10ms, incremented at every timer overflow, reaches constant K_10MS. 11. static Byte ucCount_10ms The variable represents the number of timer overflows required to generate a 10 ms interval. When the variable value reaches constant K_10MS, the flag uc10ms_Flag is set. 12. static Byte ucCountIRQ_10ms The variable represents the number of 10 ms intervals required to perform an IRQ button oscillation filter. Counting starts after the IRQ interrupt is generated. When the value of the variable is 3 (30 ms oscillation filter), and the IRQ pin still has the value log.0, the variable ucOn_Off_PWM (software start/stop switch) is inverted. 13. static Word uwCount_RampStep_10ms; The variable represents the number of 10 ms intervals required to perform PWM ramp. When the value of the variable reaches constant K_RAMP, the PWM duty cycle can be changed. DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 29 Freescale Semiconductor, Inc. Software Design 4.3 Flow Chart Description The software flow charts can be seen in Figure 4-2. The software solution can be divided into two parts — system plus peripherals setup and main loop. Source code can be found in [2]. 4.3.1 System Setup Freescale Semiconductor, Inc... Prior to running the main program loop the system setup sets the microcontroller operation mode and peripherals. The quickest way to set the microcontroller peripherals is to use the auxiliary excel sheet [1], or for 3.2 MHz bus frequency, use Figure 4-3. To achieve the required system behavior and communication with peripherals, the following registers and initial values are set. This action can be seen in the flow chart as subroutine calls. 1. Set configuration registers - void set_OSC(void) The microcontroller configuration registers Config2 and Config1 initialize the microcontroller to the user defined option. They can be written only once after each reset. The register Config1 sets: – disable COP – disable STOP instruction – disable LVI module and the register Config2 sets: – internal oscillator – interrupt request function active in pin (to start and stop the system by pressing push button SW1) (see Figure 3-2) – IRQPUD must be 0 to connect the internal pull-up resistor between IRQ pin and Vdd. 2. Set ADC - void Set_ADC(void) This subroutine sets the A/D converter clock. ADC clock = bus clock / prescaler. Designer Reference Manual 30 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Software Design Flow Chart Description The recommended value for the ADC clock is 1 MHz. 3. Buffered PWM setup - void Set_PWM(void) The subroutine initializes the PWM values, sets 0% duty cycle on the PWM output, and sets the variables for the moving average computation. On the strength of the constant F_PWM, the subroutine sets the prescaler of the timer clock and the buffered PWM in the TSC register. Subsequently, it sets the TMODH and TMODL registers according to the value of the constant PWMLEVELS. Register TMODH is cleared, and the value of PWMLEVELS-2 is written into register TMODL. For a better understanding of PWM setup and logic, see section 4.3.2 PWM Duty Cycle Setup Logic. Moreover, timer overflow interrupt is enabled to perform buffered PWM and system timing. 4. IRQ interrupt setup - void set _IRQ(void) The subroutine sets IRQ interrupt on a falling edge. 4.3.2 PWM Duty Cycle Setup Logic For setting unbuffered PWM, the timer registers must be set correctly. Consider five levels of PWM and a non-inverting IGBT driver. That means the PWM duty cycle can be set to {0/4, 1/4, 2/4, 3/4, 4/4} *100%. Thus, the required PWM value can be 0, 1, 2, 3, 4. According to MC68HC908QT4 data sheet PWM duty cycle: • 0/4*100% (required PWM value 0). Requires clearing bits CHxMAX and TOVx in the register TSCx. • 1/4*100% (required PWM value 1). Requires TOVx = 1, CHxMAX = 0, TCHxH = 0, TCHxL = required PWM value -1 = 0 • 2/4*100% (required PWM value 2). Requires TOVx = 1, CHxMAX = 0, TCHxH = 0, TCHxL = required PWM value -1 = 1 DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 31 Freescale Semiconductor, Inc. Software Design • 3/4*100% (required PWM value 3). Requires TOVx = 1, CHxMAX = 0, TCHxH = 0, TCHxL = required PWM value -1 = 2 • 4/4*100% (required PWM value 4). Requires setting bits CHxMAX and TOVx in the register TSCx. If the constant INVERTING_DRIVER selects an inverting driver, the duty cycle percentage is in an inverse order. Freescale Semiconductor, Inc... Timer modulo register TMODL must be set to value PWMLEVELS-2 to ensure that the timer counts PWMLEVELS-1 times until it overflows. The PWM frequency is affected by the setup of the prescaler value in the TSC register. The constant F_PWM represents the prescaler value. Consequently, the PWM frequency is given by the equation: BusFrequency PWM frequency = ⎛ ------------------------------------------------------------------------------------------------⎞ ⎝ ( PWMLEVELS – 1 ) × TimerPrescaler⎠ [ Hz; Hz, -, - ] The timer prescaler is represented by the constant F_PWM. As an example, Table 4-3 presents the PWM setup for 3.2 MHz bus frequency. The sequence of constants selection is as follows: 1. Consider a PWM with an accuracy of 18 PWM duty cycles. (PWMLEVELS = 18 => 0/17,1/17,.......,16/17,17/17) 2. In the same line, choose one of the possible frequencies (for example, 5882 Hz). (Make sure that the choice of PWM frequency is feasible for the system — the limiting factor is the IGBT switching frequency.) 3. From the same column, read timer prescaler (bits PS2,PS1,PS0 of the register TSC). In this application, the constant K_AD represents the prescaler value of the timer. 4. If the duty cycle setup depends on the value from the A/D converter, the resultant A/D conversion value for TCHcH, TCHxL registers must be divided by the value K_AD read from the line given by PWMLEVELS. Designer Reference Manual 32 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Software Design Flow Chart Description Freescale Semiconductor, Inc... As can be seen, another approach comes from the PWM frequency definition and the consequential configuration of the other parameters given by the equation given above. Figure 4-3. PWM Setup for 3.2 MHz Bus Frequency DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 33 Freescale Semiconductor, Inc. Software Design 4.3.3 Main Program Loop The functions of the main program loop can be summarized as follows. • System timing. The whole system is timed in 10 ms intervals given by the definition of the constant K_10MS. • PWM switch on/off testing. Freescale Semiconductor, Inc... Testing consists of comparison value of the variable ucOn_Off_PWM. If the value is 0, then a 0% PWM duty cycle is generated immediately, and both the actual and required PWM values are set to 0. If the value is 0xFF, then the generated PWM duty cycle tracks the required PWM duty cycle with a given ramp. The variable ucOn_Off_PWM is hung on IRQ interrupt. When an interrupt is generated, the variable ucIRQ_Flag is set. Then, after a given time repeated IRQ pin checking eliminates push button oscillations. If the value of the IRQ pin is still log.0, the complement of the variable ucOn_Off_PWM is calculated. • A/D conversion. • Required PWM duty cycle tracking by the actually generated PWM duty cycle with a delay ramp. The tracking is performed by means of the subroutine countADCavg() that computes the moving average from eight consecutive A/D converter values. Designer Reference Manual 34 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Software Design Microcontroller Resource Usage 4.4 Microcontroller Resource Usage 4.4.1 ROM and RAM Usage Table 4-1 shows software memory usage. A significant part of the memory is still available. Table 4-1. Memory Usage Memory Available on QT4 Used ROM 4096 Bytes 680 Bytes RAM 128 Bytes 23 Bytes 4.4.2 I/O Usage Table 4-2 summarizes the use of the I/O pins. It can be seen that three pins are still available. Table 4-2. I/O Usage I/O pin Direction Purpose PTA0/AD1/TCH0/KBI0 OUTPUT TCH0 (PWM) PTA1/AD1/TCH1/KBI1 INPUT AD1 (INPUT SPEED) PTA2/IRQ/KBI2 INPUT IRQ (ON/OFF PWM) PTA3/\RST/KBI3 UNUSED UNUSED PTA4/OSC2/AD2/KBI4 UNUSED UNUSED PTA5/OSC1/AD3/KBI5 UNUSED UNUSED DRM057 — Rev 0 MOTOROLA Designer Reference Manual Software Design For More Information On This Product, Go to: www.freescale.com 35 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Software Design Designer Reference Manual 36 DRM057 — Rev 0 Software Design For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Section 5. System Setup WARNING: This circuit is powered directly from the mains. It is dangerous to touch any part of the circuit, even if a 0% duty cycle is generated. Do not connect any computer, oscilloscope or development system to this circuit without using an isolation transformer. 5.1 Hardware Setup The hardware setup is very simple. Line voltage 230 V AC must be connected to the connectors labelled “230V AC“, and motor must be connected to the connectors labelled “DC+“ and “DC-”. The potentiometer R16 is connected to the pads labelled “POT.10k“. For the right potentiometer connection, see the note on page 18. The push button SW1 is connected to the pads labelled “PUSH BUTTON”. 5.2 Software Setup The software setup is covered in section 4.2.1 System Setup Definitions. 5.3 Required Software Tools Metrowerks CodeWarrior for MC68HC08 microcontrollers version 3.0, or later is required for the development of the application. DRM057 — Rev 0 MOTOROLA Designer Reference Manual System Setup For More Information On This Product, Go to: www.freescale.com 37 Freescale Semiconductor, Inc. System Setup 5.4 Building and Uploading the Application The application software is delivered as UM_Chopper_QY4.mcp project file with C-source and header files UM_Chopper_QY4.c and UM_Chopper_QY4.h. The executable s19 file can be created using Metrowerks CodeWarrior. Freescale Semiconductor, Inc... 5.5 Executing the Application The application is prepared for operation when connected to a power supply and the 1.5 s software delay finishes. The delay is included to allow the system to stabilize after the mains power is connected, to prevent unwanted PWM generation. Subsequently, the START/STOP push button SW1 can be pressed to start PWM generation. The PWM duty cycle is set by the potentiometer R16 with a given ramp. Designer Reference Manual 38 DRM057 — Rev 0 System Setup For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Designer Reference Manual — Chopper using MC68HC908QT4 Appendix A. Abbreviations and Definitions AC alternating current. A/D converter, ADC analog to digital converter: the module is a 4-channel, multiplexed-input successive-approximation analog to digital converter. Buffered a system that uses two registers for data; new data is read alternately. Bus clock the clock signal on the CPU’s internal bus. See “CPU cycles”. Clear to change a bit from logic 1 to logic 0; the opposite of to set. Clock a square wave signal used to synchronize events in a computer. COP computer operating properly. CPU central processing unit. CPU cycles a CPU cycle is one period of the internal bus clock, normally derived by dividing a crystal oscillator source by two or more so the high and low times will be equal. The length of time required to execute an instruction is measured in CPU clock cycles. CISC complex instruction set computer. Cycle time The period of the operating frequency: tcyc = 1/fop. DC direct current. Duty cycle the ratio of the amount of time the signal is on to the time it is off. Duty cycle is usually represented by a percentage. EMC electromagnetic compatibility. Interrupt a temporary break in the sequential execution of a program to respond to signals from peripheral devices by executing a subroutine. Interrupt request a signal from a peripheral to the CPU intended to cause the CPU to execute a subroutine. IGBT insulated gate bipolar transistor. I/O input/output. Logic 1 a voltage level approximately equal to the input power voltage (Vdd). DRM057 — Rev 0 MOTOROLA Designer Reference Manual Abbreviations and Definitions For More Information On This Product, Go to: www.freescale.com 39 Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. Abbreviations and Definitions Logic 0 a voltage level approximately equal to the ground voltage (Vss). LVI low voltage inhibit. MCU microcontroller unit: a complete computer system, including a CPU, memory, a clock oscillator, and input/output (I/O) on a single integrated circuit. Oscillator a circuit that produces a constant frequency square wave that is used by the computer as a timing and sequencing reference. Overflow a quantity that is too large to be contained in one byte or one word. PCB printed circuit board. Peripheral a circuit not under direct CPU control. Prescaler a circuit that divides input signal by given value. Program a set of computer instructions that cause a computer to perform a desired operation or operations. PWM pulse width modulation: controlled variation (modulation) of the pulse width of a signal with a constant frequency. PWM period the duration of one complete cycle of a PWM waveform. RAM random access memory. All RAM locations can be read or written by the CPU. The contents of a RAM memory location remain valid until the CPU writes a different value or until power is turned off. Register a circuit that stores a group of bits. Reset to force a device to a known condition. Set to change a bit from logic 0 to logic 1; opposite of clear. Software instructions and data that control the operation of a microcontroller. Subroutine a sequence of instructions to be used more than once in the course of a program. The last instruction in a subroutine is a return from subroutine (RTS) instruction. At each place in the main program where the subroutine instructions are needed, a jump or branch to subroutine (JSR or BSR) instruction is used to call the subroutine. The CPU leaves the flow of the main program to execute the instructions in the subroutine. When the RTS instruction is executed, the CPU returns to the main program where it left off. Timer a module used to relate events in a system to a point in time. Unbuffered a system that uses only one register for data; new data overwrites current data. Variable a value that changes during the course of program execution. Word a set of two bytes (16 bits). Designer Reference Manual 40 DRM057 — Rev 0 Abbreviations and Definitions For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. HOW TO REACH US: USA/EUROPE/LOCATIONS NOT LISTED: Motorola Literature Distribution; P.O. Box 5405, Denver, Colorado 80217 1-303-675-2140 or 1-800-441-2447 JAPAN: Motorola Japan Ltd.; SPS, Technical Information Center, 3-20-1, Minami-Azabu Minato-ku, Tokyo 106-8573 Japan 81-3-3440-3569 ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd.; Silicon Harbour Centre, 2 Dai King Street, Tai Po Industrial Estate, Tai Po, N.T., Hong Kong 852-26668334 Information in this document is provided solely to enable system and software implementers to use Motorola products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. TECHNICAL INFORMATION CENTER: Motorola reserves the right to make changes without further notice to any products 1-800-521-6274 herein. Motorola makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Motorola assume any HOME PAGE: http://motorola.com/semiconductors liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters which may be provided in Motorola data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur. Should Buyer purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Motorola was negligent regarding the design or manufacture of the part. Motorola and the Stylized M Logo are registered in the U.S. Patent and Trademark Office. digital dna is a trademark of Motorola, Inc. All other product or service names are the property of their respective owners. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer. © Motorola, Inc. 2004 DRM057 For More Information On This Product, Go to: www.freescale.com