INICIO WEB

            

Timer/Contador1 en Modo PWM

       

Cuando el modo PWM se selecciona en el Timer/Contador1, el Registro de comparación de salida1A (OCR1A) y el Registro de comparación de salida1B (OCR1B) forman un doble PWM de 8 -, 9 - o 10-bit, libre cuenta, libre de fallos y fase correcta, con salidas en los pines PD5(OC1A) y OC1B. El Timer/Contador1 actúa como un contador ascendente/descendente, contando desde $0000 hasta el máximo (vea la Tabla A), donde se vuelve y cuenta hacia abajo de nuevo hasta cero antes de que el ciclo se repita. Cuando el valor del contador se iguala al contenido de los 10 bits menos significativos de OCR1A u OCR1B, los pines PD5(OC1A)/OC1B están a set o borrados según la situación de los bits COM1A1/COM1A0 o COM1B1/COM1B0 del Registro de control del Timer/Counter1 (TCCR1A). Vea la Tabla B para más detalles.

             
Resolución del PWM Valor MÁXIMO del Timer Frecuencia
8-bit $00FF (255) fTCK1/510
9-bit $01FF (511) fTCK1/1022
10-bit $03FF (1023) fTCK1/2046
    

Tabla A. Valores máximos del timer y frecuencia del PWM

             
COM1X1 COM1X0   Efectos en OCX1
0 0   No conectado
0 1   No conectado
1 0   Borrado en la comparación, cuenta ascendente. Puesta en marcha
  de la comparación, cuenta descendente (PWM no invertido).
1 1   Borrado en la comparación, cuenta descendente. Puesta en marcha
  de la comparación, cuenta ascendente (PWM invertido).

Tabla B. Selección del modo de comparación1 en modo PWM

Nota: X = A o B

Observe que en el modo PWM, los 10 bits OCR1A/OCR1B menos significantes, cuando son escritos, se transfieren a una posición temporal. Son latcheados cuando el Timer/Contador1 alcanza el valor máximo. Esto previene que ocurran pulsos de PWM de longitud impar (glitches) en caso de una desincronización en la escritura en OCR1A/OCR1B. Vea la siguiente figura como ejemplo.

               

Sincroniza.gif (4061 bytes)

    Figura. Efectos de la desincronización del latch en OCR1

Durante el tiempo entre la escritura y la operación del latch, una lectura de OCR1A o OCR1B leerá el contenido de la posición temporal. Esto significa que el valor más recientemente escrito siempre se leerá fuera de OCR1A/B.

Cuando el OCR1 contienen $0000 o el máximo, la salida OC1A/OC1B se actualiza a bajo o alto en la próxima operación de comparación según la situación de COM1A1/COM1A0 o COM1B1/COM1B0. Esto se muestra en la tabla que viene a continuación.

Nota: Si el registro de comparación contiene el valor máximo y el prescaler no está en uso (CS12 ..CS10 = 001), la salida del PWM no producirá ningún pulso en absoluto, porque los valores de cuenta ascendente y descendente se alcanzan simultáneamente. Cuando el prescaler está en uso (CS12 ..CS10. 001 o 000), la salida de PWM está activa cuando el contador alcanza el valor máximo; pero la operación de comparación de cuenta descendente no se interpreta que se alcanza antes de la próxima vez que el contador alcance el valor máximo y hace un pulso de PWM de un periodo.

           
COM1X1 COM1X0 OCR1X Output OC1X
1 0 $0000 L
1 0 TOP H
1 1 $0000 H
1 1 TOP L

Tabla. Salidas PWM de OCR1X = $0000 o TOP ( máximo )

Nota: X = A o B

En modo PWM, el flag1 de desbordamiento del Timer (TOV1) está a set cuando el contador pasa de $0000. La interrupción1 de desbordamiento del Timer opera exactamente como en el modo de Timer/Contador normal, es decir, que se ejecuta cuando TOV1 está a set, con tal de que la interrupción1 de desbordamiento del Timer y las interrupciones globales estén habilitadas. Esto también se aplica a los flags de comparación1 de salida del Timer y a las interrupciones.

             
                                         

ARRIBA