* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Slide 1
Electromagnetic compatibility wikipedia , lookup
Resistive opto-isolator wikipedia , lookup
Electronic engineering wikipedia , lookup
Chirp spectrum wikipedia , lookup
Variable-frequency drive wikipedia , lookup
Opto-isolator wikipedia , lookup
Chirp compression wikipedia , lookup
Power electronics wikipedia , lookup
Time-to-digital converter wikipedia , lookup
ME 4447/6405 October 29th, 2009 By: Val Tocitu Jason Kulpe Alexandre Mariuzza Presenter: Val Tocitu  Introduction and definitions  Types of PWM  Methods of generation  Characteristics of PWM  Applications and examples  Implementation on the HCS12 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 2 What is it?  Output signal alternates between on and off within specified period  Controls power received by a device  The voltage seen by the load is directly proportional to the source voltage 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 3 Definitions  Duty Cycle: on-time / period  Vlow is often zero VAVG  DVHI  (1  D)VLOW 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 4 Types of Pulse Width  Pulse center fixed, edges modulated  Leading edge fixed, tailing edge modulated  Tailing edge fixed, leading edge modulated  Pulse Width constant, period modulated 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 5 Types of Pulse Width 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 6 Analog Generation of PWM Analog PWM signals can be made by combining a saw- tooth waveform and a sinusoid PWM output is formed by the intersection of the saw-tooth wave and sinusoid 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 7 Digital Methods of Generating PWM  Digital: Counter used to handle transition  Delta : used to find the PWM at a certain limit  Delta Sigma: used to find the PWM but has advantage of reducing optimization noise 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 8 Applications to DC Motors • The voltage supplied to a DC motor is proportional to the duty cycle • Both brushed and brushless motors can be used with PWM • Both analog and digital control techniques and components are available 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 11 Three Phase AC motors with PWM  3 different AC currents at different phases  Phase: 120 degrees apart  Creates constant power transfer  Rotating magnetic field  Pulses substitute for AC current 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 12 Space Vector Modulation  Used for three-phase AC motors  Convert DC current to AC current  Gates turned on/off at different intervals  3 PWM created 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 13 Motor Control Diagrams 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 14 Advantages of PWM • average value proportional to duty cycle, D • low power used in transistors used to switch the signal • fast switching possible due to MOSFETS and power transistors at speeds in excess of 100 kHz • digital signal is resistant to noise • less heat dissipated versus using resistors for intermediate voltage values 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 15 Disadvantages of PWM  Cost  Complexity of circuit  Radio Frequency Interference  Voltage spikes  Electromagnetic noise 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 16 Presenter: Jason Kulpe  Introduction and definitions  Types of PWM  Methods of generation  Characteristics of PWM  Applications and examples  Implementation on the HCS12 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 17 Applications of PWM • In the past, motors were controlled at intermediate speed by using resistors to lower delivered power • Electric stove heater • Lamp dimmers • Voltage regulation – convert 12 volts to 5 volts by having a 41.7% duty cycle • Sound production: PWM controlled signals give sound effects similar to a chorus • Power transfer: PWM used to reduce the total power given to a load without relying on resistive losses 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 18 PWM used with D/A conversion • commonly used in toys • lowpass filter smooths out transients from harmonic effects • frequency values of harmonics doesn’t change, but the amplitude does, which adjusts the analog output signal 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 19 PWM used to transmit data in telecommunications • clock signal is found “inside” PWM signal • more resistant to noise effects than binary data alone • effective at data transmission over long distance transmission lines 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 20 Frequency of the PWM Signal Upper Limits Lower Limits 1. Must be at least 10 times higher than the control system frequency 2. Higher than 20kHz – audible frequency of sounds to avoid annoying sound disturbances, caused by magnetostriction 3. If too low the motor is pulsed, not continuous, because the motor’s inductance can not maintain the current 4. Inverse of frequency should be much less than the motor/load time constant 5. Higher error from ripple voltages 10/29/2009 1. If too high the inductance of the motor causes the current drawn to be unstable 2. MOSFET transistor generates heat during switching 3. Limited by resolution of controller 4. Eddy currents generated in electromagnetic coils which lead to adverse heating 5. Heat losses in electromagnetic materials is proportional to frequency squared Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 22 Example: PWM with 555 Timer Potentiometer is used to adjust the duty cycle 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 23 Example: Specifying circuit elements Requirements 1. Maxon EC-16 brushless motor, Time constant = 8.75 ms 1  8.5 ms  f f 117 Hz 2. Want to avoid audible frequencies f ≥ 20 kHz 3. PID control loop running at 150 Hz f ≥ 10 ∙ 150 Hz 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 24 Example: Specifying circuit elements This circuit has a PWM frequency according to: 1.44 f  R1C1 Check constraints Set f to 25 kHz to add in a factor of safety Choosing C1 to be 100 nF, R1 is 576 Ω ~ 500 Ω Recalculating with these values f = 28.8 kHz 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza f ≥ 117 Hz ≥ 20 kHz ≥ 1.5 kHz 25 Matlab can do PWM! The procedure works similar to the generation of analog PWM using a sinusoid and saw-tooth wave 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 26 Where can I buy a PWM controller? Texas Instruments Digikey Mouser Electronics Critical Velocity Motor Control SMALL Texas Instruments TAS5508B 8-Channel Digital Audio PWM Processor 18 kHz frequency 64 pin chip, max 192 kHz Continuous 28 amps frequency $55.95 $7.25 Pulse Width Modulation - Val Tocitu, 10/29/2009 Jason Kulpe, Alex Mariuzza 120 amps, used for hybrid vehicles $469.00 H U G E 27 Presenter: Alex Mariuzza  Introduction and definitions  Types of PWM  Methods of generation  Characteristics of PWM  Applications and examples  Implementation on the HCS12 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 28 PWM Implementation  The signal is outputted through Port P  Six Channels  Dedicated Chip 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 29 PWM Module  Each channel has a dedicated counter  Programmable duty and period  Independently adjustable clock, polarity, and alignment 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 30 PWM Module- Other Features  8-bit and 16-bit resolution supported  Two PWM channels can be concatenated together  Four source clocks (A, SA, B, SB)  Emergency Shutdown  Some changes take a complete cycle to be implemented  Modes of Operation:  Normal: everything is available  Wait: Low-power consumption and clock disabled  Freeze: Option to disable clock is available 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 31 PWM Configuration  Configured through specific registers  Registers are located from $00E0 to $00FE  There are repeated registers (ex. 0013-0017) 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 32 PWM Enable Register  Located at $00E0  Code Warrior variable: PWME  Set PWMEx to 0 to disable the channel  Set PWMEx to 1 to enable it  Channel is activated when bit is set  If 16-bit resolution used, then PWME4/2/0 are deactivated 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 33 PWM Polarity Register  Located at $00E1  Code Warrior variable : PWMPOL  Set PPOLx to 0, signal goes from low to high  Set PPOLx to 1, signal goes from high to low 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 34 PWM Clock Select Register  Located at $00E2  Code Warrior variable : PWMCLK  Set PCLK5/4/1/0 to 0 to use clock A  Set PCLK5/4/1/0 to 1 to use clock SA  Set PCLK3/2 to 0 to use clock B  Set PCLK3/2 to 1 to use clock SB 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 35 PWM Prescaler Register  Located at $00E3  Variable: PWMPRCLK  Used to prescale clocks A and B Bus Clock Frequency Resolution  PWM Frequency  Bus Clock Frequency  N (2  1)  PWM Frequency  Presclarer  10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 36 PWM Scale A Register  Located at $00E8  Code Warrior variable: PWMSCLA  Store a hexadecimal value in order to change the clock frequency of SA  Note: if set to $00, PWMSCLA is set to 256 10/29/2009 Clock SA Frequency  Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza Clock A Frequency 2  PWMSCLA 37 PWM Scale B Register  Located at $00E9  Code Warrior variable: PWMSCLB  Store a hexadecimal value in order to change the clock frequency of SA  Note: if set to $00, PWMSCLB is set to 256 10/29/2009 Clock SB Frequency  Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza Clock B Frequency 2  PWMSCLB 38 PWM Center Align Register  Located at $00E4  Code Warrior variable: PWMCAE  Set CAEx to 0 for left align signal  Set CAEx to 1 for center align signal  Note: can only be set when channel is disabled 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 39 Signal Alignment  Signal changes when counter is equal to period register  In the center aligned mode, the PWM counter goes from a down-count to a up-count to down-count, etc.  In the left aligned mode, the PWM counter is a up-counter and rests to zero when it overflows 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 40 PWM Control Register  Located at $00E5  Code Warrior variable: PWMCTL  Set CONxy to 0 to keep PWM channels separate (8-bit)  Set CONxy to 1 to concatenate PWM channels x and y together (16    bit). Channel y determines the configuration x becomes the high byte and y becomes the low byte Bits PSWAI and PFRZ set either wait or freeze mode Changes only occur when channels are disabled 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 41 PWM Counter Register  Located at $00EC through $00F1  Code Warrior variable: PWMCNTx  One per channel  It tracks the cycle counts  It can be read  If written to, the count is reset to $00 and a up-count starts 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 42 PWM Period Register  Located at $00F2 through $00F7  Variable: PWMPERx  Store a hexadecimal value to limit maximum value of counter  Changes occur when:  Current period ends  Counter is written to  Channel is disabled 10/29/2009 Left-Aligned: PWMPERx  PWM Source Frequency PWM Signal Frequency Center-Aligned: PWM Source Frequency PWMPERx  2  PWM Signal Frequency Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 43 PWM Duty Register • • • • Located at $00F8 through $00FD Code Warrior variable: PWMDTYx Store a hexadecimal value to control when signal changes Changes occur when: • Current period ends • Counter written to • Channel is disabled Duty Cycle  PWMPERx 100 Duty Cycle  PWMPERx Polarity = 1: PWMDTYx  100 Polarity = 0: PWMDTYx  PWMPERx 10/29/2009 44 PWM Shutdown Register • • • • • • • Located at $00FE Code Warrior variable: PWMSDN PWMENA: Enables and disables emergency shut down PWMIF (Interrupt flag): Set when an input is detected in pin 5 PWMIE (Interrupt Enable): Enables and disables CPU interrupts PWMRSTRT: Resets the counters PWMLVL (Shutdown Output Level): Determines if output is high or low when shutdown • PWM5IN (Input Status): Reflects status of pin 5 45 • PWM5INL: Determines active level of pin 5 How it all works Clock A, SA, B, or SB 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 46 Example  Desired Signal:  8 kHz PWM signal  Duty Cycle of 30%  Left Aligned  Channel 1  Low → High  8-bit channel 8 106 Prescaler  8  3.91  4  PWMPRCLK  $02 (2  1)  8 103    8 106    4 2 106   PWMPER1    250  $FA 8 103 8 103 PWMDTY1  250 - 30  250  175  $AF 100 PWMCLK  $00 PWMCAE  $00 PWMPOL  $00 PWMCTL  $00 PWME  $02 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 47 Assembly Code PWME PWMPOL PWMCLK PWMPRCLK PWMCAE PWMCTL PWMPER1 PWMDTY1 10/29/2009 EQU EQU EQU EQU EQU EQU EQU EQU $00E0 $00E1 $00E2 $00E3 $00E4 $00E5 $00F3 $00F9 ORG LDAA STAA STAA STAA STAA LDAA STAA LDAA STAA LDAA STAA STAA …… $1000 #$00 PWMCLK PWMPOL PWMCTL PWMCAE #$FA PWMPER1 #$AF PWMDTY1 #$02 PWMPRCLK PMWE ; Sets source clocks to clock A ; The signal goes from low to high ; Makes all channels 8-bit ; Signals are left aligned ; Sets the period to 250 clock cycles ; Makes the duty cycle equal to 30% ; Sets the prescaler to 4 ; Enables and starts channel 1 48 C Code #include <hidef.h> /* common defines and macros */ #include <mc9s12c32.h> /* derivative information */ #pragma LINK_INFO DERIVATIVE “mc9s12c32” // Set up chip in expanded mode MISC = 0x03; PEAR = 0x0C; MODE = 0xE2; //Set up PWM Registrer PWMCLK = 0; // Sets source clocks to clock A PWMPOL = 0; // The signal goes from low to high PWMCTL = 0; // Makes all channels 8-bit PWMCAE = 0; // Signals are left aligned PWMPER1 = 250; // Sets the period of the signal to 250 clock PWMDTY1 = 175; // Makes the duty cycle equal to 30% PWMPRCLK = 2; //Sets the prescaler to 4 PMWE = 2; //Enables and starts channel 1 …. Pulse Width Modulation - Val Tocitu, 10/29/2009 Jason Kulpe, Alex Mariuzza 49 REFERENCES http://en.wikipedia.org/wiki/Pulse-width_modulation http://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-Width-Modulation Cetinkunt, Sabri. Mechatronics. Hoboken, NJ: Wiley, 2006. Print. http://www.jimfranklin.info/microchipdatasheets/00538c.pdf http://www.allaboutcircuits.com/vol_6/chpt_6/9.html http://www.dprg.org/tutorials/2005-11a/index.html http://www.4qdtec.com/pwm-01.html http://skywalker.cochise.edu/rgill/ch02elec.ppt http://pcbheaven.com/wikipages/PWM_Modulation/ Matlab 2009 online documentation http://www.epanorama.net/links/motorcontrol.html#ac MC9S12C Family, MC9S12GC Family Reference Manual, (pp. 347-382) 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 50 Questions? 10/29/2009 Pulse Width Modulation - Val Tocitu, Jason Kulpe, Alex Mariuzza 51
 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                            