🛠 DSP audio temps réel sur le Teensy 4.1 : bibliothèque Audio, I2S/TDM, S/PDIF et MQS
Objetivos
El ecosistema de audio es la especialidad del Teensy: la biblioteca Audio streams de 16 bits / 44,1 kHz multicanal, que aprovecha las instrucciones DSP del Cortex-M7, se programa gráficamente con el Audio System Design Tool (arrastrar y soltar objetos: osciladores, filtros, efectos, mezcladores) y genera el código C++ correspondiente. El 4.1 amplía esta ventaja: 2 puertos I2S/TDM (hasta 8 canales I2S / 16 TDM por puerto), una entrada y una salida S/PDIF independientes, y la salida MQS para un pequeño altavoz.
Material
- 1 Teensy 4.1 + cable micro-USB de datos
- El Audio Shield oficial (cubre los puertos I2S) para la entrada/salida analógica estéreo
- Sin shield: el pin MQS conecta directamente a un pequeño altavoz; un kit PT8211 ofrece una salida DAC simple
Puntos clave
- El tutorial oficial se ejecuta en el IDE: File > Examples > Audio > Tutorial — síguelo en orden.
- La herramienta gráfica (https://www.pjrc.com/teensy/gui/) genera la configuración de los objetos y canales; el código producido se compila como un sketch ordinario.
- El M7 a 600 MHz con sus extensiones DSP y su FPU de hardware (precisión simple Y doble) ejecuta cadenas completas de filtros en tiempo real.
- Los canales QuadTimer4 están reservados por la temporización ADC de la biblioteca Audio: no los uses para tu PWM.
- No hay DAC interno en el 4.1 (a diferencia de los 3.5/3.6): toda salida analógica pasa por I2S (shield), MQS o PT8211.
Procedimiento
- Abre la herramienta de diseño Audio, coloca un objeto Waveform (seno 440 Hz), un objeto Output (I2S), conéctalos y exporta.
- Pega el código generado en un sketch, selecciona Tools > Board > Teensy 4.1 y carga el programa.
- Escucha en el Audio Shield (salida de auriculares) o el altavoz MQS.
- Enriquece: filtro biquad, reverberación de retardo, mezcla multi-objeto — la herramienta muestra el presupuesto de CPU consumido.
Verificación esperada
Un 440 Hz limpio sale por la salida elegida, sin artefactos audibles a pesar de los filtros añadidos: el presupuesto de CPU mostrado por la herramienta permanece muy bajo en el M7 a 600 MHz. Conectando la entrada de línea a un micrófono, puedes encadenar filtro + delay y escuchar el efecto en directo.
Errores frecuentes
- Buscar
analogWritepara la salida de audio: el 4.1 no tiene DAC; solo MQS o I2S. - Apilar el Audio Shield (diseñado para los puertos de los Teensy 3.x/4.0) sin leer las instrucciones de adaptación de pines al formato largo del 4.1.
- Olvidar que S/PDIF es independiente de los puertos I2S: puedes digitalizar en S/PDIF mientras reproduces en I2S, pero debes configurar ambos relojes.
- Sobrecargar un solo puerto I2S: reparte la carga entre los dos puertos (y hasta 16 canales en TDM) antes de saturar.
Otros tutoriales para esta placa
- Premiers pas sur le Teensy 4.1 : Teensyduino, Teensy Loader et premier Blink
- GPIO et PWM sur le Teensy 4.1 : 55 broches en 3,3 V, ni 5 V tolérées ni traîne
- Entrées analogiques du Teensy 4.1 : 18 broches, 2 ADC, 0-3,3 V fixes et zéro DAC
- Logger sur carte SD via le port SDIO natif du Teensy 4.1
- Serveur web embarqué : l'Ethernet natif 10/100 du Teensy 4.1 (DP83825)
- Boîte à rythmes USB MIDI : classes MIDI, MIDIx16 et port hôte USBHost_t36
Ejemplos de código para esta placa
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino