About PWM
About PWM
Course Calendar the amount of current drawn from a battery is not limited to a finite set of possible values.
Analog signals are distinguishable from digital signals because the latter always take
Spring 2009 embedded
values only from a finite set of predetermined possibilities, such as the set {0V, 5V}.
training courses now open for
registration. Check out the Analog voltages and currents can be used to control things directly, like the volume of a car
schedule. radio. In a simple analog radio, a knob is connected to a variable resistor. As you turn the
knob, the resistance goes up or down. As that happens, the current flowing through the
resistor increases or decreases. This changes the amount of current driving the speakers,
thus increasing or decreasing the volume. An analog circuit is one, like the radio, whose
output is linearly proportional to its input.
As intuitive and simple as analog control may seem, it is not always economically attractive
or otherwise practical. For one thing, analog circuits tend to drift over time and can,
therefore, be very difficult to tune. Precision analog circuits, which solve that problem, can
Embedded C Quiz
be very large, heavy (just think of older home stereo equipment), and expensive. Analog
Test your embedded software circuits can also get very hot; the power dissipated is proportional to the voltage across the
skills in our online quiz and active elements multiplied by the current through them. Analog circuitry can also be
get a 30% discount on Netrino sensitive to noise. Because of its infinite resolution, any perturbation or noise on an analog
Institute training and win a signal necessarily changes the current value.
free book.
Digital control
By controlling analog circuits digitally, system costs and power consumption can be
drastically reduced. What's more, many microcontrollers and DSPs already include on-chip
PWM controllers, making implementation easy.
In a nutshell, PWM is a way of digitally encoding analog signal levels. Through the use of
high-resolution counters, the duty cycle of a square wave is modulated to encode a
specific analog signal level. The PWM signal is still digital because, at any given instant of
Newsletter Signup time, the full DC supply is either fully on or fully off. The voltage or current source is
Receive public course dates, supplied to the analog load by means of a repeating series of on and off pulses. The on-
how-to articles, and more. time is the time during which the DC supply is applied to the load, and the off-time is the
Learn more. period during which that supply is switched off. Given a sufficient bandwidth, any analog
value can be encoded with PWM.
Figure 1 shows three different PWM signals. Figure 1a shows a PWM output at a 10% duty
Articles cycle. That is, the signal is on for 10% of the period and off the other 90%. Figures 1b and
Categories 1c show PWM outputs at 50% and 90% duty cycles, respectively. These three PWM
outputs encode three different analog signal values, at 10%, 50%, and 90% of the full
http://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-Width-Modulation 11.04.2009
Introduction to Pulse Width Modulation (PWM) | Netrino Page 2 of 3
Embedded C/C++ strength. If, for example, the supply is 9V and the duty cycle is 10%, a 0.9V analog signal
Hardware results.
Interfacing
Network Protocols
Processes and
Tools
Programming
Algorithms
Real-Time Java
Real-Time
Operating Systems
User Interface
Design
Most loads, inductive and capacitative alike, require a much higher modulating frequency
than 10 Hz. Imagine that our lamp was switched on for five seconds, then off for five
seconds, then on again. The duty cycle would still be 50%, but the bulb would appear
brightly lit for the first five seconds and off for the next. In order for the bulb to see a voltage
of 4.5 volts, the cycle period must be short relative to the load's response time to a change
in the switch state. To achieve the desired effect of a dimmer (but always lit) lamp, it is
necessary to increase the modulating frequency. The same is true in other applications of
PWM. Common modulating frequencies range from 1 kHz to 200 kHz.
PWM controllers
Many microcontrollers include on-chip PWM controllers. For example, Microchip's
PIC16C67 includes two, each of which has a selectable on-time and period. The duty cycle
is the ratio of the on-time to the period; the modulating frequency is the inverse of the
period. To start PWM operation, the data sheet suggests the software should:
Set the period in the on-chip timer/counter that provides the modulating square wave
Set the on-time in the PWM control register
Set the direction of the PWM output, which is one of the general-purpose I/O pins
Start the timer
Enable the PWM controller
Although specific PWM controllers do vary in their programmatic details, the basic idea is
generally the same.
http://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-Width-Modulation 11.04.2009
Introduction to Pulse Width Modulation (PWM) | Netrino Page 3 of 3
Increased noise immunity is yet another benefit of choosing PWM over analog control, and
is the principal reason PWM is sometimes used for communication. Switching from an
analog signal to PWM can increase the length of a communications channel dramatically.
At the receiving end, a suitable RC (resistor-capacitor) or LC (inductor-capacitor) network
can remove the modulating high frequency square wave and return the signal to analog
form.
The output of a PWM controller could be connected to a switch between the supply and the
brake. To produce more stopping power, the software need only increase the duty cycle of
the PWM output. If a specific amount of braking pressure is desired, measurements would
need to be taken to determine the mathematical relationship between duty cycle and
pressure. (And the resulting formulae or lookup tables would be tweaked for operating
temperature, surface wear, and so on.)
To set the pressure on the brake to, say, 100 psi, the software would do a reverse lookup
to determine the duty cycle that should produce that amount of force. It would then set the
PWM duty cycle to the new value and the brake would respond accordingly. If a sensor is
available in the system, the duty cycle can be tweaked, under closed-loop control, until
the desired pressure is precisely achieved.
PWM is economical, space saving, and noise immune. And it's now in your bag of tricks.
So use it.
This article was published in the September 2001 issue of Embedded Systems
Programming. If you wish to cite the article in your own work, you may find the following
MLA-style information helpful:
Netrino® and The Embedded Systems Expertssm are trademarks of Netrino, LLC.
Website contents copyright © 1999-2009 by Netrino, LLC. All rights reserved.
http://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-Width-Modulation 11.04.2009