← Índice del curso

Circuitos Secuenciales y Memoria · Tema 12

Taller: flip-flops con el 74HC74

Es la segunda vez que pasamos de la teoría a la mesa. Esta vez la pieza es el flip-flop de uso más general: dos en un chip de 14 patas, con reloj, datos, preset y clear. Con él vas a capturar un dato con un reloj manual limpio, armar un contador de dos bits que cuenta pulsaciones y verificar qué pasa al encender. Todo con las ideas de los últimos temas: flanco, tiempos, rebotes y estado inicial.

01 · Punto de partida

Tres montajes con un solo chip

El 74HC74 contiene dos flip-flops D independientes, cada uno con su reloj, su dato, su preset y su clear. Es el componente ideal para aprender, porque cada idea de los temas 8 a 11 se puede comprobar con él. Los tres montajes se construyen uno sobre otro:

Los tres montajes del taller.
MontajeQué haceChipsQué aprendés
1. Captura con reloj manualUn LED copia el valor de un interruptor, pero solo cuando damos un «pulso de reloj»74HC74 + 74HC00Captura por flanco, reloj sin rebotes (tema 7), entradas sin usar
2. Contador de dos bitsDos LED cuentan en binario cada pulsación: 00, 01, 10, 11, 00…74HC74 + 74HC00D = ~Q, división por 2, qué salida usar de reloj, qué pasa con los rebotes
3. Reset manual y de encendidoEl contador vuelve a 00 con un botón y siempre arranca en 00+ 74HC14Clear asíncrono, circuito RC con Schmitt (tema 10), arranque definido

Como en el taller del tema 7, no hace falta tener los materiales para aprovechar el tema: el laboratorio simula el contador y el código verifica cada secuencia.

02 · Preparación

Materiales y herramientas

Lista de materiales.
Cant.ComponentePara qué sirve
174HC74 (dos flip-flops D con preset y clear)La protagonista
174HC00 (cuatro NAND)Latch antirrebote del reloj manual (montaje del tema 7)
174HC14 (seis inversores Schmitt)Reset de encendido (montaje 3)
1Conmutador de palanca SPDTReloj manual limpio
1Interruptor deslizante SPDT (o DIP)Dato D, siempre conectado a +5 V o a masa
1 + 1Pulsadores normalmente abiertosReloj directo (para comparar) y reset manual
2 a 4LED con resistencia de 1 kΩ en serieMostrar Q1, Q2 (y ~Q)
4Resistencias de 10 kΩPull-ups del latch y del reset
1Resistencia de 100 kΩ y condensador de 1 µFReset de encendido (≈ 90 ms, como en el tema 10)
3Condensador de 100 nFDesacople, uno por chip
1Protoboard, cables y fuente regulada de 5 VMontaje y alimentación

El multímetro alcanza para la mayoría de las pruebas, porque con un reloj manual todo ocurre despacio. Para ver los rebotes y los flancos hace falta un osciloscopio o un analizador lógico, como en el taller anterior. Un buen hábito es dibujar el esquema en papel con los números de pin escritos antes de tocar el protoboard.

Antes de dar tensión

  • Cada chip con su 100 nF entre Vcc y GND, pegado a las patas.
  • Ninguna entrada al aire: también las del flip-flop que no uses.
  • Preset y clear de cada flip-flop con su nivel inactivo (+5 V) si no se usan.
  • Ninguna salida unida a otra salida ni a +5 V o masa.

03 · El chip

Pines del 74HC74

El encapsulado DIP de 14 patas tiene una muesca en un extremo; el pin 1 queda a la izquierda de la muesca, mirando el chip desde arriba, y los números siguen en sentido antihorario. La disposición de pines es la clásica del 7474:

Pinout estándar del 74HC74 (confirmalo en la hoja de datos de tu fabricante).
PinNombreFunciónPinNombreFunción
11CLR̅Clear del FF1 (activo en bajo)14Vcc+5 V
21DDato del FF1132CLR̅Clear del FF2
31CLKReloj del FF1 (flanco ↑)122DDato del FF2
41PRE̅Preset del FF1 (activo en bajo)112CLKReloj del FF2
51QSalida Q del FF1102PRE̅Preset del FF2
61Q̅Salida ~Q del FF192QSalida Q del FF2
7GNDMasa82Q̅Salida ~Q del FF2

La tabla de función es la del tema 10: con PRE̅ y CLR̅ inactivos (en 1), el flip-flop copia D en cada flanco ascendente de CLK; con PRE̅ = 0 fuerza Q = 1 y con CLR̅ = 0 fuerza Q = 0, sin esperar al reloj. Fijate en una regularidad útil: las cinco patas del primer flip-flop ocupan los pines 1 a 6 y las del segundo, 8 a 13, con el orden espejo. La mitad «de arriba» y la de «abajo» se conectan igual.

04 · Montaje 1

Captura con reloj manual

Lo primero es un reloj que podamos manejar con la mano sin que los rebotes lo arruinen. Reutilizamos el latch de NAND del tema 7 (74HC00) con el conmutador SPDT: al mover la palanca hacia A, su salida Q sube una sola vez; es el flanco ascendente que va a mandar al 74HC74.

Conexiones del montaje 1. U1 = 74HC00 (reloj manual); U2 = 74HC74.
Chip y pinSe conecta a
U1 pin 14 / pin 7+5 V / masa, con 100 nF entre ambos
U1 pin 1Contacto A del conmutador y 10 kΩ a +5 V
U1 pin 4Contacto B del conmutador y 10 kΩ a +5 V
Común del conmutadorMasa
U1 pin 2 ↔ pin 6; pin 3 ↔ pin 5Cruce del latch (como en el tema 7)
U1 pines 9, 10, 12, 13Masa (compuertas sobrantes)
U1 pin 3 (Q)U2 pin 3 (1CLK): el reloj manual
U2 pin 14 / pin 7+5 V / masa, con 100 nF entre ambos
U2 pin 2 (1D)Centro del interruptor deslizante; sus extremos a +5 V y a masa
U2 pines 1 y 4 (1CLR̅, 1PRE̅)+5 V (inactivos)
U2 pin 5 (1Q)LED con resistencia de 1 kΩ a masa
U2 pines 10 y 13 (2PRE̅, 2CLR̅)+5 V (el segundo flip-flop, sin usar)
U2 pines 11 y 12 (2CLK, 2D)Masa (entradas del segundo flip-flop, atadas)

Pruebas

Secuencia de pruebas del montaje 1. La palanca A produce el flanco ascendente; la B, el descendente.
PasoAcciónLED de QQué se comprueba
1Dar tensiónApagado o encendidoArranque indefinido: no hay reset (todavía)
2D = 1; palanca a B, luego a AEncendidoEl flanco ↑ (la palanca llegando a A) captura D = 1
3D = 0, sin mover la palancaSin cambioD no importa entre flancos
4Palanca a BSin cambioEl flanco descendente se ignora
5Palanca a A (D = 0)ApagadoEl siguiente flanco ↑ captura D = 0
6Cambiar D varias veces con la palanca quietaSin cambioLa salida solo cambia con el reloj

Para ver la diferencia con un latch, comparalo mentalmente con el tema 6: con un latch, el paso 6 habría hecho oscilar la salida si la habilitación estuviera abierta. Acá, la salida no se mueve. Es el flanco el que decide.

05 · Montaje 2

Contador de dos bits

Se usan las dos mitades del 74HC74. Cada una tiene su D conectada a su propia ~Q, lo que la convierte en un divisor por 2 (tema 9). El reloj manual va al primero, y el segundo recibe como reloj la salida del primero:

Cambios respecto del montaje 1.
ConexiónFunción
U2 pin 6 (1Q̅) → U2 pin 2 (1D)D1 = ~Q1: el primer flip-flop conmuta en cada flanco
U2 pin 8 (2Q̅) → U2 pin 12 (2D)D2 = ~Q2: el segundo también conmuta
U2 pin 6 (1Q̅) → U2 pin 11 (2CLK)El segundo flip-flop recibe el reloj de ~Q1
U2 pin 5 (1Q) → LED con 1 kΩBit 0 de la cuenta
U2 pin 9 (2Q) → LED con 1 kΩBit 1 de la cuenta
Se quita el interruptor de D y la conexión de 2D a masaAhora D viene de las salidas

¿Por qué ~Q1 y no Q1? Porque el segundo flip-flop captura en un flanco ascendente, y debe cambiar cuando Q1 pasa de 1 a 0. Ese instante es, justamente, un flanco ascendente de ~Q1. Con el reloj manual:

Secuencia esperada de Q2 Q1 con cada pulsación (palanca llegando a A).
PulsaciónQ1~Q1Q2Cuenta
Inicial01000
1.ª10001
2.ª01 (sube)1 (conmuta)10
3.ª10111
4.ª01 (sube)0 (conmuta)00

Y si el reloj tiene rebotes

Conectá el pulsador directo (con su pull-up) al pin 3 en lugar del reloj manual: cada pulsación pasa a producir varios flancos ascendentes y la cuenta salta de a cantidades irregulares. Es el experimento más claro del por qué del tema 7, y el laboratorio de este tema lo reproduce con una probabilidad de rebotes ajustable.

06 · Montaje 3

Reset manual y de encendido

Para que el contador empiece siempre en 00 usamos el clear asíncrono de los dos flip-flops, activado por un circuito RC al encender y por un pulsador a mano. Es el circuito del tema 10:

Conexiones del montaje 3. U3 = 74HC14.
ConexiónFunción
100 kΩ de +5 V al nodo R; 1 µF del nodo R a masaRC de encendido: el nodo sube con τ = 100 ms
Pulsador con 100 Ω del nodo R a masaReset manual: descarga el condensador
Nodo R → U3 pin 1 (1A); U3 pin 2 (1Y) → U3 pin 3 (2A)Dos inversores Schmitt en serie: limpian el flanco
U3 pin 4 (2Y) → U2 pin 1 (1CLR̅) y U2 pin 13 (2CLR̅)CLR̅ activo mientras el nodo R está bajo
U3 pines 5, 9, 11, 13Masa (inversores sobrantes)
U3 pin 14 / pin 7+5 V / masa, con 100 nF
U2 pines 4 y 10 (PRE̅)+5 V (el preset no se usa)

Al encender, el condensador está descargado: el nodo R vale 0 V, la salida del segundo inversor vale 0 y CLR̅ está activa. Durante unos 90 ms el contador queda fijo en 00. Cuando el nodo supera el umbral del 74HC14, CLR̅ pasa a 1 y el contador empieza a funcionar. Con el pulsador se puede repetir el pulso en cualquier momento.

Pruebas

  • Apagar y encender diez veces con el circuito de reset: debe arrancar siempre en 00. Después retirar el RC (dejando CLR̅ a +5 V) y repetir: el estado inicial varía.
  • Reset manual: contar hasta 11 y apretar el pulsador: vuelve a 00 sin pulso de reloj.
  • Reloj durante el reset: mantener el pulsador apretado y mover la palanca: el contador no cuenta (CLR̅ manda sobre el reloj).

07 · Cuando no funciona

Mediciones, fallas y método

De síntoma a causa en los montajes de este tema.
SíntomaCausa probableCómo comprobarlo
La cuenta salta de a dos o tresReloj con rebotes (pulsador directo)Reemplazar por el latch; mirar CLK1 con el osciloscopio
Cuenta hacia atrás (00, 11, 10, 01)CLK2 tomado de Q1 (pin 5) en lugar de ~Q1 (pin 6)Revisar el cableado del pin 11
Un LED no cambia nuncaPRE̅ o CLR̅ de ese flip-flop a masa, o D sin conectarMedir 5 V en los pines 1, 4, 10 y 13
Los bits cambian al tocar el protoboardEntradas al aire, incluido el flip-flop sin usarAtar 2CLK y 2D a masa en el montaje 1
Arranca siempre en estados distintosNo hay reset de encendidoNormal sin el montaje 3; con él, medir el nodo R
Con reset de encendido sigue arrancando malRC demasiado corto o CLR̅ sin conectar a los dos flip-flopsMedir CLR̅ al encender: debe estar en 0 unos 90 ms
El chip se calientaSalida en cortocircuito o entradas flotantesBuscar cables entre salidas; revisar entradas sobrantes
LED muy débilEntrada flotante en la compuerta siguiente o resistencia mal elegidaMedir la salida en reposo

Armar por etapas

  1. Alimentación primero. Vcc y GND en cada chip, con el 100 nF puesto.
  2. Un bloque por vez. Armar y probar el reloj manual antes de conectarlo al 74HC74.
  3. Atar todas las entradas, también las de lo que no se usa.
  4. Probar la etapa con la lista de pasos antes de agregar la siguiente.
  5. Cambiar una sola cosa a la vez cuando algo falla.
  6. Anotar la secuencia observada y compararla con la esperada: el error está entre el último paso correcto y el primero que falla.

08 · El taller en código

Simular, comparar y diagnosticar

Antes de armar conviene predecir. Los bloques reproducen el contador con las dos formas de cablear el reloj del segundo flip-flop, comparan el reloj limpio con un pulsador que rebota, estiman los arranques con y sin reset y diagnostican una secuencia medida.

Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.

Paso 1: el contador y los dos cableados del reloj

class FF74:
    """Un flip-flop D del 74HC74 con D conectada a ~Q: conmuta en cada flanco ascendente."""

    def __init__(self, q=0):
        self.q = q

    @property
    def qn(self):
        return 1 - self.q

    def flanco(self):
        self.q = 1 - self.q


def contador(pulsos, clk2_desde="qn1"):
    ff1, ff2 = FF74(), FF74()
    lectura = []
    for _ in range(pulsos):
        antes = ff1.qn if clk2_desde == "qn1" else ff1.q
        ff1.flanco()                                   # el reloj manual llega a CLK1
        despues = ff1.qn if clk2_desde == "qn1" else ff1.q
        if antes == 0 and despues == 1:                # flanco ascendente en el pin CLK2
            ff2.flanco()
        lectura.append(f"{ff2.q}{ff1.q}")
    return lectura


print("CLK2 tomado de ~Q1 (pin 6):", *contador(9, "qn1"))
print("CLK2 tomado de  Q1 (pin 5):", *contador(9, "q1"))

Con CLK2 tomado de ~Q1 el contador sube: 01, 10, 11, 00, 01… Con CLK2 tomado de Q1 baja: 11, 10, 01, 00. Es la misma conexión equivocada de un solo cable (pin 5 en lugar de pin 6).

Paso 2: reloj limpio frente a pulsador con rebotes

import random

rnd = random.Random(5)


def cuenta_leida(flancos_por_pulsacion):
    q1 = q2 = 0
    for flancos in flancos_por_pulsacion:
        for _ in range(flancos):
            q1 ^= 1                      # cada flanco ascendente en CLK1 conmuta el primer FF
            if q1 == 0:                  # Q1 bajó: ~Q1 sube y dispara al segundo
                q2 ^= 1
    return q2 * 2 + q1


N = 10
con_latch = [1] * N                                     # un solo flanco por pulsación
directo = [1 + rnd.randint(0, 4) for _ in range(N)]      # el pulsador rebota hasta 4 veces
print("pulsaciones reales:", N, "-> cuenta esperada (módulo 4):", N % 4)
print("reloj manual con latch:      flancos", sum(con_latch), "-> cuenta leída:", cuenta_leida(con_latch))
print("pulsador directo (rebotes):  flancos", sum(directo), "-> cuenta leída:", cuenta_leida(directo))
print("flancos por pulsación (directo):", *directo)

Con 10 pulsaciones reales, la cuenta esperada es 2 (10 mod 4). El reloj con latch entrega 10 flancos y lee 2; el pulsador directo, con hasta 4 rebotes, entrega 27 flancos y lee 3. Cambiá rebotes_max y la semilla: la lectura cambia en cada ejecución, y a veces coincide por casualidad.

Paso 3: arranques con y sin reset

import random

rnd = random.Random(11)
N = 1000
sin_reset = {"00": 0, "01": 0, "10": 0, "11": 0}
for _ in range(N):
    q1, q2 = rnd.randint(0, 1), rnd.randint(0, 1)        # cada FF arranca en cualquiera
    sin_reset[f"{q2}{q1}"] += 1

con_reset = {"00": N, "01": 0, "10": 0, "11": 0}          # el pulso de CLR̅ lleva los dos a 0

print(f"{N} encendidos")
print("estado   sin reset   con reset")
for estado in ("00", "01", "10", "11"):
    print(f"  {estado}      {sin_reset[estado]:6d}     {con_reset[estado]:6d}")

En 1000 encendidos sin reset, los cuatro estados aparecen con frecuencias parecidas (alrededor del 25 % cada uno). Con el pulso de CLR̅ del montaje 3, todos terminan en 00. Probá con otra semilla: las proporciones cambian, pero siguen siendo repartidas.

Paso 4: diagnosticar una secuencia medida

SUBE = ["00", "01", "10", "11", "00"]          # contador ascendente de 2 bits
BAJA = ["00", "11", "10", "01", "00"]          # el mismo circuito con CLK2 tomado de Q1


def diagnostico(observado):
    if observado == SUBE:
        return "OK: cuenta hacia arriba"
    if observado == BAJA:
        return "cuenta hacia atrás: CLK2 está tomado de Q1 y debería salir de ~Q1 (pin 6)"
    if len(set(observado)) < len(set(SUBE)):
        return "salta estados: revisar el reloj manual (rebotes) o el cableado de CLK1"
    return "secuencia desconocida: medir cada flip-flop por separado"


mediciones = {
    "montaje bien armado": ["00", "01", "10", "11", "00"],
    "CLK2 desde Q1":       ["00", "11", "10", "01", "00"],
    "reloj con rebotes":   ["00", "10", "00", "10", "00"],
}
for nombre, observado in mediciones.items():
    print(f"{nombre:22s} {' '.join(observado):22s} -> {diagnostico(observado)}")

El script distingue tres casos de una lista de mediciones: la secuencia correcta, el contador que cuenta hacia atrás (CLK2 desde Q1) y la que salta estados (rebotes). Reemplazá una de las listas por lo que midas en tu montaje y obtené el diagnóstico.

Una diferencia con el software: acá un error de cableado no produce un mensaje, sino un comportamiento. La secuencia observada es el único «mensaje de error», y por eso conviene conocer de memoria la secuencia correcta.

09 · Exploración interactiva

El banco de pruebas

El simulador reproduce el contador del montaje 2. Podés elegir la fuente del reloj (manual limpio o pulsador directo, con rebotes de hasta una cantidad ajustable de flancos extra) y la salida del primer flip-flop que alimenta al segundo (~Q1 o Q1). Con «Apagar y encender» ves el arranque, con o sin el circuito de reset de encendido. La cuenta esperada es el número de pulsaciones módulo 4: si no coincide con la leída, algo está mal.

Contador de 2 bits con un 74HC74

Contador de dos bits con dos flip-flops D Dos flip-flops D con D conectada a Q negada. El reloj manual entra al primero. El reloj del segundo se toma de Q negada o de Q del primero, según el cableado elegido. Dos LED muestran Q1 y Q2.
Pulsaciones reales0
Cuenta esperada (pulsaciones mod 4)0 (00)
Cuenta leída (Q2 Q1)00 (0)
¿Coincide?—
Flancos recibidos (última pulsación)—
Pulsaciones correctas / total0 / 0

Contador en 00 con reloj limpio. Presioná «Pulsar» y comprobá que cuenta 01, 10, 11, 00.

Últimas 8 pulsaciones desde el último encendido.
N.ºFuenteFlancos en CLK1LeídaEsperada¿Coincide?
Sin pulsaciones registradas.

Recorrido guiado

  1. Con el reloj limpio y CLK2 desde ~Q1, presioná «Pulsar» cuatro veces: 01, 10, 11, 00. Todas coinciden con la esperada.
  2. Cambiá CLK2 a Q1 y reiniciá. Pulsá: 11, 10, 01, 00. Cuenta hacia atrás y no coincide, salvo en las pulsaciones múltiplos de 2. Es el error de un cable.
  3. Volvé a ~Q1 y pasá al pulsador directo con 4 rebotes extra. Pulsá varias veces: la lectura se descontrola, con muchos más flancos que pulsaciones.
  4. Con rebotes extra = 0, el pulsador directo se porta bien (cada pulsación es 1 flanco): un contacto ideal no necesita antirrebote. Subí el valor y volvé a probar.
  5. Con el pulsador directo, observá que a veces coincide por casualidad: cuando los flancos de una pulsación son múltiplo de 4, la lectura no cambia y parece correcta.
  6. Presioná «Apagar y encender» varias veces sin reset: arranca en cualquiera de los cuatro estados.
  7. Marcá «Reset de encendido» y repetí: siempre 00. Las pulsaciones se cuentan desde cero.
Desafío: encontrar una cantidad de rebotes que el contador no perciba

Cada pulsación suma 1 + (rebotes extra) flancos. Si la suma es múltiplo de 4, el contador de dos bits da una vuelta completa y queda como estaba: la pulsación pasa inadvertida. Con 3 rebotes extra exactos por pulsación, el contador no se movería nunca. En el laboratorio los rebotes son al azar, así que aparece de vez en cuando; en un circuito real, un contador de más bits lo hace menos probable, pero no desaparece.

10 · Comprensión

Confusiones frecuentes

«El 74HC74 captura con el flanco descendente»

Captura con el ascendente. Los JK clásicos de la misma familia (74HC73, 74HC107, 74HC112) sí usan el descendente: hay que mirar el símbolo de cada chip, no asumir.

«El flip-flop que no uso puede quedar sin conectar»

Sus entradas flotan, recogen ruido y el flip-flop puede conmutar y consumir de más. Se atan: reloj y dato a masa, preset y clear a +5 V.

«Da lo mismo tomar el reloj del segundo flip-flop de Q1 o de ~Q1»

No: con ~Q1 el contador sube, con Q1 baja. Depende de que el segundo flip-flop capture en flanco ascendente y de cuál señal sube cuando Q1 baja.

«Un pulsador directo basta para contar a mano»

Cada rebote es un flanco ascendente para el flip-flop. Sin antirrebote la cuenta es irregular, aunque la mano sea cuidadosa.

«Si funciona tres veces seguidas, el arranque está bien»

Sin reset de encendido, el estado inicial es aleatorio; tres arranques iguales no demuestran nada. Hay que encender diez o veinte veces.

«El reset manual necesita un flanco de reloj»

El clear del 74HC74 es asíncrono: actúa apenas el pin baja, sin reloj, y mientras esté activo ignora los flancos.

«Mi circuito cuenta bien, no hace falta medir los tiempos»

A un reloj manual, todo cumple los tiempos con holgura. Al conectar un reloj rápido, las holguras del tema 11 vuelven a ser lo que importa.

11 · Práctica guiada

Predecí antes de armar

1. Cablear el contador

Escribí las conexiones entre pines del 74HC74 que convierten los dos flip-flops en un contador ascendente de dos bits, con el reloj manual en el pin 3.

Ver solución

Pin 6 (1Q̅) a pin 2 (1D); pin 8 (2Q̅) a pin 12 (2D); pin 6 a pin 11 (2CLK). Los LED van en el pin 5 (Q1, bit 0) y en el pin 9 (Q2, bit 1). PRE̅ y CLR̅ (pines 1, 4, 10 y 13) a +5 V o al reset.

2. Dos cableados

Después de 5 pulsaciones limpias desde 00, ¿qué muestra el contador si CLK2 viene de ~Q1? ¿Y si viene de Q1?

Ver solución razonada

Desde ~Q1: 5 mod 4 = 1 → 01. Desde Q1 cuenta hacia atrás: −5 mod 4 = 3 → 11. Se puede verificar con la secuencia: 11, 10, 01, 00, 11.

3. Frecuencias

Si en vez del reloj manual entran 1 MHz al pin 3, ¿qué frecuencia tiene cada salida? ¿Qué ciclo de trabajo?

Ver solución

Q1 (pin 5): 500 kHz. Q2 (pin 9): 250 kHz. Ambas con ciclo de trabajo de 50 %. El segundo flip-flop recibe un reloj de 500 kHz y lo divide a la mitad.

4. Rebotes invisibles

Un pulsador directo produce siempre 4 flancos por pulsación (el primero más 3 rebotes). Después de 1, 2 y 3 pulsaciones, ¿qué lee el contador de dos bits?

Ver solución

Cada pulsación suma 4 flancos: una vuelta completa de la cuenta. El contador lee 00 después de cada pulsación, como si nunca se hubiera tocado el pulsador. Es una coincidencia peligrosa: el circuito parece muerto, pero en realidad cuenta de más.

5. Un estado inicial distinto

Querés que el contador arranque en 10 (Q2 = 1, Q1 = 0). ¿Cómo se conectan el preset y el clear?

Ver solución

La línea de reset va al PRE̅ del FF2 (pin 10, para que Q2 arranque en 1) y al CLR̅ del FF1 (pin 1, para que Q1 arranque en 0). Los otros dos pines (pin 4, PRE̅ del FF1, y pin 13, CLR̅ del FF2) quedan a +5 V.

6. Diagnóstico

El contador funciona bien con el reloj manual, pero el LED de Q1 parpadea débilmente y el valor cambia solo cuando acercás la mano al protoboard. ¿Cuáles son las primeras sospechas?

Ver solución razonada

Una entrada al aire: lo más probable es que alguna de las patas PRE̅/CLR̅ no esté conectada a +5 V, o que el reloj del primer flip-flop quede flotando cuando la palanca está entre contactos (si el latch no está bien armado). Se mide cada entrada en reposo: todas deben estar en 0 V o en 5 V. El parpadeo débil del LED es la marca de una entrada en la zona intermedia.

12 · Síntesis

Ideas para recordar

  • El 74HC74 tiene dos flip-flops D con preset y clear activos en bajo; captura en el flanco ascendente. Pines 1 a 6 para el primero, 8 a 13 para el segundo.
  • Todo flip-flop de un chip se conecta, esté en uso o no: reloj y dato a masa, PRE̅ y CLR̅ a +5 V.
  • Un reloj manual sin rebotes se arma con un conmutador SPDT y un latch de NAND (tema 7).
  • Con D = ~Q cada flip-flop divide por 2; encadenados con CLK2 ← ~Q1 forman un contador ascendente (00, 01, 10, 11); con CLK2 ← Q1, descendente.
  • Un reloj con rebotes produce flancos de más; si son múltiplo de 4, un contador de dos bits no se entera.
  • El reset de encendido (RC con Schmitt sobre CLR̅) garantiza el arranque en 00; sin él, el estado inicial es aleatorio.
  • Armar por etapas, probar cada bloque, atar entradas y comparar la secuencia observada con la esperada es el método de depuración.

¿Listo para el tema 13?

Antes de avanzar, dibujá de memoria el cableado del contador de dos bits indicando los pines, explicá qué pasaría si el reloj rebotara y decidí cómo se garantiza el arranque en 00. Si podés justificar las tres respuestas, ya podés pasar de bits sueltos a grupos de bits.

En el próximo tema veremos los registros de almacenamiento: cómo agrupar varios flip-flops con un reloj común, una habilitación y una carga paralela para guardar una palabra completa.