Вы находитесь на странице: 1из 18

4.

3 Modulacin por ancho de pulso


(PWM)
Microcontroladores
M. C. Felipe Santiago Espinosa

Abril de 2015

Modulacin por Ancho de Pulso


(PWM - Pulse Width Modulation)

La modulacin por ancho de pulso es una tcnica para controlar


circuitos analgicos con salidas de procesadores digitales.

Puede usarse para controlar la velocidad de un motor, la intensidad de


una lmpara, etc.

La base de PWM es la variacin del ciclo til (Duty Cycle) de una seal
cuadrada.

DutyCycle
TON

TON
TON TOFF

TOFF

55

Al cambiar el ciclo de trabajo se modifica el voltaje promedio (VAVG).


VAVG

TON

Vpdt Vp

TON
T

Para un ciclo de trabajo de 50%:


TON

1
T

T
2

VAVG

Vp
2

Para generar una seal analgica es posible usar un filtro pasivo RC


pasa-bajas.

56

Generacin de PWM con los AVR

Los microcontroladores AVR pueden manejar tres tipos de PWM:


PWM rpido (Fast PWM).
PWM con fase correcta (Phase Correct PWM).
PWM con fase y frecuencia correcta (Phase and Frequency Correct PWM).

Las seales PWM se generan con los modos de operacin de los


temporizadores, en sus respectivas terminales OCx. Los posibles modos
para los diferentes temporizadores son:
AVR

PWM
Rpido

PWM con fase


correcta

PWM con fase y


frecuencia correcta

Temporizador
0

ATMega8

ATMega16

57

PWM Rpido

Es una opcin para generar una seal PWM a una frecuencia alta.
El temporizador cuenta de cero a su valor mximo y se reinicia.
Cuando ocurre una coincidencia por comparacin, la salida OCx se
pone en bajo y cuando el contador alcanza su mximo, OCx se pone
en alto. A este modo se conoce como No Invertido.
En el modo Invertido ocurre lo contrario para OCx.

58

PWM Rpido

La modulacin del ancho de pulso se realiza al modificar el valor del


registro OCRx. Por el comportamiento del temporizador, al modo de
PWM Rpido se le conoce como un Modo de Pendiente nica.

La frecuencia de la seal de salida esta dada por:

y se puede cambiar al usar el preescalador.

El registro OCRx se accesa a travs de un bfer doble. Cualquier


instruccin que intente escribir en OCRx lo har en un bfer
intermedio y la CPU realiza la escritura real en OCRx en el momento
que el temporizador pasa de su valor mximo a cero. Esto para
generar seales con el mismo periodo.
59

PWM con Fase Correcta

El temporizador cuenta de forma ascendente (0-MAX), una vez alcanzado


el mximo valor se mantiene un ciclo y despus contar de manera
descendente (MAX-0).

La modificacin de la terminal OCx se realiza en las coincidencias de


comparacin.

En el modo No Invertido la salida se pone en bajo tras una coincidencia


mientras el temporizador se incrementa y en alto cuando ocurra la
coincidencia durante el decremento.

En el modo Invertido ocurre lo contrario para la salida OCx.

El doble bfer de escritura para OCRx hace que las escrituras reales se
realicen cuando TCNTx alcanza su valor mximo.

60

Cuando este modo de PWM es manejado por el temporizador 1, es


posible modificar el valor del mximo durante la generacin de las seales.
61

PWM con Fase Correcta


El inconveniente de modificar el mximo es que se pueden generar seales
que no son simtricas:

62

PWM con Frecuencia y Fase Correcta

Muy similar a PWM con Fase Correcta. Ambos modos son de


pendiente doble (el timer incrementa y disminuye).

La diferencia est en el momento de actualizar el registro OCRx: El


modo de Fase Correcta actualiza a OCRx al llegar al mximo y el
modo de Frecuencia y Fase Correcta lo hace al alcanzar un cero.

Ambos pueden manejar mximos variables.

Si se utiliza un mximo constante tiene el mismo efecto usar uno u


otro modo, pero si el mximo es variable, con Fase Correcta se
pueden generar formas asimtricas, cosa que no ocurre con
Frecuencia y Fase Correcta.
63

PWM con Frecuencia y Fase Correcta

La seal de salida es simtrica.


Este modo solo existe en el temporizador 1 (de 16 bits).
64

El temporizador 0 y PWM
(slo ATMega16)
TCCR0 (Timer/Counter Control Register 0), registro de control del
temporizador/contador 0.
7

FOC0

WGM00

COM01

COM00

WGM01

CS02

CS01

CS00

Bits WGM0[1:0] (Waveform Generation Mode): Modo de generacin de


forma de onda. Con los dos bits se definen 4 modos de operacin.
Modo

WGM01

WGM00

Descripcin

Normal

PWM, con fase correcta

CTC: Clear Timer/Counter on Compare Match

Fast PWM
65

Bits COM0[1:0] (Compare Output Mode): Bajo ambos modos de


PWM, estos bits se comportan de la siguiente manera:

COM01

COM00

Descripcin

Operacin normal OC0 desconectado

Reservado (sin uso)

Modo No Invertido

Modo Invertido

66

El temporizador 1 y PWM
TCCR1A (Timer/Counter 1 Control Register A), registro A para el
control del temporizador/contador 1.
7

COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

TCCR1B (Timer/Counter 1 Control Register B), registro B para el


control del temporizador/contador 1.
7

ICNC1

ICES1

WGM13 WGM12

CS12

CS11

CS10

67

Bits WGM1[3:0] (Waveform Generation Mode): Modo de generacin de


forma de onda.
Modo

WGM13

WGM12

WGM11

WGM10

Descripcin

MAX

Normal

0xFFFF

PWM con Fase Correcta, 8 bits

0x00FF

PWM con Fase Correcta, 9 bits

0x01FF

PWM con Fase Correcta, 10 bits

0x03FF

CTC

OCR1A

PWM Rpido, 8 bits

0x00FF

PWM Rpido, 9 bits

0x01FF

PWM Rpido, 10 bits

0x03FF

PWM con Frecuencia y Fase Correcta

ICR1

PWM con Frecuencia y Fase Correcta

OCR1A

10

PWM con Fase Correcta

ICR1

11

PWM con Fase Correcta

OCR1A

12

CTC

13

Reservado

14

PWM Rpido

ICR1

15

PWM Rpido

OCR1A

ICR1

68

Bits COM1A[1:0] y COM1B[1:0] (Compare Output Mode): Para


definir las salidas OC1A y OC1B, respectivamente:

COM1A1/
COM1B1

COM1A0/
Descripcin
COM1B0

Operacin normal OC1A/OC1B desconectado

Reservado (sin uso)

Modo No Invertido

Modo Invertido

69

El temporizador 2 y PWM
TCCR2 (Timer/Counter Control Register 2), registro de control del
temporizador/contador 0.
7

FOC2

WGM20

COM21

COM20

WGM21

CS22

CS21

CS20

Bits WGM2[1:0] (Waveform Generation Mode): Modo de generacin


de forma de onda. Con los dos bits se definen 4 modos de
operacin.
Modo

WGM21

WGM20

Descripcin

Normal

PWM, con fase correcta

CTC: Clear Timer/Counter on Compare Match

Fast PWM
70

Bits COM2[1:0] (Compare Output Mode): Bajo ambos modos de


PWM, estos bits se comportan de la siguiente manera:

COM21

COM20

Descripcin

Operacin normal OC2 desconectado

Reservado (sin uso)

Modo No Invertido

Modo Invertido

71

Вам также может понравиться