Sei sulla pagina 1di 10

Laboratorio de Electrnica Digital III

Practica No. 8 Modulacin de


Ancho de Pulso.

Objetivo.
Que el alumno sea capaz de configurar el modulo Temporizador
Modulador de Pulso (TPM) del Microcontrolador.

Procedimiento.
El alumno realizara los programas recomendados.

Equipo a Utilizar.

1. PC.
2. CodeWarrior para la familia de MCU HC(S)08.
3. Protoboard con la Implementacin del Diagrama.

Marco Terico.
1. Modulacin de Ancho de Pulso.
La Modulacin de Ancho de Pulso o PWM (Pulse Width Modulator)
es una tcnica para variar la potencia entregada a un elemento
elctrico/electrnico. Su funcionamiento se basa en variar el tiempo que
una seal cuadrada de determinado periodo se mantiene en un valor alto.
Algunas de sus principales aplicaciones son la de variacin de la
velocidad de motores elctricos, tambin se utiliza en las pantallas de
computadoras y celulares para variar la luminosidad del mismo.
Consider la siguiente grfica. El periodo (T) de la seal es de un
segundo, y el ciclo de trabajo (CT) es de medio segundo que equivale a un
50%. Lo importante de esta tcnica es que el ciclo de trabajo pudiera variar
desde 0% hasta un 100%.
T
(V)

CT

0
0.5s

1s

1.5s

2 s (t)

Figura 1. Periodo y Ciclo de Trabajo.

Bsicamente, la operacin del modulador de pulso es suministrar o


no alimentacin al elemento final. La diferencia entre esta tcnica y la de
utilizar un elemento resistivo es que, mientras el modulador de pulso se
comporta como un switch, el elemento resistivo es un conductor que a final
de cuentas disipara potencia elctrica, sin mencionar la inconveniencia de
la temperatura que implicar dispar el calor.

2. Composicin del Modulo TPM.

El modulo TPM (Timer Pulse Width Modulator) contiene dos


funciones, una es su funcin de temporizador y la otra es un modulador de
ancho de pulso.
El temporizador es bsicamente un contador de 16 bits, es decir que
cuenta desde 0 hasta 65535 (0000 - FFFF) a una frecuencia de conteo
escalable. El temporizador tiene funciones independientes del PWM, sin
embargo el PWM requiere del temporizador para su funcionamiento.
El Microcontrolador MC9S08SEXCRL provee dos mdulos TPM.
TPM1 y TPM2. TPM1 a su vez provee dos canales TPM1CH0 (Pin 26) y
TPM1CH1 (Pin 25). Por su parte TPM2 provee un solo canal TPM2CH0
(Pin 12).

TIMER PULSE

WIDTH MODULATOR (TPM)

TPM1SC
TPM1CNTH:TPM1CNTL
TPM1MODH:TPM1MODL

TPM2SC
TPM2CNTH:TPM2CNTL
TPM2MODH:TPM2MODL

TPM1C0SC
TPM1C0VH:TPM1C0VL
Pin 26
TPM1C1SC
TPM1C1VH:TPM1C1VL
Pin 25
TPM2C0SC
TPM2C0VH:TPM2C0VL
Pin 12

Figura 2. Estructura del Modulo TPM.

Cada modulo tiene cinco registros y cada canal a su vez tiene tres
registros mas. En configuracin de PWM, el resultado final ser un 0
durante una fraccin del periodo y un 1 en la fraccin restante, que se
presentar en el pin del canal en uso.

3. Definicin de los Registros.

A. Registro de Estado y Control de Modulo. TPMXSC.


A travs de este registro se configuran las opciones generales del
modulo, que afectaran a su vez todos los canales del mismo.

TOF:
Bandera de Sobre flujo.
CPWMS: Alineacin del Pulso Modulado.
CLKS[B:A]: Seleccin de Reloj del Contador.
PS[2:0]:
Selector de Factor de Precalentamiento.

B. Registro de Contador de Modulo. TPMXCNTH:TPMXCNTL.


Estos registros se incrementan o decrementan (segn la
configuracin) en 1 por cada pulso de reloj. Puede leerse en todo
momento, pero escribir en ellos reiniciara el conteo.

C. Modulo del Contador. TPMXMODH:TPMXMODL.


Estos registros contienen el valor del modulo, cuando el contador
llega a este valor el contador se reinicia y la bandera de sobre flujo TOF se
activa. Para desactivar esta bandera, se lee el registro.
En otros trminos, diremos que con el valor que configuremos estos
mdulos se determinar el periodo de la seal.

D.Registro de Estado y Control. TPMXCNSC.


Con este registro se contiene las configuraciones y banderas del
canal N, que puede ser 1 o 2.

CHNF:
Deteccin de Evento.
CHNIE:
Interrupciones Habilitadas.
MSN[B:A]: Modo de Operacin.
ELSN[B:A]: Seleccin de Nivel.
Recuerde en cuanto al modo de operacin y la deteccin de evento,
que el PWM es una de varias funciones y en cuanto a la seleccin de nivel

que puede ser alto o bajo. Se recomienda leer el capitulo del Modulo TMP
del Manual de Referencia.
E. Registro de Valor de Canal. TPMXCNVH: TPMXCNVL.
Al configurar estos registros realizan la funcin de que al compararse
con el valor del contador, de ser iguales, el nivel lgico del pin de salida
cambiar de 0 a 1 o 1 a 0 (segn la configuracin) activando la bandera de
evento detectado CHNF y se reiniciar cuando se presente un sobre flujo.

Estos registros en trminos prcticos, determinan el ciclo de trabajo


de la seal, para un 50% de ciclo de trabajo, el registro de valor de canal
deber ser la mitad del modulo del contador.

4. Ejemplo.
Planteamiento. Con el modulo TPM del microcontrolador gener
una seal de ancho modulado con un periodo de 1 segundo y un ciclo de
trabajo del 50% (0.5 segundos). Conecte un LED al pin apropiado para
visualizar el comportamiento de la seal de salida.
Solucin. La frecuencia de trabajo del CPU del microcontrolador es
de 20 MHz. Y la del reloj de transporte (Clock Bus) es de 10 MHz. El
modulo tiene un divisor fijo de 2, es decir la frecuencia mxima es de 5
MHz. Si seleccionamos un divisor de 128 (Registro TPM1SC)
obtendramos una frecuencia de:

Esto significa que en un segundo habr 39062 transiciones o pulsos


de reloj. De manera que para establecer un periodo de un segundo
asignaremos 39062 (9896) al registros de modulo de contador y 19531
(4C4B) a los registros de valor de canal.
El cdigo del programa es como sigue:
mainLoop:
JSR CICLO2

CICLO1:
feed_watchdog
BRA CICLO1

CICLO2:
MOV #$0F, TPM1SC
MOV #$98, TPM1MODH
MOV #$96, TPM1MODL
MOV #$28, TPM1C0SC
MOV #$4C, TPM1C0VH
MOV #$4B, TPM1C0VL
RTS
NOP
BRA

feed_watchdog
mainLoop

5. Reporte.
Como reporte de la presente practica, genere una seal cuadrada de
periodo de un segundo, y un periodo variable usando el convertidor
analgico - digital y un potencimetro. Usar un LED para visualizar el
comportamiento de la seal.
En el reporte escrito incluya:
1. La explicacin del funcionamiento del programa.
2. El cdigo fuente.
3. El diagrama.
Presente de igual manera la implementacin en la tablilla de prototipos.
Explicacion:
Est circuito es muy simple, lo que tenemos es la asignacin de los
puertos y la programacin de los registros de TMP y del ADC. Para poder
variar el PWM con el pot asignamos que el valor del TPM1COVH sea
dependiente del valor del ADCRL que varia con el potencimetro.
mainLoop:

BSR

CICLO1:
LICOCO:
CICLO2:

PROG_PORT:

PROG_PORT
PROG_AD
feed_watchdog
BRCLR 7,ADCSC1,CICLO1
BRSET 7,ADCSC1,CICLO2
BCLR
7,ADCSC1
BRA
CICLO1
BSR

MOV

MOV
MOV
MOV
MOV
MOV
MOV
BRA
NOP

#$0F, TPM1SC
#$98, TPM1MODH
#$96, TPM1MODL
#$28, TPM1C0SC
ADCRL, TPM1C0VH
#$00, TPM1C0VL
LICOCO
#$FF,PTCDD

RTS
PROG_AD:

BRA

MOV
MOV
MOV
RTS
BRA

#$71,ADCCFG
#$00,ADCSC2
#$26,ADCSC1
mainLoop
feed_watchdog
mainLoop

DIAGRAMA:

Potrebbero piacerti anche