"Clocking" y "Latching" con Arduino

Acabo de empezar a usar IC y estoy tratando de entender exactamente cómo funcionan.

Sé que primero debe registrar los datos en el registro de desplazamiento usando la función de Arduino shiftOut(), luego bloquear los datos configurando el OUTPUTpin en HIGH, pero me preguntaba qué significa realmente esta nomenclatura.

¿Puede alguien describirme a mí y a cualquier otro principiante que tenga la misma pregunta qué significa exactamente marcar y enganchar ?

Esta pregunta no tiene sentido sin un contexto.
Ideasmith, los circuitos integrados (IC) cubren una gama increíblemente amplia de aplicaciones. A partir de las pistas de contexto en su pregunta, parece que podría estar usando un IC de registro de desplazamiento. Si eso es cierto, entonces debe especificarlo en su pregunta. Y tampoco tenemos idea de qué es la función "shiftOut()" sin más contexto.
Sí, díganos el número de pieza del IC y tal vez muéstrenos un diagrama, en lugar de decirnos una función de referencia de Arduino, ¿por qué no simplemente describir qué hace la función en términos de generar los datos en el pin GPIO? Parece que necesita alimentar algunos datos al registro, luego habilitar sus salidas que se "bloquearán" (permanecerán) hasta que se cambien nuevamente (al registrar diferentes datos). ¿Es eso lo que estás tratando de hacer/decir?

Respuestas (2)

Nota: Cuando se escribió esta respuesta, no se mencionó a Arduino en la pregunta.

Cuando están involucrados elementos de memoria como latches y flip-flops, los términos clocking y latching describen cuál es la sensibilidad del elemento de memoria a la señal de control, que a menudo se etiqueta como "Reloj". En este contexto, "Clocking" significa una operación sensible al borde y "Latching" significa una operación sensible al nivel.

El elemento de memoria más básico es una forma de bucle de retroalimentación positiva llamado " Latch ". Uno de estos elementos se puede formar, por ejemplo, mediante el cableado cruzado de dos puertas NAND para que la salida de una mantenga el estado de la otra, y viceversa. Se puede ampliar para convertirse en algo llamado " D-Latch ", que tiene una entrada de datos y una entrada de activación de bloqueo. A veces se le llama "seguidor D", porque mientras la entrada Latch Enable sea alta, la salida del circuito "sigue" la entrada del circuito. Pero cuando Latch Enable cae de mayor a menor, la salida permanece fija: lo que haya en las entradas cuando Latch Enable cae de mayor a menor, se "bloquea" en el elemento.

Ahora, considere que haría otro latch e invertiría su señal Latch Enable. Entonces tendría otro latch que escanea sus entradas cuando el Latch Enable es bajo y retiene su salida cuando el Latch Enable es alto. Bastante comprensible, ¿verdad?

Finalmente, vea qué sucede si coloca este segundo pestillo "delante" del primer pestillo, de modo que la salida del pestillo "activo bajo" vaya a la entrada del pestillo "activo alto". Conecte las señales de habilitación de enclavamiento juntas. Lo que ha formado es algo que originalmente se llamaba "Master-Slave Latch" y rápidamente cambió su nombre a master-slave " Flip-Flop ". (Hoy en día se omite el "maestro-esclavo" y simplemente los llamamos "chanclas D"). Combinados, la operación es tal que como el primer latch lee su entrada cuando el Latch Enable es bajo y el segundo latch sigue al primer latch cuando el Latch Enable es alto , juntos forman un borde sensible.elemento de memoria Para subrayar esta sensibilidad de borde y evitar cualquier confusión, la señal "Latch Enable" se renombró como "Clock".

Este flip-flop sensible al borde es el elemento básico de la memoria fundamental de toda la lógica digital, y es inmensamente útil. Su estado se establece instantáneamente cuando hay una transición de bajo a alto en la señal del reloj. Y en todos los demás momentos, no le importa lo que suceda en su entrada. Ahora considere que tiene muchos flip-flops en un circuito y muchas señales de control que "calculan" los valores de entrada a estos grupos de flip-flops que podemos llamar " Registros ".

Resulta que si hay una sola señal llamada "Reloj" que va a todas las entradas de reloj de todos los flip-flops del sistema, el sistema, por grande y complejo que sea, es completamente estable. Debido a que los estados de los registros pueden cambiar solo después del borde del reloj, hay "cálculos", alternancia, de las señales de control solo después del borde, y si se permite que pase suficiente tiempo entre los bordes, las señales se establecen en un valor fijo. antes de que llegue el siguiente borde del reloj. Con este sistema, puede diseñar sistemas arbitrariamente complejos, limitados solo por los retrasos de propagación y la frecuencia del reloj. Este estilo de diseño de un reloj se llama " diseño síncrono " y yo diría que es

Ummm... cuando respondí la pregunta, no decía nada sobre Arduino, solo que quería saber la diferencia entre "Clocking" y "Latching".
Alguien rechazó su respuesta cuando era solo el primer párrafo, lo que de hecho fue un poco extraño y fuera de lugar, así que puedo ver por qué lo hicieron. No se preocupe, su respuesta editada mucho más grande es mejor.
No voté en contra, pero creo que esta respuesta está muy por encima de la cabeza del OP. Él / ella claramente está luchando por comprender qué es un IC, y mucho menos las complejidades de combinar puertas lógicas para formar flip-flips. Aprecio el nivel de detalle y el pensamiento que entró en esta respuesta, simplemente no creo que sea útil para el OP.
KyranF gracias, y Dan Laks, sí, creo que estoy de acuerdo. Para mi defensa, la pregunta en ese momento era que él quería saber qué es reloj y qué es enganche y cómo funcionan los circuitos integrados y yo, después de haber diseñado algunos circuitos integrados, hice todo lo posible para responder esa pregunta bastante compleja. Habiéndome tomado el tiempo de escribir la respuesta, creo que dejaré que mi respuesta permanezca, podría ser útil para otra persona. Gracias a todos.

Como se mencionó en los comentarios, es difícil responder a esta pregunta sin contexto (¿de qué circuitos integrados está hablando?), pero aquí hay una dirección general:

1) Esos términos no se aplican a todos los circuitos integrados, solo a los circuitos integrados que realmente usan una señal de reloj. Por ejemplo, hay puertas lógicas AND y OR simples que no tienen el concepto de relojes o enclavamiento. Los cambios en los pines de entrada se propagan inmediatamente a la salida.

2) "Enganchar" una señal significa específicamente que está almacenando un valor de los pines de entrada de un IC y reteniendo ese valor incluso si el nivel lógico en los pines de entrada cambia o cambia la señal del reloj. Por lo general, hay algún otro pin en el IC que irá a lógica alta o lógica baja para indicar cuándo el IC debe bloquear un nuevo valor.

3) Datos de “reloj” en medios para bloquear repetidamente datos en secuencia y sincronizados con una señal de reloj.

En su ejemplo de registro de desplazamiento, suponga que tiene un registro de desplazamiento de un byte adjunto a su Arduino. El registro tiene un pin de entrada de datos, un pin de reloj y 8 pines de salida. Solo el pin de entrada y el pin del reloj están conectados a su Arduino. Cuando llame a la shiftOut()función, pondrá un bit de sus datos en el pin de entrada del registro a la vez, y pulsará la señal del reloj para decirle al registro que "enganche" el bit único (almacenarlo). Esto se hace repetidamente ("fijándolo" en el registro) hasta que se transfiere el byte completo, luego el registro puede presentar el patrón completo de 8 bits en sus pines de salida simultáneamente para que lo use el resto de su circuito.

El reloj y el enganche de esta manera permiten que los datos se transfieran un bit a la vez (en serie) de forma sincronizada.