Electrónica Digital · Tema 29

Consumo y buenas prácticas

Todo lo anterior funcionó en una simulación o sobre una mesa con una fuente de laboratorio. El producto real vive a batería, dentro de una caja que se calienta, con cables largos y sin nadie que lo reinicie. En este tema aparece el costado eléctrico: cuánta energía gasta un circuito, cuánto aguanta una salida, por qué una entrada al aire es una promesa de problemas y qué revisar antes de cerrar una placa.

≈ 60 minutos Sin materiales: solo el navegador Incluye bateriómetro y Python

01 · Punto de partida

Anda acá, falla allá

El prototipo funciona perfecto sobre el protoboard. Lo pasás a una placa, lo metés en una caja, lo conectás a dos pilas y se lo dejás a alguien. Una semana después: se reinicia solo cuando prende el motor, se descarga en tres días, el integrado está tibio sin hacer nada y, si acercás la mano, la salida cambia. La lógica está bien. Lo que falló es todo lo que la tabla de verdad no incluye: la energía, la corriente, la tensión real de alimentación y la temperatura.

Una escena típica. Armás un sensor con un contador y un display. Con la fuente de laboratorio consume «nada». Con dos pilas AA, a 16 MHz, dura un día. Y además resetea cada vez que se enciende el backlight: el pico de corriente hundió la tensión del chip por un instante y el microcontrolador reinició.

Nada de eso se arregla con álgebra booleana. Se arregla con unas pocas reglas de oficio, que son las que fijan este tema.

  • ¿Cuánto consume una puerta CMOS y de qué depende?
  • ¿Cuántas entradas puede manejar una salida?
  • ¿Por qué una entrada al aire consume y se comporta de manera errática?
  • ¿Para qué sirve el condensador de 100 nF pegado a cada chip?
  • ¿Qué temperatura soporta realmente un circuito dentro de una caja?
  • ¿Cuánto dura una batería y cómo se hace que dure más?

02 · Consumo

Quieto no gasta, rápido sí

Una puerta CMOS (Tema 3) tiene un transistor arriba y otro abajo; nunca conducen los dos a la vez, así que en reposo casi no circula corriente. El consumo tiene tres orígenes:

De dónde sale la energía en un circuito CMOS.
OrigenCuándo apareceOrden de magnitudQué lo reduce
Estático (fugas)Siempre, aun sin cambiarMicroamperios por chipTemperatura baja, chips de bajo consumo
Dinámico (carga y descarga de C)En cada flanco de cada nodoDe microwatts a cientos de mW, según fMenos frecuencia, menos tensión, menos actividad
Cortocircuito en la transiciónMientras la entrada cruza la zona intermediaPequeño con flancos rápidos; grande con flancos lentosFlancos limpios; Schmitt en señales lentas
Cargas de continuaUn LED, una pull-up, un divisor que conduceMiliwatts: a menudo supera a todo el chipMenos corriente, pull-ups mayores, apagarlas

El dinámico es el que se calcula y el que se puede diseñar. Cada vez que una salida sube, carga la capacidad que ve (la propia de la puerta, las trazas y las entradas que alimenta) desde Vcc: se toma una energía C·V² del suministro y la mitad se disipa al cargar y la otra mitad al descargar. Multiplicado por las veces por segundo que ocurre:

N · C
La cantidad de nodos que conmutan y la capacidad de cada uno. Para una puerta suelta con trazas cortas se usa un valor del orden de 50 pF (orientativo). En un chip grande, es la suma de todo.
V al cuadrado
La tensión pesa dos veces: la energía por carga crece con V y la corriente necesaria también. Pasar de 5 V a 3,3 V no ahorra 34 %: gasta (5 / 3,3)² ≈ 2,3 veces menos.
f
La frecuencia es lineal: el doble de rápido, el doble de potencia. Un reloj de 16 MHz cuesta mil veces más que uno de 16 kHz.
α (actividad)
Qué fracción de los nodos conmuta realmente en cada ciclo. Un contador cambia pocos bits por paso; un reloj cambia siempre (α = 1). Con α = 1 se obtiene el peor caso, que es lo que conviene presupuestar.
Los glitches también cuestan
Cada pozo o pico espurio (Tema 28) carga y descarga una capacidad sin aportar nada útil. Son parte de la actividad y una razón más para el diseño síncrono.
Potencia dinámica de 10 puertas, C = 50 pF, α = 1.
FrecuenciaA 5 VA 3,3 VFactor
1 Hz12,5 nW5,4 nW2,3×
1 kHz12,5 µW5,4 µW2,3×
1 MHz12,5 mW5,4 mW2,3×
16 MHz200 mW87 mW2,3×
reposo: µA →f × V² × C →mW que calientan y vacían la batería

03 · Fan-out

Hasta dónde llega una salida

El fan-out (ya apareció en el Tema 7) es el número de entradas que puede alimentar una salida. La respuesta cambia según se mire en continua o con la señal moviéndose:

Qué presenta cada destino a la salida que lo maneja (salida 74HC, orientativo).
DestinoCarga que presentaQué limita primeroFan-out práctico
Entrada HC (CMOS)Fuga de ~1 µA y unos 3 a 10 pFLa capacitancia (velocidad)Decenas en continua; menos si hay MHz
Entrada LS (TTL)Hasta 0,4 mA a nivel bajoLa corriente (nivel bajo)Unas 10 por salida HC
LED con resistencia2 a 4 mALa corriente de salida1, con una corriente cómoda
Cable o bus largoDecenas de pF por metroLa capacitancia y los reflejosPocos; mejor con buffer

Las entradas CMOS casi no toman corriente continua, así que en continua el fan-out «sobra». El problema aparece cuando la señal se mueve: la salida tiene una resistencia interna (unas decenas de ohmios) y tiene que cargar la capacidad total C de todo lo que cuelga. Eso forma un RC (Tema 11) y el flanco deja de ser vertical:

Qué se pierde
Con más carga el flanco se redondea: tarda más en cruzar el umbral (más retardo, Tema 28), pasa más tiempo en la zona intermedia (más corriente de cortocircuito) y la potencia crece con C. Más fan-out es más lento, más caliente y más ruidoso a la vez.
Regla práctica
Que el tiempo de subida no pase del 10 al 20 % del período. Un reloj de 8 MHz (125 ns) tolera unos 12 a 25 ns; con 50 destinos tarda casi 60 ns, que ya es la mitad del período.
Buffer dedicado
Los relojes y las líneas de enable que llegan a muchos destinos salen de un buffer (Tema 7) pensado para esa carga, o se reparten en varios. Cada rama queda corta y con pocas entradas.
Resistencia en serie
Con trazas largas y flancos rápidos aparecen reflejos (ringing). Una resistencia de 22 a 33 Ω en serie con la salida, pegada a ella, amortigua el rebote a cambio de un flanco apenas más lento.

04 · Entradas

Flotantes, sobrantes y lentas

Una entrada CMOS tiene una impedancia altísima. Eso significa que, si no está conectada a nada, no vale nada en particular: recoge ruido de la red, acopla las señales vecinas y la carga estática de la mano que se acerca. Queda un buen rato en la zona intermedia, entre los umbrales, y ahí los dos transistores de la puerta conducen a la vez.

Entrada al aire

Errática y cara

La salida cambia sola, a veces oscila a alta frecuencia y el chip se calienta porque conduce desde Vcc a masa. Puede funcionar «por suerte» en el banco y fallar en el producto.

Entrada atada

Determinista

Con un 0 o un 1 definidos, la puerta está en un estado conocido y consume lo mínimo. Cuesta apenas un cable o una resistencia.

Qué hacer con cada entrada que «sobra».
CasoSoluciónPor qué
Puerta que no se usa (de las 4 de un 74HC08)Las dos entradas a GNDSalida fija; consumo mínimo
Entrada de AND que no hace faltaA Vcc (el neutro de la AND es 1)No altera la función (Tema 8)
Entrada de OR que no hace faltaA GND (el neutro de la OR es 0)No altera la función (Tema 8)
Enable u OE que siempre está activoAtarlo a su nivel activoQue no dependa del ruido
Botón o interruptor abierto (Tema 11)Pull-up o pull-down de unos 10 kΩUn nivel definido cuando nadie lo toca
Bus tri-estado sin nadie manejando (Tema 7)Pull-up o pull-down en el busQue Z no sea un valor al azar
Señal lenta o ruidosa (RC, sensor, botón)Entrada Schmitt (74HC14)Cruza la zona intermedia sin oscilar
Salidas que se pelean
Dos salidas activas con valores distintos sobre el mismo cable forman un cortocircuito entre Vcc y masa a través de ellas (contención, Tema 7). Se evita con buses tri-estado con un solo manejador activo por vez o con salidas de drenador abierto con pull-up.
Niveles entre familias
Una salida de 5 V no se conecta directamente a una entrada de 3,3 V: puede superar su máximo y dañarla. Se adapta con un divisor, un traductor o un chip tolerante a 5 V (74HC4050, Tema 7). El camino contrario (3,3 V hacia 5 V) a veces no llega al umbral alto: revisar VOH y VIH (Tema 3).
Pines sin conectar en un chip programable
Se configuran como salidas a un nivel fijo o como entradas con pull interno. Dejar una entrada sin configurar replica el problema de la entrada flotante.

05 · Alimentación

Picos de corriente y desacople

La corriente de un circuito digital no es constante. Cada vez que un conjunto de salidas conmuta, el chip toma un pico de decenas de miliamperios durante unos pocos nanosegundos, y después vuelve a tomar casi nada. La fuente está lejos y el cable que lleva la corriente tiene inductancia: se opone a los cambios rápidos de corriente.

Pico de 50 mA en 5 ns sobre distintas inductancias (orientativo; ~1 nH por mm).
Camino de alimentaciónInductanciaHundimiento
Cable de 15 cm desde la fuente≈ 150 nH≈ 1,5 V
Traza de 3 cm≈ 30 nH≈ 0,3 V
Traza de 1 cm (condensador pegado)≈ 10 nH≈ 0,1 V; y el condensador aporta la carga

Una caída de 1,5 V sobre un chip que trabaja a 3,3 V lo deja en 1,8 V: fuera de rango y un reset garantizado. La solución es darle al chip su propia reserva de carga a pocos milímetros: un condensador cerámico que entregue el pico sin pedírselo al cable.

100 nF por chip, pegado
Cerámico de 100 nF entre Vcc y GND, lo más cerca posible de los pines de alimentación (Tema 12): cuanto más corta la traza, menos inductancia. Con 100 nF y un pico de 50 mA × 5 ns la caída es de unos 2,5 mV. Es el elemento más barato y más importante de toda la placa.
Condensador de volumen (bulk)
Un electrolítico o cerámico de 10 µF o más por zona de la placa, para los cambios más lentos (un motor que arranca, un backlight que enciende). El 100 nF atiende los nanosegundos; el bulk, los microsegundos.
Rebote de masa
Lo mismo ocurre del lado de GND: cuando varias salidas pasan a 0 a la vez, la corriente de descarga levanta el potencial de masa local y una entrada «cree» ver otro nivel. Se mitiga con masa corta y ancha (plano de masa) y con menos salidas conmutando simultáneamente.
Rango de Vcc
Un 74HC acepta de 2 a 6 V, pero hay que medir con la carga conectada y con el osciloscopio, no con el multímetro en vacío. Una batería casi agotada y un hundimiento por un pico pueden unirse para sacarla del rango.
Regulador lineal
Un regulador lineal que baja de 9 V a 5 V disipa la diferencia: (9 − 5) × I como calor. A 80 mA son 320 mW perdidos, más que la lógica. Con batería conviene alimentar directo o usar un conmutado.

06 · Checklist

Temperatura y cinco puntos antes de cerrar

Todo componente tiene un rango de temperatura garantizado y todo circuito que consume se calienta por encima del aire que lo rodea. La temperatura de la juntura (el silicio) es la que cuenta:

Grados de temperatura habituales (confirmalo en la hoja de datos de tu chip).
GradoRango típicoEjemplo de uso
Comercial0 a 70 °CInterior, electrónica de consumo
Industrial−40 a 85 °CGabinetes, exterior, maquinaria
Automotriz / ampliadohasta 125 °CCompartimento del motor

El rango se mide en el chip, no en el aire. Una caja cerrada al sol supera los 50 °C con facilidad y la lógica propia le suma su calentamiento. El derating es no usar un componente en su límite: se deja margen (un 20 % o más) y se elige un grado superior si el cálculo se acerca. La velocidad máxima también baja con el calor y con una Vcc menor.

Con todo lo anterior, el checklist se reduce a cinco preguntas. Si alguna falla, la placa no está lista:

1. Vcc en rango, con carga y sin picos
HC: 2 a 6 V. Medir con todo conectado y con el osciloscopio, no en vacío. Revisar la batería casi agotada.
2. Desacople: 100 nF por chip, pegado
Más un bulk por zona. A MHz, ningún chip sin su condensador (Tema 12).
3. Sin entradas flotantes
Toda entrada a un nivel definido: puertas sobrantes, enables, buses sin manejador, botones con pull (Temas 3, 8, 11).
4. Salidas sin peleas y con carga razonable
Ninguna salida contra otra ni contra Vcc o GND; tri-estados alternados; fan-out dentro de la corriente y la velocidad.
5. Temperatura y rango
Ambiente de la caja + calentamiento de la juntura dentro del grado, con margen. Si no, derating o grado industrial.
De síntoma a sospechoso: la tabla que ahorra horas.
SíntomaSospechá primero deRegla
Resetea cuando conmuta una cargaHundimiento de Vcc2 y 1
Cambia si acercás la manoEntrada flotante3
Integrado tibio sin hacer nadaEntrada flotante o contención3 y 4
Flancos redondeados, falla a velocidad altaFan-out capacitivo4
Falla solo con calorTemperatura o margen de tiempo5
Falla solo con la batería bajaVcc fuera de rango1
Pulsos fantasma en un contadorGlitches (Tema 28) o rebote de masaDiseño síncrono; 2

07 · Simulador

Laboratorio: el bateriómetro

El simulador usa el modelo de esta lección: potencia dinámica P = N·C·V²·f con C = 50 pF y α = 1, más un resto del sistema de 0,5 mA mientras está activo (regulador, sensor, LED) y una corriente de sleep de 10 µA. Elegís cuántas puertas conmutan, la frecuencia, la tensión y qué parte del tiempo está despierto; con 2000 mAh de pilas, el laboratorio calcula la potencia, la corriente media, los días de vida y el calentamiento.

  • Barra apilada: de qué se compone la corriente media. El verde es el consumo dinámico, el celeste el resto del sistema activo y el naranja el sleep.
  • Calentamiento: θJA = 90 °C/W como cota orientativa para un DIP. Con ΔT mayor de 30 °C, el estado pasa a «Caliente».
  • Pila corta: cuando la autonomía baja de 72 horas.
SIMULADOR 29

Bateriómetro

10 puertas · 1 MHz · 5 V · activo 100 %

Composición de la corriente media Una barra apilada muestra qué parte de la corriente media corresponde al consumo dinámico, al resto del sistema activo y al sleep. DE QUÉ ESTÁ HECHA LA CORRIENTE MEDIA
Potencia activa (calentamiento)12,5 mW
Corriente media3,0 mA
Autonomía (2000 mAh)667 h (27,8 d)
EstadoTranqui ✓

10 puertas, 1 MHz y 5 V siempre activas.

Recorrido guiado (10 minutos)

  1. 1
    Mirá el estado inicial: 10 puertas, 1 MHz, 5 V, siempre activo.

    12,5 mW dinámicos son 2,5 mA; con los 0,5 mA del resto son 3 mA. Con 2000 mAh duran unas 667 horas, 28 días. El verde ya es la mayor parte de la barra.

  2. 2
    Subí a 16 MHz.

    La potencia se multiplica por 16: 200 mW y 40 mA. La frecuencia es lineal; la batería ya se nota.

  3. 3
    Subí las puertas a 20.

    Otra vez el doble: 400 mW, 80,5 mA y apenas 25 horas de autonomía. El calentamiento pasa de 30 °C: «Caliente».

  4. 4
    Pasá a 3,3 V.

    La potencia baja a unos 174 mW: 2,3 veces menos. Pero la autonomía solo mejora 1,5 veces, de 25 a 37 horas. La razón: los 0,5 mA del resto del sistema no bajan con V².

  5. 5
    Bajá la frecuencia a 1 kHz.

    El consumo dinámico desaparece (unos 3 µA) y la barra es casi toda celeste: el resto del sistema manda. Más ahorro en la lógica ya no mueve la aguja.

  6. 6
    Con 1 Hz, mirá la autonomía.

    0,5 mA constantes durante 4000 horas, unos 167 días. Lo único que queda es el resto del sistema.

  7. 7
    Ahora activá «10 %» y después «1 %».

    Despierto una centésima parte del tiempo, la corriente media baja a unos 15 µA y la autonomía teórica pasa de los 15 años. El naranja (sleep) toma la barra: ahora manda el sueño.

  8. 8
    Probá «Nodo a pilas».

    10 puertas a 1 kHz, 3,3 V y 1 % del tiempo activo. Es la receta de un sensor a pilas: poca frecuencia, poca tensión y dormido casi todo el tiempo.

  9. 9
    Volvé a «Sin cuidado: 16 MHz» y a 1 %.

    Aun a 16 MHz, dormir el 99 % del tiempo trae la autonomía de horas a meses. Los «ciclos de trabajo» son más potentes que cualquier optimización fina.

  10. 10
    Cerrá con las cuentas.

    Una buena regla de diseño: antes de elegir componentes, escribí el presupuesto de mA y las horas que querés durar; después comprobá que sale.

Preguntas para pensar

  1. Con 20 puertas a 16 MHz y 5 V, siempre activo, ¿cuánta potencia, cuánta autonomía y qué estado muestra?
  2. Pasá a 3,3 V: ¿en cuánto baja la potencia y en cuánto sube la autonomía? ¿Por qué no coinciden?
  3. Con 1 Hz y 100 % activo, ¿qué manda el consumo?
  4. Con 1 Hz y 1 %, ¿qué cambia y por qué?
Ver respuestas sugeridas
  1. 400 mW, 80,5 mA, unas 25 horas (un día) y «Caliente» (+36 °C). A MHz las pilas duran suspiros.
  2. La potencia pasa de 400 a 174 mW (2,3×, porque P ∝ V²), pero la autonomía solo sube a unas 37 horas (1,5×): los 0,5 mA del resto del sistema no dependen de la lógica, y la corriente dinámica cae solo como V (P/V), no como V².
  3. El resto del sistema (0,5 mA): la lógica es despreciable. Para bajar el consumo hay que actuar sobre el reposo, no sobre la frecuencia.
  4. La corriente media cae a unos 15 µA y la autonomía teórica a más de 15 años: el sleep (10 µA) pasa a mandar. Dormir es la mayor palanca; en la práctica manda la autodescarga de la pila.

08 · Consumo y diseño en código

Potencia, fan-out, autonomía, picos y auditoría

Los bloques calculan la potencia dinámica y el ahorro de bajar la tensión, el tiempo de subida y el consumo de un reloj según su fan-out, la autonomía de una batería con y sin sleep, el hundimiento de Vcc por un pico de corriente con y sin condensador, y la temperatura de juntura. Cierran con un auditor que aplica el checklist de cinco puntos a dos placas.

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: potencia dinámica y el ahorro de V²

def p_dinamica_mw(n, c_pf, vcc, f_hz, alfa=1.0):
    return alfa * n * c_pf * 1e-12 * vcc ** 2 * f_hz * 1000


print("P = alfa * N * C * V^2 * f    (N = 10 puertas, C = 50 pF, alfa = 1)")
print("frecuencia      5 V (mW)    3,3 V (mW)   ahorro")
for f in (1, 1e3, 1e6, 16e6):
    p5 = p_dinamica_mw(10, 50, 5.0, f)
    p33 = p_dinamica_mw(10, 50, 3.3, f)
    print(f"{f:10.0f} Hz  {p5:11.6f}  {p33:12.6f}   x{p5 / p33:.2f}")

print()
print("20 puertas a 16 MHz, 5 V, segun la actividad alfa (fraccion de puertas que conmutan):")
for alfa in (1.0, 0.25, 0.1):
    print(f"  alfa = {alfa:4.2f}: {p_dinamica_mw(20, 50, 5.0, 16e6, alfa):6.1f} mW")

La potencia es lineal en f (de 12,5 mW a 1 MHz a 200 mW a 16 MHz con 10 puertas) y el ahorro de pasar de 5 a 3,3 V es siempre 2,30×, sin importar la frecuencia. Con 20 puertas a 16 MHz son 400 mW si todas conmutan, 100 mW con α = 0,25 y 40 mW con α = 0,1: no mover lo que no hace falta rinde tanto como bajar la tensión.

Paso 2: fan-out, tiempo de subida y reloj

R_SAL = 50.0                                     # ohm, salida HC a 5 V (orientativo)
C_ENT, C_TRAZA = 10e-12, 30e-12                  # entrada HC y trazas (orientativo)


def c_total(n_destinos):
    return n_destinos * C_ENT + C_TRAZA


def t_subida_ns(c):
    return 2.2 * R_SAL * c * 1e9                 # del 10 % al 90 %


def p_reloj_mw(c, vcc, f_hz):
    return c * vcc ** 2 * f_hz * 1000


F = 8e6
periodo_ns = 1e9 / F
print(f"reloj de {F/1e6:.0f} MHz (periodo {periodo_ns:.0f} ns), salida de {R_SAL:.0f} ohm, 5 V")
print("destinos   C total   subida   % del periodo   potencia   corriente")
for n in (1, 4, 8, 20, 50):
    c = c_total(n)
    t = t_subida_ns(c)
    p = p_reloj_mw(c, 5.0, F)
    print(f"{n:8d}  {c*1e12:6.0f} pF  {t:6.1f} ns  {100*t/periodo_ns:10.0f} %  {p:8.1f} mW  {p/5:7.1f} mA")
print()
print("regla orientativa: que la subida no pase del 10-20 % del periodo; si pasa, buffer o menos carga")

Con 8 destinos, C = 110 pF: el flanco tarda 12 ns (10 % del período), el reloj gasta 22 mW y toma 4,4 mA. Con 50 destinos, C = 530 pF: 58 ns (47 % del período), 106 mW y 21 mA solo para el reloj. Más fan-out es más lento y más caro.

Paso 3: autonomía con y sin sleep

def i_media_ma(i_activo, i_sleep, duty):
    return duty * i_activo + (1 - duty) * i_sleep


def autonomia(i_ma, mah=2000.0):
    h = mah / i_ma
    return h, h / 24, h / 24 / 365


casos = (("siempre activo, 1 MHz", 3.0, 3.0, 1.0),
         ("siempre activo, 16 MHz", 80.5, 80.5, 1.0),
         ("10 ms cada 1 s, resto sleep", 5.0, 0.010, 0.01),
         ("10 ms cada 1 s, sin sleep (0,5 mA)", 5.0, 0.5, 0.01),
         ("1 s cada 60 s, resto sleep", 5.0, 0.010, 1 / 60))
print("caso                                  I media     horas      dias     anios")
for nombre, i_act, i_sl, duty in casos:
    i = i_media_ma(i_act, i_sl, duty)
    h, d, a = autonomia(i)
    print(f"{nombre:36s} {i:8.3f} mA {h:9.0f} {d:9.1f} {a:8.2f}")
print()
print("el sleep manda: pasar de 0,5 mA a 10 uA de reposo multiplica la autonomia por", round(i_media_ma(5, 0.5, 0.01) / i_media_ma(5, 0.010, 0.01), 1))

Siempre activo a 1 MHz dura 667 h (28 días); a 16 MHz, 25 h. Un nodo que mide 10 ms cada segundo y duerme a 10 µA promedia 0,06 mA: unas 33 000 h, 3,8 años teóricos. Sin sleep real (0,5 mA de reposo) el mismo nodo dura 153 días: el reposo se multiplica por 9 la autonomía.

Paso 4: picos de corriente y desacople

def pico_inductivo_v(l_nh, di_ma, dt_ns):
    return l_nh * 1e-9 * (di_ma * 1e-3) / (dt_ns * 1e-9)       # V = L di/dt


def caida_capacitiva_mv(i_ma, dt_ns, c_nf):
    return (i_ma * 1e-3) * (dt_ns * 1e-9) / (c_nf * 1e-9) * 1000   # dV = I dt / C


print("pico de corriente: 50 mA en 5 ns (varias salidas conmutando a la vez)")
for nombre, l_nh in (("cable de 15 cm (~1 nH/mm)", 150), ("traza de 3 cm", 30), ("traza de 1 cm", 10)):
    print(f"  inductancia de {nombre:27s} {l_nh:4d} nH -> pico de {pico_inductivo_v(l_nh, 50, 5):.2f} V")
print()
for c_nf in (10, 100):
    print(f"  con {c_nf:3d} nF pegado al chip: caida de {caida_capacitiva_mv(50, 5, c_nf):.1f} mV durante el pico")
print()
vcc_min_hc = 2.0
for pico in (0.1, 1.5):
    vcc = 3.3 - pico
    print(f"  Vcc nominal 3,3 V con un hundimiento de {pico:.1f} V -> {vcc:.1f} V:", "ok" if vcc >= vcc_min_hc else "FUERA de rango (HC: minimo 2 V)")

Un cable de 15 cm entre la fuente y el chip hunde 1,5 V con un pico de 50 mA en 5 ns; una traza de 1 cm, 0,1 V. Un 100 nF pegado al chip aporta la carga con una caída de solo 2,5 mV (con 10 nF, 25 mV). A 3,3 V, el hundimiento de 1,5 V lo deja en 1,8 V, fuera del mínimo del HC: reset asegurado.

Paso 5: temperatura de juntura y auditor del checklist

THETA_JA = 90.0                                  # grados por watt, DIP (orientativo)
RANGOS = {"comercial": (0, 70), "industrial": (-40, 85)}


def t_juntura(t_amb, p_mw, theta=THETA_JA):
    return t_amb + theta * p_mw / 1000


print("temperatura de juntura = ambiente + theta * P")
for t_amb, p in ((25, 12.5), (25, 400), (50, 400), (60, 400)):
    print(f"  ambiente {t_amb} C, {p:5.1f} mW -> {t_juntura(t_amb, p):5.1f} C")

REGLAS = (("vcc_ok", "Vcc dentro del rango con carga y sin picos"),
          ("desacople", "100 nF por chip, pegado a los pines"),
          ("sin_flotantes", "ninguna entrada al aire"),
          ("sin_peleas", "ninguna salida contra otra o contra Vcc/GND"),
          ("temperatura", "ambiente + calentamiento dentro del grado"))


def auditar(placa):
    return [txt for clave, txt in REGLAS if not placa.get(clave, False)]


def temp_ok(t_amb, p_mw, grado):
    lo, hi = RANGOS[grado]
    return lo <= t_juntura(t_amb, p_mw) <= hi


placa_a = {"vcc_ok": True, "desacople": False, "sin_flotantes": True, "sin_peleas": True,
           "temperatura": temp_ok(50, 400, "comercial")}
placa_b = {"vcc_ok": True, "desacople": True, "sin_flotantes": True, "sin_peleas": True,
           "temperatura": temp_ok(40, 400, "industrial")}
for nombre, placa in (("placa A (gabinete a 50 C, grado comercial)", placa_a),
                      ("placa B (desacople, gabinete a 40 C, grado industrial)", placa_b)):
    fallas = auditar(placa)
    print()
    print(nombre, "->", "lista para cerrar" if not fallas else f"{len(fallas)} falla(s):")
    for f in fallas:
        print("   -", f)

A 400 mW, la juntura queda 36 °C sobre el ambiente: 61 °C en una mesa a 25 °C, pero 86 °C en un gabinete a 50 °C, por encima del grado comercial (y apenas pasando el industrial). El auditor marca dos fallas en la placa A (sin desacople y fuera de temperatura) y aprueba la B, que tiene el condensador y trabaja a 40 °C con grado industrial (76 °C).

09 · Analogía de programador

Presupuesto, capacidad y pre-deploy

El mismo concepto, en dos mundos.
En softwareEn el circuito
Un presupuesto de memoria o de CPU por servicioUn presupuesto de miliamperios por bloque
El costo del trabajo crece con las operaciones por segundoLa potencia crece con la frecuencia (P ∝ f)
Una optimización que escala al cuadrado de una variableBajar la tensión rinde al cuadrado (P ∝ V²)
Un servidor con un máximo de conexionesEl fan-out de una salida; en dc sobra, con carga se satura
Un caché local que absorbe ráfagas para no saturar el recurso remotoEl condensador de desacople que absorbe los picos de corriente
Una variable sin inicializarUna entrada flotante
Dos hilos escribiendo en el mismo recurso sin exclusiónDos salidas peleando sobre el mismo cable
Un modo de bajo consumo, un idle o suspendEl sleep: el ciclo de trabajo manda la autonomía
Una máquina que se estrangula (throttling) por calorLa temperatura de juntura y el derating
La lista de verificación previa al despliegue: tests, lint, migracionesEl checklist de cinco puntos antes de cerrar la placa
Un test que pasa en tu máquina y falla en producciónUn circuito que anda en la mesa y falla en la caja
  1. 1
    El costo está en el cambio.

    Una variable quieta no cuesta; reescribirla millones de veces por segundo sí. En CMOS pasa lo mismo: mantener un valor es gratis y cambiarlo se paga.

  2. 2
    Las condiciones de producción no son las del banco.

    Entornos, cargas y tiempos distintos. Un buen diseñador piensa en el peor caso, no en el caso feliz.

  3. 3
    Lo sin definir es lo que falla.

    Una entrada flotante es una variable sin inicializar: «a veces anda» es el peor tipo de bug. Definir todo estado es una regla tanto de código como de hardware.

Una diferencia importante: en software, un recurso agotado suele degradar con elegancia (más lento). En hardware, un recurso agotado (tensión fuera de rango, temperatura, corriente) puede dañar el componente o dejarlo en un estado indefinido. Por eso se deja margen.

10 · Comprensión

Confusiones frecuentes

«CMOS no consume»

En reposo, casi nada. Pero cada flanco carga una capacidad y a MHz eso suma cientos de mW (400 mW en el ejemplo de 20 puertas a 16 MHz). La frecuencia factura.

«Bajar a 3,3 V ahorra el 34 %»

La potencia dinámica baja con V², unas 2,3 veces (un 56 %). Y la autonomía total mejora menos, porque el resto del sistema (regulador, sensores, LED) no se reduce igual.

«El fan-out es un número fijo»

Depende de cómo se mire: en continua puede ser de decenas, pero con la señal en MHz lo limita la capacitancia total. Y no es lo mismo cargar entradas HC que LS o un LED.

«Una entrada sin conectar vale 0»

No vale nada: flota, capta ruido y puede oscilar o consumir. Si no se usa, se ata a GND o a Vcc, y las entradas de enable y de botones llevan una pull.

«El desacople es opcional»

A baja frecuencia se perdona; a MHz castiga: picos, glitches y resets. Un cerámico de 100 nF por chip, pegado, no se debate.

«Mido Vcc con el multímetro y está bien»

El multímetro promedia y se lee en vacío. Los hundimientos duran nanosegundos y aparecen con carga: hace falta un osciloscopio y medir con todo conectado.

«Si anda a temperatura ambiente, anda»

La juntura se calienta sobre el aire y una caja cerrada suma más. Un grado comercial (0 a 70 °C) puede quedar chico en un gabinete a 50 °C con 400 mW. Se calcula con θJA y se deja margen.

«USB alcanza siempre»

Los 500 mA de un puerto USB se acaban con LEDs, relés y MHz. La corriente se presupuesta como se presupuesta la memoria de un servicio.

11 · Práctica guiada

Ejercicios de presupuesto

Ejercicio 1: reloj a 8 destinos

Un reloj de 8 MHz, a 5 V, alimenta 8 entradas HC de 10 pF cada una más 30 pF de trazas. Con una salida de 50 Ω, ¿cuánto vale C total? ¿Cuánto tarda el flanco y qué porcentaje del período es? ¿Qué potencia y qué corriente consume solo el reloj? ¿Hace falta un buffer?

Ver solución razonada

C = 8 × 10 + 30 = 110 pF. Subida ≈ 2,2 × 50 × 110 pF ≈ 12 ns, el 10 % de los 125 ns del período: aceptable. Potencia: P = C·V²·f = 110e-12 × 25 × 8e6 = 22 mW, o sea 22 / 5 = 4,4 mA (cuidado con las unidades: el producto da watts, no amperios). Un buffer no es obligatorio para 8 destinos cercanos; sí si las trazas son largas, si llegan a varias zonas de la placa o si crecen a 50 destinos (58 ns, casi la mitad del período).

Ejercicio 2: nodo a pilas

Un sensor mide una vez por segundo: 10 ms activo a 5 mA y el resto del tiempo en sleep a 10 µA. ¿Cuál es la corriente media? ¿Cuánto duran 2000 mAh? ¿Y si el sleep fuera de 0,5 mA?

Ver solución razonada

Media = 0,01 × 5 + 0,99 × 0,010 = 0,0599 ≈ 0,06 mA. Autonomía = 2000 / 0,06 ≈ 33 000 h, unos 3,8 años teóricos (la autodescarga de la pila recorta el número real). Con 0,5 mA de reposo: 0,05 + 0,495 = 0,545 mA, o sea unas 3670 h, 153 días: el reposo manda y por eso se diseña dormido.

Ejercicio 3: auditar una placa

Una placa se reinicia cada vez que se enciende un relé. Aplicá el checklist de cinco puntos: ¿quién es el sospechoso número uno y cómo lo confirmás?

Ver solución razonada

Alimentación y desacople (puntos 1 y 2): la bobina del relé pide un pico que hunde Vcc local. Se confirma con el osciloscopio sobre el pin de alimentación del chip que se reinicia: se ve el hundimiento justo en el instante de la conmutación. Se arregla con 100 nF pegado al chip, un bulk de 10 µF o más cerca de la carga, masas en estrella y un diodo de rueda libre en la bobina.

Ejercicio 4: el valor de bajar la tensión

Un diseño de 20 puertas a 16 MHz y 5 V gasta 400 mW. Calculá el consumo a 3,3 V y a 3,3 V con la frecuencia a la mitad. ¿Qué precio se paga por bajar la tensión?

Ver solución razonada

A 3,3 V: 400 × (3,3 / 5)² ≈ 174 mW. Con 8 MHz además: 87 mW, casi 4,6 veces menos que el original. El precio: una puerta HC a 3,3 V es más lenta (la tensión baja la corriente de salida y el retardo de propagación sube, Tema 28) y los márgenes de ruido se achican. Hay que verificar el retardo máximo con la tensión elegida.

Ejercicio 5: ¿entra en el grado?

Un circuito disipa 250 mW en un gabinete que llega a 55 °C. Con θJA = 90 °C/W, ¿cuál es la temperatura de juntura? ¿Sirve un chip comercial? ¿Y uno industrial?

Ver solución razonada

Tj = 55 + 90 × 0,25 = 77,5 °C. Un chip comercial (máx. 70 °C) no sirve. Uno industrial (85 °C) sí, pero con solo 7,5 °C de margen: conviene bajar la potencia o mejorar la ventilación antes de confiar. Para quedar con un 20 % de margen sobre el límite, habría que quedar en unos 68 °C.

Ejercicio 6: un LED directo al pin

Un LED rojo (caída de 2 V) se conecta a un pin HC de 5 V con una corriente de 4 mA. Calculá la resistencia y compará la potencia que toma de la fuente con la de 10 puertas a 1 MHz.

Ver solución razonada

R = (5 − 2) / 0,004 = 750 Ω (un valor comercial: 680 Ω da unos 4,4 mA). La fuente entrega 5 V × 4 mA = 20 mW, más que los 12,5 mW de diez puertas a 1 MHz: un solo LED encendido consume más que toda la lógica. Si hay que ahorrar, el LED es el primer sospechoso (PWM, menos corriente, apagarlo cuando no se usa).

12 · Síntesis

Ideas para recordar

  • En CMOS se paga por cambiar: P = α·N·C·V²·f. Lineal en la frecuencia y en la actividad, cuadrática en la tensión; pasar de 5 a 3,3 V gasta 2,3 veces menos.
  • En reposo manda el estático y el resto del sistema; en rápido manda f·V². La autonomía de una batería se gana, sobre todo, durmiendo.
  • El fan-out en continua sobra, pero con la señal en movimiento lo limita la capacitancia total: flancos lentos, más consumo y más retardo. Los relojes salen de buffers.
  • Una entrada flotante capta ruido, oscila y consume: toda entrada va atada, los sobrantes a su neutro y los botones con pull.
  • Los picos de corriente hunden Vcc sobre la inductancia del cable: 100 nF pegado a cada chip y un bulk por zona.
  • La temperatura de juntura es la del aire más θJA·P: derating y grado industrial cuando el margen es escaso.
  • Checklist: Vcc en rango, desacople, sin flotantes, sin peleas de salidas, temperatura con margen.
  • Presupuestar los miliamperios como se presupuesta el código, y medir con carga y con osciloscopio.

¿Listo para el Tema 30?

Podés avanzar si sos capaz de responder esto sin mirar:

  • Calcular la potencia dinámica a partir de N, C, V y f, y decir cuánto ahorra bajar la tensión.
  • Estimar el tiempo de subida y el consumo de un reloj según su fan-out.
  • Calcular la autonomía de una batería con un ciclo de trabajo y un sleep.
  • Decidir qué hacer con cada entrada sobrante, flotante o lenta.
  • Explicar para qué sirve el 100 nF y por qué se pone pegado al chip.
  • Recorrer el checklist de cinco puntos y relacionar cada síntoma con su sospechoso.

Con el lado eléctrico claro, las piezas están listas para unirse. En el próximo tema armamos el primer proyecto completo: una cerradura digital con comparador, anti-rebote y las prácticas de este tema aplicadas desde el principio.