🛠 Streaming audio I2S sur ESP32 avec l'Ampli MAX98357A
Objectifs
Ce tutoriel vise à créer un nœud audio réseau fonctionnel. Vous apprendrez à configurer l'interface I2S d'un microcontrôleur (ici un ESP32) pour transmettre un flux audio numérique vers l'amplificateur Adafruit Stereo I2S 3W. Contrairement aux amplis analogiques, le MAX98357A traite le signal en numérique jusqu'à la sortie, offrant une haute fidélité et une efficacité de 92%. Nous explorerons le câblage spécifique requis pour le mode Bridge Tied Load (BTL) et la gestion des niveaux logiques.
Matériel nécessaire
- Carte Adafruit Stereo I2S 3W Amplifier Breakout (Dual MAX98357A)
- Microcontrôleur ESP32 (ex: Adafruit Feather HUZZIN ESP32)
- Haut-parleurs 4Ω ou 8Ω (2 unités pour la stéréo)
- Fils de connexion Dupont
- Alimentation externe 5V/3A recommandée (l'USB seul peut être insuffisant pour le volume max)
- Câble USB pour la programmation
Étapes
- Préparation de l'alimentation : L'ampli est efficace mais peut tirer des pics de courant. Connectez le pin
VINde l'ampli à une alimentation 5V stable. ConnectezGNDà la masse commune de l'ESP32 et de l'alimentation.
- Câblage I2S : L'ESP32 utilise des broches spécifiques pour l'I2S. Connectez les pins comme suit (vérifiez la datasheet de votre carte) :
*Note : Le MAX98357A ne nécessite pas de broche MCLK (Master Clock), simplifiant le câblage.*
BCLK(Bit Clock) -> GPIO 26 (ou 18 selon config)LRC(Word Select) -> GPIO 25 (ou 19)DIN(Data In) -> GPIO 22 (ou 23)GND-> GND
- Connexion des haut-parleurs : Le mode BTL signifie que les sorties ne sont pas référencées à la masse. Pour le canal Gauche :
Répétez pour le canal Droit avec OUT R+ et OUT R-. Ne connectez jamais les bornes des haut-parleurs à la masse (GND).
- Connectez
OUT L+à la borne positive du haut-parleur gauche. - Connectez
OUT L-à la borne négative du haut-parleur gauche.
- Configuration logicielle : Dans Arduino IDE, sélectionnez la bibliothèque
ESP32-audio-i2souI2S.h. Initialisez le bus I2S avec les broches définies à l'étape 2. Définissez la fréquence d'échantillonnage (ex: 44100 Hz) et la résolution (16-bit).
- Lecture du flux : Chargez un fichier audio ou un flux réseau (via Wi-Fi) dans le buffer. Envoyez les échantillons PCM via la fonction
write()de l'interface I2S. L'ampli convertira automatiquement le signal numérique en puissance analogique.
Vérification
Alimentez le système. Vous devriez entendre un léger bruit de fond (25µV RMS) si aucun signal n'est envoyé. Lancez la lecture audio. Vérifiez que le son sort bien des deux haut-parleurs sans distorsion excessive. Si le son est saturé, réduisez le volume logiciel ou vérifiez que le gain matériel (jumpers) n'est pas réglé trop haut (commencez à 9dB).
Pour aller plus loin
Ajoutez une fonctionnalité de contrôle de volume via une interface web (WebServer ESP32) ou un potentiomètre numérique. Vous pouvez également explorer la lecture de fichiers FLAC pour une qualité audio supérieure, en gérant le décodage côté microcontrôleur avant l'envoi I2S.
Autres tutoriels pour cette carte
- Premier branchement de l'amplificateur I2S Adafruit
- Connexions I/O de base pour l'amplificateur I2S
- Amplificateur I2S avec ESP32 pour audio stéréo
- Premier branchement de l'ampli I2S MAX98357A
- Intégration GPIO et Entrées/Sorties avec l'Ampli I2S MAX98357A
- Amplificateur I2S MAX98357A : Branchement et Mise en Route