Sur le Raspberry Pi 5, le pilote w1-gpio a besoin de précisions sur la manière de gérer la broche, car le RP1 est plus sensible que les anciens SoC.
Modifiez votre fichier /boot/firmware/config.txt pour remplacer votre ligne actuelle par celle-ci :
1 2
| # On force l'utilisation de la broche 4 et on active le pull-up externe (si présent)
dtoverlay=w1-gpio,gpiopin=4,pullup=on |
Il arrive que sur les versions Debian pures (comme votre Trixie), les modules spécifiques au thermomètre ne soient pas chargés automatiquement au démarrage malgré l'overlay.
Tapez ces commandes pour forcer le chargement des pilotes de famille :
1 2
| sudo modprobe w1-gpio
sudo modprobe w1-therm |
Ensuite, regardez à nouveau dmesg | grep -i w1
Sur le Pi 3, le processeur gérait lui-même les timings très serrés du protocole 1-Wire. Sur le Pi 5, le processeur doit passer par le bus PCIe pour dire à la puce RP1 de changer l'état de la broche. Ce petit délai supplémentaire rend le protocole très sensible à la qualité du signal électrique (d'où l'importance de la résistance de pull-up).
---------
Le Raspberry Pi 5 a une impédance d'entrée différente du Pi 3.
Vérification de la résistance : Le montage classique utilise une résistance de 4.7 kΩ entre le 3.3V et le signal (Data).
Le conseil : Si avec 4.7 kΩ cela ne fonctionne toujours pas (ID en 00.000...), essayez de doubler la résistance en mettant une deuxième résistance de 4.7 kΩ en parallèle. Cela aide le signal à remonter à 3.3V plus rapidement, compensant la capacité parasite plus élevée du contrôleur RP1.
EDIT: J'ai vu aussi cela sur https://forums.raspberrypi.com/viewtopic.php?t=366748
Éditer le fichier de paramètres de démarrage.
sudo nano /boot/firmware/cmdline.txt
Ajouter pcie_aspm=off à la fin de la ligne existante. Ne pas créer de nouvelle ligne.
Cette directive empêche le lien entre le CPU et le RP1 de s'endormir, garantissant que les commandes de lecture du capteur ne sont pas retardées par le réveil du bus.
Partager