🛠 Audio sur le Dock : enregistrer au micro numérique et jouer sur le haut-parleur 3 W
Objectifs
Le Dock embarque tout pour l'audio : un amplificateur de haut-parleur 3 W (pour HP 4 Ω) avec connecteur, un microphone électret analogique, et surtout une interface micro numérique DMIC 2 canaux (PDM, broches PB11 pour les données et PE17 pour l'horloge) déclarée dans le device tree mainline sous la carte son simple-audio-card « DMIC ». Ce tutoriel : découvrir ALSA sur la carte, enregistrer 5 secondes des micros numériques, les rejouer sur le haut-parleur, et régler les niveaux avec alsamixer. C'est la porte d'entrée des projets voix (le connecteur FPC 30 broches pour le réseau de 6 micros R6 est l'étape suivante).
Matériel
- Lichee RV Dock sous image mainline (Buildroot sipeed_lichee_rv_dock ou Ubuntu 24.04 RISC-V) avec ALSA (
arecord/aplaydu paquet alsa-utils) - Haut-parleur 4 Ω 3 W branché sur le connecteur HP du Dock (le schéma Sipeed montre l'ampli embarqué)
- Aucune autre installation si l'image est complète ; sinon
apt install alsa-utils
Code complet
# 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 -
Vérification attendue
/proc/asound/cards affiche la carte DMIC (le nœud dmic-sound du device tree du Dock). Après avoir parlé fort pendant les 5 s, dmic.wav pèse ~320 Ko (2 ch × 16 kHz × 16 bits × 5 s) et aplay le rejoue distinctement dans le haut-parleur 3 W. Sur le waveform (enregistrer en regardant arecord -V stereo), les deux canaux du DMIC bougent. Si le son est inaudible, c'est presque toujours un niveau HP au minimum dans alsamixer.
Erreurs fréquentes
- Oublier l'ampli : le signal de sortie est sur la voie casque/ampli du codec ; un niveau « Headphone » à 0 dans alsamixer donne zéro son même si aplay tourne.
- Mauvais numéro de carte :
hw:0,0suppose que le DMIC est carte 0 ; vérifier avecarecord -let utiliser le numéro vu (le vendor Tina expose d'autres noms). - Enregistrer en 44,1 kHz mono « par habitude Raspberry Pi » : le DMIC du D1 est un périphérique PDM stéréo typé 16 kHz ; un mauvais format donne du bruit ou une erreur.
- Haut-parleur 8 Ω ou non connecté : l'ampli est prévu pour 4 Ω 3 W ; sans HP sur le connecteur, rien ne sort (pas de HP buzzer intégré).
- Tina Linux n'expose pas la carte « DMIC » avec ces noms : ces commandes visent les images mainline.
Autres tutoriels pour cette carte
- 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)
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash