01 · Punto de partida
Una entrada, tres superpoderes
¿Para qué una puerta con una sola entrada? Para negar (el sensor avisa al revés), reforzar (un pin no llega a 20 LEDs) y desconectar (ocho chips comparten un bus por turnos). Tres símbolos, un chip cada uno.
- ¿Qué hace la bolita en el símbolo?
- ¿Cuándo un buffer salva un diseño?
- ¿Qué es Z y por qué no es 0?
- ¿Cómo comparten un cable varios chips?
02 · NOT
El que dice que no
Y = ~A: 0→1, 1→0. Símbolo triángulo con bolita (la bolita siempre niega, donde sea que aparezca). 74HC04 trae 6: el chip más barato para “avisar al revés”.
03 · Buffer
El que repite fuerte
Y = A sin negar, con corriente de sobra: un pin maneja decenas de entradas a través de buffers. Usos: relojes que llegan a todos lados, entradas débiles, aislar etapas.
Sin buffer
Pin sobrecargado
20 LEDs chupan 400 mA: el micro se protege y se apaga (o se quema).
Con buffer
Cada uno con su corriente
El pin decide, el buffer alimenta: señal intacta, corriente aparte.
04 · Tri-estado
El que sabe callar
Con enable en 1 copia la entrada; en 0 se desconecta (Z = alta impedancia: ni 0 ni 1, cable suelto). Así varios drivers comparten un bus por turnos (74HC125 ×4). Regla: un pull (4,7k–10k) define el reposo; nunca dos hablando a la vez.
| EN | A | Y |
|---|---|---|
| 0 | 0 | Z |
| 0 | 1 | Z |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
05 · Puertas en código
Negar, copiar y callar
Modelo de las tres más colisión en bus: dos hablando = ‘X’.
Python en tu navegador. Prendé dos drivers y mirá la X.
def not_(a):
return 1 - a
def buf(a):
return a
def tri(a, en):
return a if en else "Z"
print("NOT:", [not_(a) for a in (0, 1)])
print("TRI:", tri(1, 1), tri(1, 0))
NOT: [1, 0]. TRI con EN=1 copia, con EN=0 suelta. ¿Qué lee el bus si nadie habla? (Pista: el pull.)
Bus con tres drivers
def bus(drivers, pull=1):
activos = [d for d in drivers if d != "Z"]
if len(activos) > 1 and len(set(activos)) > 1:
return "X colision!"
return activos[0] if activos else f"{pull} (pull)"
print(bus([tri(1, 1), tri(0, 0), tri(1, 0)]))
print(bus(["Z", "Z", "Z"]))
print(bus([tri(1, 1), tri(0, 1)]))
06 · Analogía programador
!, proxy y mute
- 1NOT = !.
Niega un booleano:
!acon silicio. Doble NOT = buffer con demora. - 2Buffer = proxy.
Repite sin cambiar: como el seguidor analógico (Tema 16, curso 4), pero en bits.
- 3Tri = mute + mutex.
Callar el mic y pasar la palabra: uno habla, el resto en Z. Dos hablando = colisión.
07 · Exploración
Laboratorio: callar y hablar
Buffer tri-estado con A y EN: el laboratorio muestra Y, el LED y quién manda en el bus.
Habla/calla
A=1 EN=1 → Y=1
A=1 EN=1: hablo con 1.
Preguntas para explorar
- Apagá EN. ¿Y? ¿LED? ¿Quién define el bus ahora?
- Con EN=1, cambiá A. ¿Y y NOT? ¿Suman 1 siempre?
- ¿Qué pasaría con otro driver en 0 hablando a la vez?
Ver respuestas sugeridas
- Z: LED apagado, el bus lo define el pull (típ. 1). Callado total.
- Y = A, NOT = 1−A: siempre suman 1. Complementarios por construcción.
- Colisión (X): cortocircuito lógico 1 vs 0, calienta y nadie entiende nada. Por eso un solo EN.
08 · Comprensión
Confusiones frecuentes
«El buffer no sirve para nada»
Sirve para corriente, fan-out y timing: el pin decide, el buffer ejecuta. Sin buffers no hay buses ni relojes.
«Z es un tercer 0»
Z es desconexión: sin pull el bus flota y lee cualquier cosa. Z + pull = reposo definido.
«Tri-estado = lógica ternaria»
No hay tres valores lógicos: hay dos valores más “ausente”. El diseño sigue binario.
«Dos pueden hablar si dicen lo mismo»
Aun así está prohibido: transitorios y skew los enfrentan nanosegundos. Un solo EN activo, siempre.
09 · Práctica guiada
Ejercicios de una entrada
Ejercicio 1: LED al revés
Sensor activo-bajo (0 = alarma) a LED que debe prender en alarma con 74HC04. Dibujá la cadena y la tabla.
Ver solución razonada
Sensor → NOT → R → LED a masa: alarma (0) → NOT da 1 → LED prende. Tabla: 0→1, 1→0.
Ejercicio 2: bus de dos
Dos 74HC125 comparten un bus con pull-up 10k. Escribí quién habla en cada momento y qué lee el bus si ambos callan.
Ver solución
EN1 = ~EN2 (un inversor los alterna): bus = D1 o D2. Ambos en Z → pull-up: lee 1.
Ejercicio 3: contar inversores
74HC04 (6 NOT): ¿cuántos chips para 4 señales de enable invertidas + 2 LED al revés? ¿Sobra alguno?
Ver solución
Un chip (6 = 4+2, justo). Sobra cero: el diseño que usa el chip entero es el diseño barato.
10 · Síntesis
Ideas para recordar
- NOT: Y = ~A; bolita = niega; 74HC04 ×6.
- Buffer: Y = A con corriente; fan-out y relojes.
- Tri: EN=1 copia, EN=0 suelta (Z); 74HC125 ×4.
- Bus: un solo hablante + pull de reposo.
- Y + NOT = 1 siempre.
Una entrada dominada. Ahora dos: en el próximo tema, AND y OR.