Middlewares STM32

FatFS

Généralités

Implantation sur carte SD

Nivellement d’usure (→ wear leveling)

Ci-dessous quelques références sur des solutions techniques au problème du nombre restreint de cycles d’écriture sur les mémoires flash :

USB

Généralités

USB host

USB Device

  • Management of VBUS sensing for USB device design link

    → article de la base de connaissances de la communauté ST qui décrit comment concevoir la structure de détection de VBUS sur un device USB pour savoir lorsqu’il est relié à un host. IMPORTANT pour la partie EC

USB Device MSC SD Card reader

Procédure

CubeMX
  • configurer une des broches GPIO disponibles en “GPIO_Input” et la nommer, par exemple, “SD_DETECT”. Cette broche sera utilisée pour indiquer si une carte SD est présente dans le lecteur

  • Middleware  FatFS  Mode : cocher “SD Card”

    Dans le panneau “Platform Settings” de la configuration, sélectionner la broche “SD_DETECT” pour le paramètre “Detect_SDIO”

  • System Core  RCC : Sélectionner “BYPASS Clock Source” pour le paramètre “High Speed Clock (HSE)” et “Crystal/Ceramic Resonator” pour le paramètre “Low Speed Clock (LSE)”

  • Connectivity  USB_OTG_FS  Mode : “Device Only”.

    Configuration de base dans le panneau de configuration

  • Middleware  USB_DEVICE  Class for FS IP : “Mass Storage Class”

    Configuration de base dans le panneau de configuration

  • Lancer la résolution automatique de conflit dans le panneau de configuration des horloges

    (l’USB nécessite une horloge précise de 48MHz)

FreeRTOS

  • Sur les micro-contrôleurs de la série Cortex-M (ex. : STM32F4, STM32U5) , la version de l’API à utiliser dans les middlewares de CubeIDE est “CMSIS_V1”.

Généralités

Prise en charge des modes de veille

  • STM32 RTC Scheduler link

    → implémentation sur un STM32L4 d’un ordonnanceur basé sur FreeRTOS et sur la RTC d’un STM32 pour permettre de planifier et d’exécuter des tâches récurrentes et périodiques tout en minimisant la consommation d’énergie pour maximiser la durée de vie de la batterie.

    Exemple de mise en oeuvre à étudier particulièrement car sûrement adapté à note situation.

  • STM32 deepsleep modes (STOP\

    → article comment utiliser un “_hook_” de FreeRTOS pour synchroniser des ta^ches avant de passer en mode basse consommation

🞄  🞄  🞄