🛠 Transmisión de audio I2S en ESP32 con Amp MAX98357A
Objetivos
Este tutorial tiene como objetivo crear un nodo de audio de red funcional. Aprenderá a configurar la interfaz I2S de un microcontrolador (aquí, un ESP32) para transmitir una corriente de audio digital al Amplificador Adafruit Stereo I2S 3W. A diferencia de los amplificadores analógicos, el MAX98357A procesa la señal digitalmente hasta la salida, ofreciendo alta fidelidad y una eficiencia del 92%. Exploraremos el cableado específico requerido para el modo Bridge Tied Load (BTL) y la gestión de niveles lógicos.
Materiales necesarios
- Adafruit Stereo I2S 3W Amplifier Breakout (Dual MAX98357A)
- Microcontrolador ESP32 (ej: Adafruit Feather HUZZIN ESP32)
- Altavoces de 4Ω o 8Ω (2 unidades para estéreo)
- Cables de conexión Dupont
- Fuente de alimentación externa de 5V/3A recomendada (el USB solo puede ser insuficiente para el volumen máximo)
- Cable USB para programación
Pasos
- Preparación de la alimentación: El amplificador es eficiente pero puede tener picos de corriente. Conecte el pin
VINdel amplificador a una fuente de 5V estable. ConecteGNDa la tierra común del ESP32 y la fuente de alimentación.
- Cableado I2S: El ESP32 usa pines específicos para I2S. Conecte los pines de la siguiente manera (verifique la hoja de datos de su placa):
*Nota: El MAX98357A no requiere un pin MCLK (Reloj maestro), lo que simplifica el cableado.*
BCLK(Reloj de bit) -> GPIO 26 (o 18 según configuración)LRC(Selección de palabra) -> GPIO 25 (o 19)DIN(Datos de entrada) -> GPIO 22 (o 23)GND-> GND
- Conexión de altavoces: El modo BTL significa que las salidas no están referenciadas a tierra. Para el canal izquierdo:
Repita para el canal derecho con OUT R+ y OUT R-. Nunca conecte los terminales de los altavoces a Tierra (GND).
- Conecte
OUT L+al terminal positivo del altavoz izquierdo. - Conecte
OUT L-al terminal negativo del altavoz izquierdo.
- Configuración de software: En Arduino IDE, seleccione la biblioteca
ESP32-audio-i2soI2S.h. Inicialice el bus I2S con los pines definidos en el Paso 2. Establezca la frecuencia de muestreo (ej: 44100 Hz) y la resolución (16 bits).
- Reproducción de la corriente: Cargue un archivo de audio o una corriente de red (vía Wi-Fi) en el búfer. Envíe muestras PCM mediante la función
write()de la interfaz I2S. El amplificador convertirá automáticamente la señal digital en potencia analógica.
Verificación
Encienda el sistema. Debería escuchar un ligero ruido de fondo (25µV RMS) si no se envía señal. Inicie la reproducción de audio. Verifique que el sonido salga de ambos altavoces sin distorsión excesiva. Si el sonido está saturado, reduzca el volumen de software o verifique que la ganancia de hardware (jumpers) no esté configurada demasiado alta (comience en 9dB).
Para ir más allá
Agregue funcionalidad de control de volumen a través de una interfaz web (ESP32 WebServer) o un potenciómetro digital. También puede explorar la reproducción de archivos FLAC para una calidad de audio superior, gestionando la decodificación en el microcontrolador antes de la transmisión I2S.