Você está na página 1de 48

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

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

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

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

Types of Pulse Width

10/29/2009

Pulse Width Modulation - Val Tocitu,


Jason Kulpe, Alex Mariuzza

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

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

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 doesnt 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


Upper
Limits
Lower
Limits
Signal
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 motors
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

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

BIGGER

SMAL
L

Texas Instruments
TAS5508B
8-Channel Digital
Audio PWM
Processor
64 pin chip, max
192 kHz frequency
$7.25
10/29/2009

18 kHz frequency
Continuous 28
amps
Pulse Width
Modulation - Val Tocitu,
$55.95
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
8 106
Prescaler 8
3.91 4 PWMPRCLK $02
(2 1) 8 103

Desired Signal:
8 kHz PWM signal
Duty Cycle of 30%
Left Aligned
Channel 1
Low High
8-bit channel

8 10 6

4
2 10 6

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
EQU
PWMPOL EQU
PWMCLK EQU
PWMPRCLK
PWMCAE
PWMCTL EQU
PWMPER1
PWMDTY1
ORG
LDAA
STAA
STAA
STAA
STAA
LDAA
STAA
LDAA
STAA
LDAA
STAA
STAA

10/29/2009

$00E0
$00E1
$00E2
EQU
EQU
$00E5
EQU
EQU

$00E3
$00E4
$00F3
$00F9

$1000
#$00
PWMCLK ; Sets source clocks to clock A
PWMPOL ; The signal goes from low to high
PWMCTL ; Makes all channels 8-bit
PWMCAE ; Signals are left aligned
#$FA
PWMPER1
; Sets the period to 250 clock cycles
#$AF
PWMDTY1
; Makes the duty cycle equal to 30%
#$02
PWMPRCLK
; Sets the prescaler to 4
PMWE
; 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
.

10/29/2009

Pulse Width Modulation - Val Tocitu,


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

Você também pode gostar