Tabla 18. Características de PWM para diferentes proporciones de la RTI
La
Tabla 18
parece sugerir que se está trabajando fuera de frecuencia de PWM, para la exactitud del
ciclo de trabajo. Sin embargo, el siguiente programa de software da resultados mucho mejores que los esperados.
Repasando la parte del temporizador de la
cadena de 15-bits del temporizador. Cuatro de los bits son accesibles a la CPU, como los cuatro bits superiores
del TCR. Los otros cuatro bits forman una cadena del contador que divide por 16, cuyo valor no es directamente
accesible. Sin embargo, contando el número de interrupciones TOF que ocurren después de cada RTI, siempre se
puede saber el estado de estos cuatro bits del contador. Utilizando un número de 8-bits para representar el ciclo
de trabajo del PWM, se puede lograr una exactitud de ciclo de trabajo de 1 ÷ ÷ ÷ ÷ 255 = 0.4 %.
Para conseguir este nivel de control con el temporizador del MC68HC705J1A, no se puede usar
directamente un valor de ciclo de trabajo de 8 bits. El número de 8 bits debe ser separado en dos componentes.
Un componente representa el valor de los cuatro bits inaccesibles por el contador (el número de interrupciones
TOF que ocurren después de cada RTI). El otro componente representa el valor de los cuatro bits superiores del
TCR (los cuatro bits más bajos del contador que es directamente accesible a la CPU).
Para que el software pueda usar más fácilmente
estos dos componentes, los cuatro bits superiores del ciclo
de trabajo del PWM deseado, se deben poner en los cuatro
bits más bajos de una variable, llamada PWMCoarse
('coarse' quiere decir grueso). Este valor será usado
durante que interrupción TOF para determinar la salida de
PWM que deberá ponerse a un nivel bajo. Los cuatro bits
más bajos del ciclo de trabajo del PWM deseado, se pondrá
en los cuatro bits superiores de una variable, llamada
PWMFine ('fine' quiere decir fino). Este valor se usa
dentro de la interrupción TOF para precisamente
determinar cuando debe ponerse a un nivel bajo la salida
del PWM, durante la interrupción TOF. Comparando el
valor en PWMFine con los cuatro bits superiores del TCR,
se puede dividir eficazmente cada interrupción TOF en 16
intervalos de tiempo separados, como se muestra en la
Figura
43.
Ahora que se ha descrito la complicada teoría de la precisa generación de la forma de onda PWM,
utilizando el temporizador del MC68HC05J1A, el siguiente paso es escribir el software. Se empieza generando
los diagramas de flujo para describir las acciones necesarias para producir la forma de onda PWM y se termina
traduciendo los diagrama de flujos en lenguaje ensamblador del MC68HC05.
Los diagrama de flujos de la
la
Figura
45, aunque es simple, se ha incluido para ver con mayor claridad las acciones de las. Porque el
MC68HC05J1A sólo contienen un vector de interrupción del temporizador, una corta rutina debe determinar si
una interrupción del temporizador fue causada por una interrupción TOF o RTIF y entonces bifurcar a la rutina
de servicio apropiada.
Tiempos
Frecuencia
RTI
PWM
8.2 ms
122 Hz
16.4 ms
61.0 Hz
32.8 ms
30.5 Hz
65.5 ms
15.3 Hz
Figura
44,
45
Interrupciones
Mínimo
TOF
Ciclo de Trabajo
16
32
3.125 %
64
128
Figura 41
rodeado por un recuadro, muestra ocho bits de la
Figura 43. Cada interrupción TOF, troceada en 16
intervalos de tiempo separados.
y
46
describen el Software de PWM. El diagrama de flujo de
98
6.25 %
1.56 %
0.78 %