Quiero implementar un generador de PWM rápido usando AT90PWM3B.
El chip en sí tiene tres 'Controladores de Etapa de Potencia' (generadores pwm). Cada PSC controla dos salidas (A y B). Para cada salida hay un valor comparador SET y un valor comparador RESET. En el valor de contador con SET, el pin se pone alto, al coincidir con RESET se pone bajo.
Como quiero usar solo tres canales, usaré el canal A de cada PSC y usaré el canal B para establecer la frecuencia (el contador se reinicia al coincidir con RESET B).
Debido a eso, seleccioné el modo de operación 'una rampa', que se define como:
Voy a configurar:
OCRnRB (RESET B) para valorar la frecuencia de definición. La frecuencia de PSC (frecuencia del contador) es de 64MHz, necesito una salida a 100kHz, así que la estableceré en 640.
OCRnSB (SET B) al mismo valor que RESET B, no voy a usar este valor
OCRnSA (SET A) a 0
OCRnRA (RESET B) a 'Ciclo de trabajo (0.0 - 1.0) * 640'
Ahora quiero saber qué sucederá con los valores de borde:
- Cuando SET A == RESTAURAR A: ¿El tiempo de activación será de 1 ciclo o de 0 ciclos?
- Cuando SET A == 0 y RESET A == 640 - ¿El tiempo de encendido será 100% o 100% - 1 ciclo?
- ¿Cómo puedo obtener cero 'Dead-Time 0'? De acuerdo con la imagen de la hoja de datos, no puede ser inferior a un solo período de pwm.
- ¿Hay alguna manera de obtener un rango completo de 0% a 100% (inclusive)? No quiero deshabilitar completamente el PSC, porque todavía quiero usar la función de apagado y comparación. Sin embargo, si es posible, puedo desactivar el PSC al 0% si es posible mantenerlo al 100%.