En conclusion d’un précédent article [1] j’invitais le lecteur aventureux à tenter l’expérience consistant à créer un périphérique USB de type Vendor Class sur microcontrôleur STM32, comme nous l’avions fait sur ESP32S2, sur Raspberry Pi Pico, sur Cypress/Infineon FX2LP, sur une paire de SBC et même sur un latptop Lenovo ThinkPad. Ma curiosité étant ce qu’elle est, force est de constater que le simple fait d’avoir soulevé la question m’aura suffi à devoir jeter un œil à la problématique...
Précisons de suite que ce qui suit ne sera pas une redite de ce qui a été détaillé précédemment, et ce, pour une raison très simple : il n’y a pas grand-chose à dire, car implémenter notre périphérique de démonstration sur STM32 est, d’un point de vue du code lui-même, à 95 % ce que nous avons déjà fait sur Raspberry Pi Pico dans le numéro 56 [2]. En effet, qu’il s’agisse de RP2040, d’ESP32 ou de STM32, la pierre angulaire est la pile TinyUSB [3] et les différences entre plateformes supportées se résument majoritairement au niveau d’intégration dans le SDK associé. Or, Pico SDK et les bibliothèques pour STM32 (HAL et CMSIS), à la différence de l’ESP-IDF, se limitent majoritairement à traiter TinyUSB comme une pièce rapportée plus que comme un élément faisant partie intégrante de l’environnement. Le support TinyUSB pour les MCU Espressif est un fork du projet officiel, complété d’un module ajoutant des fonctionnalités et limitant grandement la quantité de code…
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première