Académique Documents
Professionnel Documents
Culture Documents
L’objectif de ce guide est de faciliter les premiers pas dans la programmation des cartes
STM32F746NG de travaux pratiques de l’ENS avec CubeIDE et d’en découvrir quelques
fonctionnalités (CubeMX et débogage notamment).
Deux versions de la cartes sont utilisées pour les TPs et projets d’informatique
embarquée :
• La version 1 dispose d’une connexion DB9 pour le bus CAN et d’une connexion
pour une extension LIN. Elle est adaptée aux TPs de réseaux embarqués pour
l’automobile.
Le schéma des cartes d’extension est donné en annexe ou en pièce jointe. Le schéma de
la carte de développement STM32F746NG DISCOVERY est disponible sur le site ST.com.
1. Installation de STM32CubeIDE
Broche Configuration
Entrées analogiques
Prise BNC X1 ou joystick Gauche/Droite PF10 ADC3 Canal 8
Prise BNC X2 ou joystick Haut/Bas PA0 ADC1 Canal 0
Potentiomètre POTG ou connecteur CAPTG PF9 ADC3 Canal 7
Potentiomètre POTD ou connecteur CAPTD PF8 ADC3 Canal 6
Sortie analogique
Prise BNC X3 et ampli audio + HP PA4 DAC canal 1
Connecteur UART
TX PF7 UART7 TX
RX PF6 UART7 RX
Connecteur SPI
SCK PI1 SPI2 SCK
MISO PB14 SPI2 MISO
MOSI PB15 SPI2 MOSI
NSS PI0 SPI2 NSS
Module Bluetooth
RX_Bluetooth PC6 UART6 TX
TX_Bluetooth PC7 UART6 RX
Pour simplifier le code généré, USB et Ethernet, dans Computing CRC (calcul de code de
vérification pour l’Ethernet notamment) et le Middleware FATFS (gestion des systèmes de
fichier des cartes SD), ainsi que FreeRTOS ont été désactivés.
Figure 7: Inclusion des fichiers header des configurations de chacun des périphériques
Configuration FreeRTOS
Programme
utilisateur, à modifier
Noter qu’il est possible de faire des modifications dans CubeMx en cours de
développement, à condition de respecter la structure du code générée, c’est-à-dire en
n’écrivant du code qu’entre des balises USER :
Début du main
Les fonctions d’utilisation des entrées/sorties Tout Ou Rien sont définies dans le fichier
stm32f7xx_hal_gpio.c.
Exemple :
HAL_GPIO_WritePin(LED_2_GPIO_Port, LED_2_Pin, HAL_GPIO_ReadPin(BP_1_GPIO_Port, BP_1_Pin));
Pour accéder au fonctions associées à un périphérique, le plus simple est de demander
par un clic droit sur la définition d’une des fonctions utilisées dans l’initialisation du main.
La description détaillée des fonctions HAL sont dans le fichier
stm32f7_description_library_HAL_et_LL.pdf déposé sur ecampus.
ST propose également dans le Board Support Package (BSP), une bibliothèque plus
simple utilisant le périphérique ltdc du microcontrôleur et la SDRAM. Pour ne pas
encombrer le projet, on se imite aux fichiers du BSP nécessaires au LCD. La bibliothèque
lcd est incluse dans le programme de démo. Elle utilise 5 fichiers copiés dans les dossier
src (pour les .c) et inc (pour les .h) dans :
• stm32746g_discovery.h
• stm32746g_discovery_lcd.c
• stm32746g_discovery_lcd.h
• stm32746g_discovery_sdram.c
• stm32746g_discovery_sdram.h
Est également ajouté le fichier de description de l’écran externe :
• rk043fn48h.h
Enfin, les fonctions LCD font appel à un ensemble simplifié de police de caractères
disponibles dans le dossier Fonts du projet.
Mieux encore, sur les microcontrôleurs ARM autres que M0, il est possible de surveiller
plusieurs variables, à un débit bien supérieur, avec le mode Serial Wire Viewer,
configurable depuis le menu Run > Debug Cnfiguration.
Les différentes fenêtres de visualisation des variables sont accessibles par le menu
Window > Show View > SWV
En mode Halt, l’outil de réglage permet de choisir les variables supervisées.
Figure 17: Fenêtre de choix des variables et fonctionnalités à superviser par SWV
Les différents outils SWV permettent alors d’obtenir les valeurs ou le tracé de variables :
A noter, le fonctionnement du mode pas à pas sur les Cortex M7 est délicat. Il est souvent
plus simple de fonctionner uniquement avec des points d’arrêt.
ST fournit une documentation des bibliothèques HAL (déposée sur ecampus sous le
nom stm32f7_description_library_HAL_et_LL.pdf), et beaucoup d’exemples
d’accompagnement et bibliothèques complémentaires, disponibles dans un package
STM32Cube_FW_F7_V1.17.0 déposé automatiquement dans le dossier
STM32Cube/Repository du dossier User.
5. Travail à faire
6. Documents utiles
Sur ecampus se trouve une sélection de documents utiles pour la programmation des
microcontrôleurs STM32F746 :
• Le manuel de la carte de développement : Disco_F746_User_manual.pdf
• Le schéma de l’extension : schema_extension_746NG_v2.pdf
• La datasheet du microcontrôleur : stm32f746ng_datasheet.pdf
• La description des bibliothèques HAL : stm32f7_description_library_HAL_et_LL.pdf
• La description du contenu du package STM32F7 (contenu des exemples,
bibliothèques...) : stm32cube-mcu-package-examples-for-stm32f7.pdf
Potentiomètre relié Leds reliées aux broches Connecteur Connecteur bus CAN,
à la broche PA_0 PI_1, PB_14, PB_15 pour relié aux broches :
télémètre IR PB_8 (CAN_Rx)
Potentiomètre relié Boutons reliés aux broches
PG_6, PB_4, PG_7 relié à la PB_9 (CAN_Tx)
à la broche PF_10
broche PF_9 Au choix avec I2C
Connecteur pour servo- Connecteur pour carte
moteur numérique AX12 Connecteur I2C moteur :
PC_6 (serial6_Tx) SCL sur PB_8 2 pwm PA_8, PA_15
PC_7 (serial6_Rx) SDA sur PB_9 2 sorties TOR PI_2, PI_3
choix avec CAN
Broches du microcontrôleur
Gris : libre
Vert : utilisé par un périphérique
Jaune : utilisé par le système (reset, BOR...)
Jaune clair : alimentations
7. Evaluation
Validation du TP STM32
Pour valider votre TP STM32, il faut faire une application originale (c'est-à-dire différente
de celle de démo et de celle de vos camarades) utilisant au moins :
Une entrée TOR
Une sortie TOR
Une entrée analogique
L'affichage sur l'écran avec de jolies couleurs
L’utilisation d’un fichier image (voir document II2_FreeRTOS_Affichage_de_bmp sur
ecampus)
La dalle tactile
La liaison série avec le PC ou avec un autre micro
L'affichage de l'heure RTC
L’application sera présentée en fin de TP.