Paso 1: Módulo PWM de PIC y temporizadores
Nos funcionará este PIC @ oscilador de 20MHz. Este tutorial es para aquellos que tiene tales osciladores muy altas que es la forma estándar de utilizar microcontroladores. Sin embargo, puede utilizar la forma directa (CCP como PWM) si tienes un oscilador muy lento como 32 KHz, porque luego timer2 puede alcanzar 50 Hz directamente sin la necesidad de lo que vamos a explicar aquí.
MCUs PIC algo llamado módulo CCP que es módulo de captura-compara-PWM, tienen significado, puede configurarlo para trabajar como uno de estos 3. Para el uso típico, debemos configurarlo siempre para ser PWM (esta es la manera sencilla que debemos utilizar de forma predeterminada).
Cuando se configura como PWM, utiliza Timer2 como un módulo de sincronización para calcular su Ton y Toff. Entonces, ¿cómo podemos determinar todos los valores necesarios para alcanzar nuestra propia frecuencia deseada?
Ecuaciones de temporizador:
[1] F_timer = F_crystal / (4 * prescaler * resolución)
[2] Period_timer = 1 / F_timer
[3] N = (t * F_crystal) / (4 * prescaler)
Ecuación 1 calcula la frecuencia del temporizador. Lo utilizamos para determinar la frecuencia más baja posible que puede producir el temporizador. Si es menos de 50Hz, entonces podemos generar 50Hz o nos encontraremos con otra forma.
Ecuación 2 es obvio, que es el período de esa frecuencia.
La ecuación 3 es el número de "pasos" que se marque el cronómetro hasta que llegue el momento "t" que, según la configuración especificada como prescaler y frecuencia cristal.
Módulo CCP1 cuando opera como PWM utiliza timer2 y este timer2 es un temporizador de 8 bits. Decir, su resolución es de 2 ^ 8 = 256. Ofrece valores divisor hasta 16 y este prescaler es una característica de cronómetros que les permite dividir frecuencia entrada alimentado en ellos para alcanzar las frecuencias bajas.
El menor siempre frecuencia timer2 puede ocuparse (suponiendo que oscilador de cristal de 20MHz) = 20000000 / (4 * 16 * 256) = 1220,7 Hz (aproximadamente 81.9 nos período). Por lo tanto podemos no obtener el 50 Hz señal que queríamos usar este temporizador con CCP1 como PWM.
¿Timer1? tiene un valor máximo divisor de 8 y resolución de 16 bits = 65536 porque es un temporizador de 16 bits.
Frecuencia más baja de timer1 = 20000000 / (4 * 8 * 65536) = 9,53 Hz. (periodo de 104,9 ms aprox.)
Por lo que concluimos que timer1 puede utilizarse para generar la señal de 50 Hz porque puede generar frecuencias bajas hasta 9,53 Hz y los 50 es tanto factible!
P: Ok! conectar al módulo CCP en su modo PWM!!!!!!
R: no, CCP como PWM sólo utiliza timer2 módulo... necesitas encontrar otra manera.
¡¿Qué es?!