🛠 Reflasher le CC1352P7 en BSL depuis le processeur hôte
Objectifs
Le module radio du BeaglePlay est un TI CC1352P7 gérant 802.15.4 et BLE. Son firmware d'usine n'est pas toujours celui voulu ; ce tutoriel montre comment le reflasher par BSL (BootLoader Série) directement depuis le Linux du BeaglePlay, sans JTAG, en utilisant le script cc2538-bsl.py et le firmware wpanusb du dépôt build/play du projet BeagleBoard. On applique aussi l'overlay k3-am625-beagleplay-bcfserial-no-firmware.dtbo pour que le noyau n'essaie plus de charger un firmware inexistant sur la ligne série du module.
Matériel
- Une carte BeaglePlay (eMMC ou SD, accès root)
- La ligne série interne du CC1352P7 exposée en mode BSL (boot forcé par la ligne de reset)
- Le dépôt
build/play(scripts cc2538-bsl.py, bcfserial, wpanusb)
Code complet
# 1. Empêcher le noyau de charger un firmware sur la ligne du module
# dans /boot/firmware/extlinux/extlinux.conf, ajouter :
# fdtoverlays /overlays/k3-am625-beagleplay-bcfserial-no-firmware.dtbo
sudo reboot
# 2. Récupérer les outils
git clone https://github.com/beagleboard/build.play /opt/build.play
cd /opt/build.play
# 3. Passer le CC1352P7 en BSL puis flasher le firmware wpanusb
sudo python3 cc2538-bsl.py -p /dev/ttyS2 -e -w -v -a 0x0 firmware/wpanusb_cc1352p7.hex
sudo reboot
# 4. Le module devient un périphérique série interne : créer wpan0
sudo modprobe wpanusb
Vérification attendue
cc2538-bsl.py affiche la puce détectée (CC1352P7), l'effacement, l'écriture et la vérification du .hex sans erreur. Après reboot et modprobe wpanusb, ip link fait apparaître une interface wpan0 ; dmesg | grep -i wpan confirme l'énumération du périphérique. Le log du noyau ne montre plus de tentative de chargement de firmware bcfserial échouée.
Erreurs fréquentes
- Oublier l'overlay no-firmware : le driver bcfserial réclame un firmware, fait boucler le module et occupe la ligne série du BSL.
- Mauvais port série : la ligne BSL n'est pas celle du Bluetooth ; identifier le bon ttyS avec le schéma et
dmesg. - Alimenter la carte par un simple chargeur pendant le flash : une coupure à mi-écriture laisse le CC1352P7 sans bootloader valide.
- Utiliser un .hex compilé pour CC1352 (sans P7) : le BSL vérifie le modèle et refuse.
- Laisser l'overlay bcfserial actif : bcfserial et wpanusb sont des pilotes exclusifs du même matériel.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash