Prise en main

Le matériel

  • une carte ratbot_controller, seule sur la table ou montée dans un robot ;

  • son alimentation : la batterie du robot, ou une alimentation de laboratoire réglée sur la tension de la batterie ;

  • une sonde ST-LINK (STLINK-V3 ou équivalent), reliée au connecteur SWD de la carte ;

  • un ordinateur sous Linux, avec STM32CubeIDE.

Avertissement

Si la carte est dans un robot, ses roues doivent pouvoir tourner librement (robot posé sur une cale) : un programme de TP ne contient aucune des sécurités du firmware RatBot.

Le microcontrôleur

La carte porte un STM32H750VBT6 : un cœur Cortex-M7 en boîtier LQFP100. Sa mémoire flash interne est petite, 128 Kio. C’est là que vont les programmes des TP de la première partie, comme dans tout projet STM32CubeIDE.

Au démarrage, sans réglage particulier, le microcontrôleur fonctionne sur son oscillateur interne HSI à 64 MHz. Les TP de la première partie gardent cette horloge : aucun réglage d’horloge n’est nécessaire.

Installer STM32CubeIDE

STM32CubeIDE réunit trois outils : CubeMX, qui configure les broches et les périphériques puis génère le code d’initialisation ; un éditeur et compilateur C ; et le débogueur, qui programme la carte par la sonde ST-LINK.

Le télécharger sur le site de ST (un compte gratuit est nécessaire), puis l’installer en suivant ses instructions. Au premier lancement, il télécharge le paquet de support des STM32H7 : prévoir un accès à Internet.

Remettre la carte en état RatBot

Un programme de TP s’écrit au début de la flash interne, à la place du chargeur d’amorçage (bootloader) de RatBot. Après un TP, la carte ne démarre donc plus le firmware du robot, même s’il est toujours présent dans la mémoire flash externe. Pour la remettre en état, depuis la racine du dépôt RatBot, sonde branchée :

# 1. le chargeur d'amorçage, dans la flash interne
make -C firmware/ratbot_bootloader flash

# 2. le firmware du robot, dans la flash externe (QSPI)
STM32_Programmer_CLI -c port=SWD mode=UR \
  -el <chemin>/STM32H7xx_W25Q128_WeActStudio.stldr \
  -d firmware/ratbot_firmware_card/build/uROSProjet.bin 0x90000000 -v

# 3. redémarrer la carte
STM32_Programmer_CLI -c port=SWD mode=HOTPLUG -rst

L’étape 2 n’est utile que si la flash externe a été effacée ou réécrite : un TP de la première partie n’y touche pas ; ceux qui programment la flash externe (partie 2, TP 7 et 8, et partie 3) la remplacent. Le fichier .stldr et le détail de la procédure sont dans la documentation développeur (page Bootloader).

Avertissement

Toujours finir par -rst, jamais -hardRst : ce dernier laisse la flash externe dans un état que le chargeur d’amorçage ne sait pas reprendre.