🛠 Audio Shield SGTL5000 : boucle stéréo 44,1 kHz et outil de conception graphique

Teensy 3.2 · intermediaire · Schéma : IMG-teensy-32-intermediaire-4-teensy32-audio-shield-boucle.svg — Teensy 3.2 empilée sous un Audio Adapter (shield SGTL5000) : prises casque/ligne/micro à gauche, emplacement carte SD à droite, nappe de broches entre les deux ; flèches vers les broches 11, 9, 23, 22, 13, 18/19 et capture de l'outil de conception audio (boîtes reliées par des câbles).

Objectifs

Entrer dans le monde pour lequel la Teensy 3.2 est célèbre : la Teensy Audio Library, qui fait du streaming stéréo 16 bits / 44,1 kHz (lecture polyphonique, synthèse, effets, analyse FFT, routage flexible) en exploitant les instructions DSP du Cortex-M4. Vous monterez l'Audio Adapter (ou « Audio Shield ») PJRC avec son codeur SGTL5000, ferez une boucle stéréo entrée → sortie, puis découvrirez l'Audio System Design Tool graphique qui exporte le code C++ à votre place.

Matériel

Brochage I2S (Teensy 3.x)

Le shield utilise les broches : 11 (MCLK), 9 (BCLK), 23 (LRCLK), 22 (DOUT → shield), 13 (DIN ← shield), 18/19 (SDA/SCL pour configurer le SGTL5000 en I2C). La Teensy 3.2 possède aussi son propre DAC 12 bits (A14, mono) et ses entrées ADC pour travailler sans shield.

Code complet

Structure identique à celle générée par l'outil de conception (objets documentés sur la page de la bibliothèque Audio) :

#include <Audio.h>
#include <Wire.h>      // SGTL5000 configure en I2C (broches 18/19)
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

AudioInputI2S        i2sIn;     // entrée stereo (line-in ou mic du shield)
AudioOutputI2S       i2sOut;    // sortie stereo (casque / line-out)
AudioConnection      patchCord1(i2sIn, 0, i2sOut, 0); // gauche -> gauche
AudioConnection      patchCord2(i2sIn, 1, i2sOut, 1); // droite -> droite
AudioControlSGTL5000 sgtl5000;

void setup {
  Audio.memory(16);          // 16 blocs memoire audio (~16 ko)
  sgtl5000.enable;         // alimente le codeur
  sgtl5000.volume(0.5);      // niveau de sortie casque
  // Le flux audio tourne en 44,1 kHz / 16 bits pendant que votre code tourne
}

void loop {
  // Des objets DSP (effets, mixeurs, FFT...) s'insèrent entre i2sIn et
  // i2sOut sans toucher au matériel I2S.
}

L'outil de conception graphique

<https://www.pjrc.com/teensy/gui/> : vous reliez des boîtes (entrées, sorties, délais, réverb, mixeurs, analyseurs FFT…) comme sur une patchbay, et l'outil exporte le code C++ complet à coller dans l'IDE. La série de tutoriels vidéo officielle est livrée en exemples : File > Examples > Audio > Tutorial. Deux Audio Shields sur une même Teensy 3.x donnent du 4 entrées / 4 sorties (quad), avec le câblage publié par SparkFun.

Vérification attendue

Casque sur le shield, source sur line-in : le son sort en stéréo, sans latence perceptible, pendant que loop ne fait rien — le flux est piloté par les interruptions et le DMA. Montez le volume progressivement (0.5 = moitié) pour ne pas agresser vos oreilles. Coupez l'entrée : le silence doit être propre ; un ronflement/bruit de fond signale des fils I2S trop longs ou une masse bâclée.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels