Un módulo Bluetooth puede consumir microamperios en reposo o decenas de miliamperios al transmitir, y la brecha entre ambos números decide la vida de la batería. La mayoría ajusta la radio y olvida la máquina de estados de energía, cuando es ahí donde se ganan o pierden meses de autonomía. Este artículo presenta un modelo práctico de programación de bajo consumo: qué estados existen, qué despierta la pieza y cómo calcular la corriente media que un diseño realmente consumirá.
La máquina de estados de energía
Piense en el módulo Bluetooth moviéndose por cuatro estados, no dos:
| Estado | Corriente típica | Qué permanece activo |
|---|---|---|
| Activo / TX-RX | 5-20 mA | Radio, CPU, flash |
| Sleep (CPU idle) | 1-3 mA | Reloj CPU gated, RAM retenida |
| Deep sleep | 10-200 µA | RTC, solo RAM retenida |
| Hibernación | 1-5 µA | Wake GPIO, RTC, nada más |
El arte es pasar el mayor tiempo posible en deep sleep o hibernación cumpliendo la latencia que la app necesita. Un sensor de puerta que reporta una vez al día vive en hibernación; un wearable que transmite ritmo cardíaco debe quedarse en sleep.
Fuentes de despertar
Un módulo Bluetooth no se despierta solo: algo debe sacarlo del reposo:
- Interrupción GPIO: flanco de botón, PIR o reed. El más rápido (µs) y barato.
- RTC / temporizador: para beacons o polling periódicos. Predecible, pero fija el ciclo de trabajo.
- UART RX: llegan bytes del host y el flanco de bajada despierta la pieza. Requiere polarizar el pin RX.
- Evento BLE: ventana de advertising o evento de conexión programado por el stack.
- Temporizador de la radio: la capa de enlace se autodespierta para el próximo intervalo.
Para un sensor con batería, GPIO + RTC es la combinación que deja la pieza dormida el 99% del tiempo.
Matemática del ciclo de trabajo
La corriente media es la suma ponderada por tiempo de cada estado:
I_avg = I_active * (t_active / T) + I_sleep * (1 – t_active / T)
Si un módulo Bluetooth transmite 5 ms cada 1 s a 15 mA y duerme a 50 µA el resto:
I_avg = 0.015 * 0.005 + 0.00005 * 0.995 ≈ 0.000125 A = 125 µA
Una CR2032 (220 mAh) dura entonces unas 220 / 0.125 ≈ 1760 horas, unos 73 días. Lleve el intervalo a 10 s y supera los dos años. El intervalo, no la potencia de radio, domina.
Elección de PMIC y regulador
El regulador que alimenta al módulo Bluetooth importa tanto como el módulo. Un LDO lineal es simple y silencioso pero desperdicia como calor la caída de la batería a 1.8 V. Un convertidor buck (conmutado) alcanza 85-95% de eficiencia y puede duplicar la autonomía en una celda Li de 3.6 V. Regla: con caída >200 mV y más de pocos mA, use buck.
También vigile la corriente de quiescencia del PMIC: un buck que consume 25 µA en reposo puede ahogar a un módulo Bluetooth en hibernación a 5 µA. Elija un PMIC cuya Iq esté muy por debajo de su corriente de sleep objetivo.
Apretón de manos para dormir
Nunca corte la energía a un módulo Bluetooth a mitad de una escritura de flash. Use un apretón explícito:
1. El host envía un comando de sleep (p.ej. AT+SLEEP) y espera OK.
2. El módulo termina la operación, vacía la UART y activa la línea HOST_WAKE/CTS para decir «estoy dormido».
3. El host puede cortar la alimentación de la radio o dejar que el PMIC la idle.
Al despertar, el host desactiva la línea; el módulo arranca su stack en decenas de ms y vuelve a subir HOST_WAKE para señalar listo.
Compensación de latencia de despertar
Despertar más rápido cuesta energía. Un módulo que mantiene un oscilador de baja frecuencia despierta en 2 ms pero quema más en sleep; uno que gatea todo necesita 20-50 ms y reinicio completo. Elija según la app: un teclado quiere <10 ms, un beacon de temperatura tolera segundos.
Medirlo de verdad
El modelo solo es tan bueno como sus números. Use un analizador de potencia DC (no un multímetro) para capturar la traza de corriente y sume el área bajo la curva:
Carga_por_ciclo = ∫ I(t) dt (en µA·s)
Corriente_media = Carga_por_ciclo / T
Esto captura el costo real de escrituras flash, arranque de cristal y ringing del regulador que la fórmula simple oculta.
Un diseño de módulo Bluetooth bien arquitectado pasa la mayor parte de su vida en deep sleep, despierta por una fuente limpia y usa un buck cuya corriente de quiescencia es fracción del piso de sleep: así convierte semanas de autonomía en años.