🛠 Reflasher le CC1352P7 en BSL depuis le processeur hôte
Objetivos
El módulo de radio del BeaglePlay es un TI CC1352P7 que gestiona 802.15.4 y BLE. Su firmware de fábrica no siempre es el deseado; este tutorial muestra cómo volver a flashearlo mediante BSL (BootLoader Serie) directamente desde el Linux del BeaglePlay, sin JTAG, utilizando el script cc2538-bsl.py y el firmware wpanusb del repositorio build/play del proyecto BeagleBoard. También se aplica el overlay k3-am625-beagleplay-bcfserial-no-firmware.dtbo para que el kernel ya no intente cargar un firmware inexistente en la línea serie del módulo.
Material
- Una tarjeta BeaglePlay (eMMC o SD, acceso root)
- La línea serie interna del CC1352P7 expuesta en modo BSL (arranque forzado mediante la línea de reset)
- El repositorio
build/play(scripts cc2538-bsl.py, bcfserial, wpanusb)
Código completo
# 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
Verificación esperada
cc2538-bsl.py muestra el chip detectado (CC1352P7), el borrado, la escritura y la verificación del .hex sin errores. Tras reiniciar y ejecutar modprobe wpanusb, ip link hace aparecer una interfaz wpan0; dmesg | grep -i wpan confirma la enumeración del dispositivo. El registro del kernel ya no muestra intentos fallidos de carga del firmware bcfserial.
Errores frecuentes
- Olvidar el overlay no-firmware: el driver bcfserial solicita un firmware, hace que el módulo entre en bucle y ocupa la línea serie del BSL.
- Puerto serie incorrecto: la línea BSL no es la del Bluetooth; identifique el ttyS correcto con el esquema y
dmesg. - Alimentar la tarjeta con un simple cargador durante el flasheo: un corte a mitad de la escritura deja el CC1352P7 sin un bootloader válido.
- Utilizar un .hex compilado para CC1352 (sin P7): el BSL verifica el modelo y lo rechaza.
- Dejar activo el overlay bcfserial: bcfserial y wpanusb son controladores exclusivos del mismo hardware.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash