jueves, 13 de agosto de 2020

COG (Complementary output generator)

El propósito principal del generador de salida complementario (COG) es convertir una señal PWM de salida única en una señal PWM complementaria de dos salidas. Esto es similar al Generador de forma de onda complementario (CWG), pero el COG tiene otras características. El COG también puede convertir dos eventos de entrada separados en una salida PWM única o complementaria.

La frecuencia y el ciclo de trabajo de COG PWM están determinados por una entrada de evento ascendente y una entrada de evento descendente. El evento ascendente y el evento descendente pueden ser la misma fuente o una fuente diferente. Las fuentes pueden ser síncronas o asíncronas al reloj de referencia COG. La velocidad a la que aparece el evento ascendente determina la frecuencia PWM. El tiempo entre la entrada del evento ascendente y la entrada del evento descendente determina el ciclo de trabajo. Cuando las salidas COG se habilitan por primera vez, el pin COGxOUT0 está inactivo (bajo) y el pin COGxOUT1 está activo (alto). Esto se puede invertir con la configuración de polaridad en el registro COGxCON0. Esto se describe en la sección Control de salida a continuación.


Este modulo tiene las siguientes características:
  • Modos de operación
    • Synchronous PWM
    • Push-pull
  • Fuente de reloj seleccionable
  • Fuentes de eventos seleccionables
  • Control de salida
  • Control de banda muerta
  • Control de apagado automático con:
    •  Fuentes de apagado seleccionables independientemente
    •  Habilitación de reinicio automático
    •  Control de anulación de pin de apagado automático (alto, bajo, apagado y High-Z)
  • Retardo de fase
  • Control de supresión
  • Operación durante el modo de suspensión
A continuación explicamos con más detalle cada característica.

Modo de operación PWM sincrónico: En el modo PWM síncrono, el COG genera dos formas de onda PWM complementarias derivadas de las fuentes de eventos ascendentes y descendentes. En la configuración más simple, las fuentes de eventos ascendentes y descendentes provienen de la misma señal, como una señal PWM (periférico CCP1). El COG convierte esta entrada PWM única en una salida PWM complementaria dual. La frecuencia y el ciclo de trabajo de la salida PWM dual coinciden con los de la señal PWM de entrada única. El flanco ascendente de la entrada PWM activará el flanco ascendente del pin de salida COGxOUT0. El borde descendente de la entrada PWM activará el borde descendente del pin COGxOUT0. El COGxOUT1 será la salida complementaria del COGxOUT0.

Modo Push-pull: El cog genera un pulso PWM en el pin COGxOUT0 en cada evento de flanco ascendente de pulso entrante impar. El pin COGxOUT1 produce el mismo en cada pulso entrante de número par. Esto crea un conjunto alterno de señales producidas desde la fuente de entrada única.

Fuentes de eventos
El COG ofrece varias fuentes de entrada para generar la forma de onda complementaria. Un evento puede activar la parte ascendente de la salida y un evento separado puede activar la parte descendente. Estas entradas de eventos se pueden conectar de forma independiente al bloque de control de evento ascendente o al bloque de control de evento descendente.
Todas las entradas ascendentes y descendentes se combinan en OR para producir la señal de evento ascendente.

Detección de borde o nivel
La detección de entradas de eventos puede ser sensible al nivel o al borde. Para eventos de entrada que cambian rápidamente, como una onda cuadrada, se usa el modo sensible a los bordes. De lo contrario, la señal que sube o baja rápidamente hará que la salida COG cambie de estado. Un modo sensible al nivel esperará hasta que la señal haya alcanzado un umbral de voltaje antes de que cambie el estado de salida del COG. Este nivel se describe en la sección de especificaciones eléctricas de la hoja de datos para el dispositivo que está utilizando. Este modo de detección se establece para cada entrada en el registro COGxRSIM o COGxFSIM.

Fuente de reloj
Permite seleccionar una de las tres fuentes de reloj:
  • Fosc (reloj del sistema)
  • Fosc / 4 (reloj de instrucciones)
  • HFINTOSC (solo 16 MHz)

Las fuentes de reloj se seleccionan usando los bits GxCS <1: 0> del registro COGxCON1.

Las funciones COG que utilizan esta fuente de reloj son:

  • Tiempo de banda muerta en aumento y caída
  • Aumento y disminución del tiempo en blanco
  • Retardo de fase de evento ascendente y descendente

Control de salida
  • Habilitación de pin de salida Cada pin de salida COG tiene un control de activación de pin de salida individual. Las habilitaciones de salida se seleccionan con los bits GxOE0 y GxOE1 del registro COGxCON0. Cuando se establece la habilitación de salida, el valor de anulación o la forma de onda PWM activa se aplica al pin según la selección de prioridad del puerto interno. 
    La función COG puede desactivarse por completo borrando el pin GxEN en el registro COGxCON0.


  • Control de polaridad: La polaridad de cada salida COG se puede seleccionar de forma independiente. Cuando se establece el bit de polaridad de salida, la salida correspondiente está activa en alto. Al borrar el bit de polaridad de salida, se configura la salida correspondiente como activa baja. Sin embargo, la polaridad no afecta los niveles de anulación. La polaridad de salida se selecciona con los bits GxPOL0 y GxPOL1 del registro COGxCON0.

Control de banda muerta

El control de banda muerta proporciona señales de salida que no se superponen, para evitar que se dispare la corriente en los interruptores de potencia. El COG contiene dos temporizadores de banda muerta separados. Uno es para el borde ascendente y otro es para el borde descendente.

La banda muerta se cronometra mediante uno de dos métodos:

  • Modo contador síncrono
  • Modo contador asincrónico

El modo es seleccionado por los bits GxRDBTS (flanco ascendente) y los bits GxFDBTS (flanco descendente) en el registro COGxCON1.


Retardo de banda muerta del contador asíncrono

El contador asincrónico utiliza la fuente de reloj COG para crear un retraso. Se coloca un valor en el registro de recuento de banda muerta que indica cuántos elementos de retardo de cinco nanosegundos esperar. El valor es un valor binario de 4 bits establecido en el registro COGxDBR (Rising Edge) o COGxDBF (Falling Edge). Al ser un valor de 4 bits, la cuenta está limitada a 0 a 15 elementos de retardo.


Control de apagado automático
El apagado automático es un método para anular inmediatamente los niveles de salida COG con configuraciones específicas que permiten un apagado seguro del circuito. El estado de apagado puede borrarse automáticamente o mantenerse hasta que lo borre el software.

El estado de apagado se puede ingresar mediante cualquiera de los dos métodos siguientes :

  • Software generado
  • Entrada externa
Software generado

Establecer el bit GxASDE del registro COGxASD0 forzará al COG al estado de apagado. Cuando el reinicio automático está deshabilitado, el estado de apagado persistirá mientras el bit GxASDE esté establecido. Cuando se habilita el reinicio automático, el bit GxASDE se borrará automáticamente y reanudará la operación en el próximo evento de flanco ascendente.

Entrada externa

Las señales de apagado externas proporcionan la forma más rápida de suspender de manera segura el funcionamiento del COG en caso de una condición de falla. Cuando cualquiera de las señales de apagado seleccionadas se activa, las salidas COG irán inmediatamente a los niveles de anulación seleccionados sin demora del software.
Se puede seleccionar cualquier combinación de señales de apagado disponibles para provocar una condición de apagado. Las señales de apagado que se ofrecen pueden variar según el dispositivo que se utilice, pero esas fuentes de apagado se seleccionan mediante bits en el registro COGxASD1.

Por ejemplo, el PIC16F753 ofrece estas fuentes de entrada para el control de apagado. Cualquier combinación de estas entradas habilitadas es o se junta para producir la señal de apagado.

  • HLTimer1
  • HLTimer2
  • C2OUT
  • C1OUT
  • Pin COG1FLT
Niveles de anulación de pines

Las señales de salida del COG se pueden conducir a un estado seleccionado durante el apagado. Esto se controla con bits en el registro COGxASD0. El pin se puede configurar en uno de cuatro estados:

  • Forzado bajo
  • Alto forzado
  • Triestatal
  • Estado inactivo de PWM (igual que el estado causado por una señal de evento descendente)
Retardo de fase

Si bien el retardo de banda muerta puede crear señales COGxOUT0 y COGxOUT1 no superpuestas, puede haber ocasiones en las que ambas señales necesiten retardarse, entre transiciones, al mismo tiempo. Aquí es donde se utiliza la función Phase Delay. El retraso se puede implementar en uno o ambos eventos de entrada ascendente y evento de entrada descendente. Esto se logra colocando un valor de conteo en el registro de conteo de retardo de fase COGxPHR (ascendente) o COGxPHF (descendente).

El retardo comienza a temporizar la señal de evento de entrada ascendente y / o descendente. De manera similar al modo síncrono de banda muerta, la duración del retardo se basa en el número de períodos de reloj COG a esperar según se define en los bits COGxPHR o COGxPHF. Este puede ser un valor de 0 a 15. Por lo tanto, el retraso mínimo es cero períodos de reloj, o ningún retraso, hasta un máximo de 15 períodos de reloj. El retardo de tiempo máximo real dependerá de la fuente de reloj seleccionada y del tiempo que tarda un período del reloj.

En el siguiente ejemplo, el registro COGxPHR (ascendente) está configurado para retrasar 7 períodos de reloj después del evento de entrada ascendente.

Control de supresión

La supresión de entradas permite enmascarar o ignorar las entradas durante un breve período de tiempo. Esto se puede utilizar para evitar que los transitorios eléctricos, como los causados ​​por el encendido / apagado de los componentes de potencia, generen un evento de entrada falso.

El COG contiene dos contadores en blanco: uno activado por el evento ascendente y el otro activado por el evento descendente. Los contadores están acoplados de forma cruzada con los eventos que están borrando. El contador de supresión de eventos descendentes se utiliza para borrar los eventos de entrada ascendentes y el contador de supresión de eventos ascendentes se utiliza para borrar los eventos de entrada descendentes. Una vez iniciado, el blanking se extiende por el tiempo especificado por el correspondiente contador de blanking. La supresión se cronometra contando los períodos COG_clock desde cero hasta el valor en el registro de recuento de supresión.


Operación durante el modo de suspensión

El módulo COG funciona independientemente del reloj del sistema y seguirá funcionando durante la suspensión, siempre que el reloj y las fuentes de entrada seleccionadas permanezcan activas. El HFINTOSC permanece activo durante la suspensión, siempre que el módulo COG esté habilitado, la fuente de entrada esté activa y el HFINTOSC esté seleccionado como fuente de reloj, independientemente de la fuente de reloj del sistema seleccionada.

En otras palabras: si el HFINTOSC se selecciona simultáneamente como el reloj del sistema y la fuente del reloj COG, entonces cuando el COG está habilitado y la fuente de entrada está activa, la CPU quedará inactiva durante la suspensión, pero el COG continuará funcionando y el HFINTOSC permanecerá activo. Esto tendrá un efecto directo en la corriente del modo de suspensión.

Video para configurar el módulo COG en mplabx: https://www.youtube.com/watch?v=hs7KKKNdt4Q&feature=youtu.be

Quiz kahoot: https://kahoot.it/challenge/03522628?challenge-id=37086801-f6e8-48a5-a336-a068e2185d9e_1597425038202

Información tomada de: https://microchipdeveloper.com/8bit:cog

Presentación y explicación de Proyecto Sous Vide

No hay comentarios:

Publicar un comentario

COG (Complementary output generator)

El propósito principal del generador de salida complementario (COG) es convertir una señal PWM de salida única en una señal PWM complementar...