🛠 Audio sur le Dock : enregistrer au micro numérique et jouer sur le haut-parleur 3 W
Objetivos
El Dock incluye todo lo necesario para el audio: un amplificador de altavoz de 3 W (para altavoz de 4 Ω) con conector, un micrófono electret analógico y, sobre todo, una interfaz de micrófono digital DMIC de 2 canales (PDM, pines PB11 para los datos y PE17 para el reloj) declarada en el device tree mainline bajo la tarjeta de sonido simple-audio-card « DMIC ». Este tutorial: descubrir ALSA en la placa, grabar 5 segundos de los micrófonos digitales, reproducirlos en el altavoz y ajustar los niveles con alsamixer. Es la puerta de entrada a los proyectos de voz (el conector FPC de 30 pines para la matriz de 6 micrófonos R6 es el siguiente paso).
Material
- Lichee RV Dock con imagen mainline (Buildroot sipeed_lichee_rv_dock o Ubuntu 24.04 RISC-V) con ALSA (
arecord/aplaydel paquete alsa-utils) - Altavoz de 4 Ω 3 W conectado al conector HP del Dock (el esquema de Sipeed muestra el amplificador integrado)
- Ninguna otra instalación si la imagen está completa; de lo contrario
apt install alsa-utils
Código completo
# 1) Inventaire des cartes et périphériques ALSA
cat /proc/asound/cards # attendre la carte « DMIC » (simple-audio-card)
arecord -l ; aplay -l
# 2) Enregistrement 2 canaux / 16 kHz / 16 bits pendant 5 s depuis le DMIC
arecord -D hw:0,0 -c 2 -r 16000 -f S16_LE -d 5 dmic.wav
# (si « Device or resource busy » : changer de numéro de carte vu à l'étape 1)
# 3) Lecture sur le haut-parleur (ampli 3 W du Dock)
aplay -D default dmic.wav
# 4) Niveaux : mixer en mode texte
alsamixer # F6 : choisir la carte ; monter capture « DMIC » et lecture « HP »
amixer scontrols # liste les contrôles nommés
amixer -c 0 sget 'Headphone',0 # lire un niveau
# 5) Enchaînement micro -> fichier -> haut-parleur en direct (latence élevée)
arecord -D hw:0,0 -c 2 -r 16000 -f S16_LE -t raw | aplay -D default -c 2 -r 16000 -f S16_LE -
Verificación esperada
/proc/asound/cards muestra la tarjeta DMIC (el nodo dmic-sound del device tree del Dock). Después de hablar fuerte durante los 5 s, dmic.wav pesa ~320 KB (2 canales × 16 kHz × 16 bits × 5 s) y aplay lo reproduce claramente en el altavoz de 3 W. En la forma de onda (grabar mirando arecord -V stereo), los dos canales del DMIC se mueven. Si el sonido es inaudible, casi siempre es porque el nivel del HP está al mínimo en alsamixer.
Errores frecuentes
- Olvidar el amplificador: la señal de salida está en la vía de auriculares/amplificador del códec; un nivel « Headphone » a 0 en alsamixer produce cero sonido aunque aplay esté funcionando.
- Número de tarjeta incorrecto:
hw:0,0asume que el DMIC es la tarjeta 0; verificar conarecord -ly usar el número visto (el vendor Tina expone otros nombres). - Grabar en 44,1 kHz mono « por costumbre de Raspberry Pi »: el DMIC del D1 es un dispositivo PDM estéreo tipificado a 16 kHz; un formato incorrecto produce ruido o un error.
- Altavoz de 8 Ω o no conectado: el amplificador está diseñado para 4 Ω 3 W; sin altavoz en el conector, no sale nada (no hay altavoz zumbador integrado).
- Tina Linux no expone la tarjeta « DMIC » con estos nombres: estos comandos están dirigidos a las imágenes mainline.
Otros tutoriales para esta placa
- Premier boot du Lichee RV Dock avec Ubuntu 24.04 RISC-V
- LEDs du Lichee RV Dock : LED verte et RGB WS2812 pilotée par le LEDC du D1
- Wi-Fi et Bluetooth du module RTL8723DS sur le Lichee RV Dock
- GPIO, touche utilisateur ADC et PWM sur le connecteur 2×20 du Lichee RV
- Tina Linux : l'OpenWrt vendor d'Allwinner pour le Lichee RV, installation et sysconfig
- Construire une image mainline complète avec Buildroot (defconfig officiel du Dock)
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash