🛠 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).

Objetivos

Adéntrate en el mundo por el que la Teensy 3.2 es famosa: la Teensy Audio Library, que permite el streaming estéreo de 16 bits / 44,1 kHz (reproducción polifónica, síntesis, efectos, análisis FFT, enrutamiento flexible) aprovechando las instrucciones DSP del Cortex-M4. Montarás el Audio Adapter (o «Audio Shield») de PJRC con su codificador SGTL5000, crearás un bucle estéreo entrada → salida, y descubrirás la Audio System Design Tool gráfica, que exporta el código C++ por ti.

Material

Conector I2S (Teensy 3.x)

El shield utiliza los pines: 11 (MCLK), 9 (BCLK), 23 (LRCLK), 22 (DOUT → shield), 13 (DIN ← shield), 18/19 (SDA/SCL para configurar el SGTL5000 por I2C). La Teensy 3.2 también posee su propio DAC de 12 bits (A14, mono) y sus entradas ADC para trabajar sin shield.

Código completo

Estructura idéntica a la generada por la herramienta de diseño (objetos documentados en la página de la biblioteca 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;     // entree 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 materiel I2S.
}

La herramienta de diseño gráfica

<https://www.pjrc.com/teensy/gui/> : conectas cajas (entradas, salidas, retardos, reverberación, mezcladores, analizadores FFT…) como en una patchbay, y la herramienta exporta el código C++ completo para pegar en el IDE. La serie oficial de tutoriales en vídeo se incluye en los ejemplos: File > Examples > Audio > Tutorial. Dos Audio Shields en una misma Teensy 3.x permiten 4 entradas / 4 salidas (quad), con el cableado publicado por SparkFun.

Verificación esperada

Auriculares en el shield, fuente en line-in: el sonido sale en estéreo, sin latencia perceptible, mientras loop no hace nada — el flujo es gestionado por las interrupciones y el DMA. Sube el volumen progresivamente (0.5 = la mitad) para no dañar tus oídos. Corta la entrada: el silencio debe ser limpio; un zumbido o ruido de fondo indica cables I2S demasiado largos o una masa mal realizada.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales