Mon réseau d’entreprise
26.1 Micropython pour le Discovery IoT
Nous présentons ici comment mettre en place Python pour le discovery IoT. Les instruction pour la mise en place sont sur la page du portage STM32
Le firmware doit être d’abord compilé. Cela sera plus facile sur GNU/Linux, mais ce n’est pas complétement impossible à partir d’un système privatif. Il faut commencer par avoir git sur l’ordinateur pour cloner le dépôt.
Il faut ajouter les outils de développement et de cross compilation.
apt install binutils-arm-none-eabi gcc-arm-none-eabi build-essential
Puis compiler micropython :
cd micropython/ make -C mpy-cross
Puis le support de la carte spécifique :
cd ports/stm32/ make V=1 BOARD=B_L475E_IOT01A
Si tout s’est bien passé, alors le firmware est dans le fichier
arno@averell:~/micropython/ports/stm32$ ls -lh build-B_L475E_IOT01A/firmware.bin -rwxr-xr-x 1 arno arno 324K mai 20 09:40 build-B_L475E_IOT01A/firmware.bin
Il faut flasher le firmware sur la carte en utilisant la commande du paquet stlink-tools.
st-flash write build-B_L475E_IOT01A/firmware.bin 0x08000000 st-flash 1.5.1 2020-05-20T09:14:10 INFO common.c: Loading device parameters.... 2020-05-20T09:14:10 INFO common.c: Device connected is: L4 device, id 0x10076415 2020-05-20T09:14:10 INFO common.c: SRAM size: 0x18000 bytes (96 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 2048 bytes 2020-05-20T09:14:10 INFO common.c: Attempting to write 331264 (0x50e00) bytes to stm32 address: 134217728 (0x8000000) Flash page at addr: 0x08050800 erasedEraseFlash - Page:0xa1 Size:0x800 2020-05-20T09:14:14 INFO common.c: Finished erasing 162 pages of 2048 (0x800) bytes 2020-05-20T09:14:14 INFO common.c: Starting Flash write for F2/F4/L4 2020-05-20T09:14:14 INFO flash_loader.c: Successfully loaded flash loader in sram size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 3584 2020-05-20T09:14:21 INFO common.c: Starting verification of write complete 2020-05-20T09:14:24 INFO common.c: Flash written and verified! jolly good!
Il est alors possible de se connecter sur la carte par une connexion série, par exemple en utilisant le câble USB. Le périphérique devrait être créé. Les paramètres de connexion pour minicom sont 115200 8N1. Un reset de la carte permet d’afficher la version de micro python.
minicom -D /dev/ttyACM0 Bienvenue avec minicom 2.7.1 OPTIONS: I18n Compilé le May 6 2018, 08:02:47. Port /dev/ttyACM0, 23:08:24 Tapez CTRL-A Z pour voir l'aide concernant les touches spéciales roPython v1.12-464-gcae77daf0 on 2020-05-19; B-L475E-IOT01A with STM32L475 Type "help()" for more information. >>> MicroPython v1.12-464-gcae77daf0 on 2020-05-19; B-L475E-IOT01A with STM32L45 Type "help()" for more information. >>>
pour faire clignoter la LED :
>>> from pyb import LED
>>> led=LED(1)
>>> led.toggle()