¿Cómo funciona este diagrama lógico del detector de borde / sincronización?

1

EsteeseldiagramalógicoparaunaMCUquepermiteunaopciónderelojexternoatravésdeTn.Esterelojsepuedeutilizarcomolafuentepararegistrarunregistrodetemporizadorinterno.

Segúnlahojadedatos,estediagramaseextrajode,"Registers are positive edge triggered. The latch is transparent in the high period of the internal clock. The edge detector generates 1 pulse for each positive/negative (depending on the setting of a register) edge detected."

¿Cómo funciona este diagrama? He intentado buscar en la red para ver qué representa el símbolo de la lógica trapezoidal (en la parte del borde) pero solo pude encontrar su significado con respecto al flujo del programa (representa un paso mecánico / físico).

Dicho esto, no estoy seguro de cómo funciona el detector de bordes. En cuanto al sincronizador, parece que el pestillo (el primer flipflop) solo está habilitado (LE) cuando clk es alto y se pasará el valor del temporizador, pero ¿cuál es el propósito de 2 flipflops ?. Entiendo que el detector de bordes debe habilitar la salida Y la puerta solo cuando se observa una transición BAJA / ALTA en Tn (y solo una vez), pero no estoy seguro de cómo funciona exactamente.

Tn puede ser igual o más lento que clk .

¿Qué pasa si clk = Tn y están 180 grados fuera de fase? Es decir, sus transiciones son exactamente al mismo tiempo. Me parece que el cronometraje del registro de temporización interno sería indefinido.

    
pregunta sherrellbc

2 respuestas

3

El bloque de sincronización se usa para capturar una señal que no está sincronizada con el reloj del sistema (clkio en ese ejemplo): se requiere para cualquier lógica síncrona y, en lo que a usted respecta, es transparente, excepto por el hecho que retrasa la señal vista por el detector de borde en 2 ciclos de reloj. Evita que un "ilegal" (no claramente 1 o 0) ingrese al núcleo donde pueda causar estragos. Si estás realmente curioso, puedo explicar la metastabilidad y las cadenas del sincronizador, pero para esta pregunta específica, creo que eso es una exageración.

El bloque detector de bordes es más simple. La forma trapezoidal es un MUX, como lo mencionó Michael Karas. Permite que el bloque encuentre bordes ascendentes o descendentes. El flip flop está muestreando la salida del MUX en cada ciclo de reloj y esencialmente "recordando" el último valor (1 o 0). La compuerta AND final está comparando el último valor recordado por el flip flop y el valor de la corriente invertida y SOLAMENTE será alto para 1 ciclo de reloj si la señal cambia de estado.

Observe cómo la salida del flip flop retrasa la entrada del flip flop en un ciclo de 1 reloj:

 IN:  0000111100001111000011110000...
OUT:  0000011110000111100001111000...

Ahora observe la señal que es la entrada inferior de la puerta AND y la salida del FF anterior:

INV. FF INPUT:  1111000011110000111100001111...
    FF OUTPUT:  0000011110000111100001111000...

Eche un vistazo a la lógica de una puerta AND:

 A | B | Y
---+---+---
 0 | 0 | 0
 1 | 0 | 0
 0 | 1 | 0
 1 | 1 | 1

Una de esas entradas es la salida del FF, la otra es la salida del inversor ... ¿Qué ves?

INV. FF INPUT:  1111000011110000111100001111...
    FF OUTPUT:  0000011110000111100001111000...
--------------------------------------------------
 AND GATE OUT:  0000000010000000100000001000...

Recibes un pulso corto por cada flanco descendente de la entrada al bloque detector de bordes (asumiendo que el MUX está enviando la señal no invertida hacia ti). Si el MUX selecciona la señal invertida, obtendrá un pulso corto por cada flanco ascendente de la entrada.

    
respondido por el akohlsmith
1

El trapecio es un MUX. Selecciona si el detector de bordes responderá a los bordes positivos o negativos del pin de señal Tn. El término de selección para el MUX proviene de "positivo / negativo (dependiendo de la configuración de un registro)". El circuito sincronizador de entrada requiere que la señal Tn sea más lenta que la CLKio interna. La relación de frecuencia entre los dos se especificará en la hoja de datos de la pieza y, a menudo, se especificará que Tn es al menos inferior a 1/4 de la frecuencia de CLKio.

Tenga en cuenta también que este circuito solo produce el reloj Tn_sync para un solo borde de la señal Tn a la vez, no ambos bordes al mismo tiempo.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas