🛠 Son sur CM4 : DAC I2S/PCM (PCM5102) sans prise jack
Objectifs
Le CM4 n'a aucune prise audio (ni ADC/DAC embarqués), mais expose une interface PCM (I2S) sur ses broches. Ce tuto branche un DAC I2S économique (PCM5102) sur l'empreinte HAT de l'IO Board et configure la carte comme sortie audio par défaut via un overlay device tree — la voie standard sur tout l'écosystème BCM2711.
Matériel
- 1 × CM4 sur IO Board, Raspberry Pi OS 64 bits démarré
- 1 × DAC I2S PCM5102 (module « I2S stereo DAC » à ~5 €), alimenté en 5 V
- Cablage HAT : GPIO18=SCLK (bit clock), GPIO19=LRCLK (word clock), GPIO21=BCLK/DIN (données), 5 V et GND — vérifier le brochage exact du module (certains inversent BCLK/LRCLK)
- Enceinte amplifiée ou casque sur la sortie du DAC
Code complet
# 1) Activer I2S et charger le driver du DAC
sudo raspi-config nonint do_i2s 0 # active device tree I2S
{ echo 'dtparam=i2s=on'; echo 'dtoverlay=hifiberry-dac'; } | sudo tee -a /boot/firmware/config.txt
sudo reboot
# 2) Vérifier la carte audio
aplay -l # attendu : snd_rpi_hifiberry_dac
cat /proc/asound/cards
# 3) En faire la sortie par défaut
cat > /etc/asound.conf <<'EOF'
pcm.!default {
type plug
slave.pcm "hw:1,0"}
EOF
# 4) Test sonore
speaker-test -D plughw:1,0 -c 2 -t sin -f 440 --duration 3
Vérification attendue
aplay -l liste snd_rpi_hifiberry_dac ; speaker-test produit un 440 Hz net dans l'enceinte ; un fichier wav se lit avec aplay musique.wav sans option. dmesg | grep -i hifiberry ne montre pas d'erreur de sonde.
Erreurs fréquentes
- Chercher la prise jack du Pi 4B : le CM4 ne l'a pas ; sans DAC externe,
aplay -ln'affiche que HDMI — c'est normal. - SCLK/LRCLK/DIN inversés : le symptôme classique est un silence total ou un grésillement mono ; permuter LRCLK et BCLK sur le module DAC.
- Overlay absent : sans
dtoverlay=hifiberry-dac, le bus I2S tourne à vide et aucune carte ALSA n'apparaît. - Alimenter le DAC en 3,3 V alors qu'il demande 5 V : volume inaudible ou distordu ; vérifier le brochage du module acheté.
Autres tutoriels pour cette carte
- Premier démarrage d'un CM4 Lite depuis la microSD de l'IO Board
- GPIO du CM4 : comprendre les banks 1,8 V / 3,3 V avant de câbler
- Basculer le Wi-Fi du CM4 sur l'antenne externe U.FL (dtparam=ant2)
- Bootloader EEPROM du CM4 : maîtriser BOOT_ORDER via usbboot
- Ajouter une RTC au CM4 (PCF8523 sur I2C1 via dt-blob)
- Horodatage industriel : PTP IEEE 1588 sur le PHY Ethernet du CM4
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash