STM32 Discovery & Nucleo

Les cartes STM32 sont des cartes d'évaluation peu onéreuses des microcontrôleurs STM32 (ARM7 M3 Cortex).

STM32VL-Discovery
La carte STM32VL-Discovery est construite autour d'un microcontrôleur STM32F100RB disposant de 128 KB Flash, 8 KB RAM et de broches (pin) pour les 64 I/Os QFP permettant de réaliser des montants rapides semblables à celui de l'Arduino. Elle est alimentable en 3.3V ou 5V (notanment par le lien USB STLink).

STM32L-DISCOVERY
Le nouveau modèle (STM32L-DISCOVERY) (ultra-low power STM32L152RBT6) dispose en plus d'un mini afficheur LCD détachable (occupant 28 IO), un potentiomètre tactile (prenant 3 IO) et la mesure du courant consommé (prenant 3 IO). Le processeur offre a 12-bit ADC, 2 DACs and 2 ultralow power comparators, 6 general-purpose 16-bit timers and 2 basic timers, a RTC, advanced communication interfaces (up to two I2Cs and SPIs, three USARTs and a USB), a LCD controller and a temperature sensor.

STM32F4-DISCOVERY
La carte STM32F4-DISCOVERY est doté de 1 MB Flash et 192 KB RAM. , Il est doté de 2 MEMS 3g digital accelerometer LIS302DL et MP45DT02 omni-directional digital microphone et d'un audio DAC CS43L22 avec une prise jack 3,5 mm.

STLink
Le chargement (ie flashage) et le déboggage du programme sur la carte se fait au moyen du lien USB STLINK (connecteur USB). Un fois le programme installé, ce lien est déconnectable du reste de la carte par des cavaliers. Le lien ST-Link ne peut cependant pas être utilisé comme lien série pour que le programme flashé puisse échanger des données avec l'hôte (comme dans le cas de l'Arduino qui possède un convertisseu r USB Serial). Attention, il y a 2 versions de STLink.

Environnement de développement
Une liste assez complète des outils disponibles pour cette carte

STM32 ST-LINK Utility
Utilitaire (GUI et Command Line Interface) sous Windows pour utiliser le STLink avec les STM8 et STM32.
 * manuel

Attolic Studio
Attolic TrueStudio est un IDE Eclipse pour le développement ARM et le chargement et débuggage au travers du STLINK. Une version non payante et limité est disponible pour développer/débugger avec le STM32.
 * Getting start with Attolic TrueStudio

Mentor Code Sourcery

 * https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/setting-up-eclipse-for-stm32-discovery-development

Arduino IDE

 * https://github.com/mlu/arduino-stm32

Utilisation sous Linux
Le STM32VL-Discovery n'est pas prévu d'origine pour fonctionner sous Linux ou Mac-os-x, néanmoins la communauté open-source commence à proposé des solutions. Il y a trois approches possibles:

Installation du firmware Versaloon sur le ST-Link:


 * Permet le support sous OpenOCD (et donc le support de GDB ???)
 * Ce n'est pas simple à installer pour l'instant, une approche nécessite d'accéder à connection SWD du ST-Link par soudage pour réaliser la première étape (installation du firmware Versaloon). A priori il y a peut-être une autre méthode par utilisation du DFU (Driver Firmware Update) pour mettre à jour le ST-Link (essai par DFuse non concluant pour l'instant --Admin 10:20, 23 January 2011 (UTC)). Il faut surveiller les mailings list sur le sujet, ces contributions sont très récentes, mi-janvier 2011

Utilisation d'un bootloader série sur le STM32:


 * Ici on laisse de coté le ST-Link intégré du coup pas de support pour GDB et il faut cablé une liaison série

Support du ST-Link sous Linux:  Il suffit de récupérer le dépot git : git clone https://github.com/texane/stlink.git Ensuite, il faut vérifier que l'on a bien pkg-config et libusb whereis pkg-config whereis libusb Il ne reste plus qu'à faire un make et le tour est joué ! Après quoi, on lance ./gdbserver/st-util Ensuite il faut lancer GDB arm-none-eabi-gdb Puis executer la commande suivante pour relier gdb au st-util : target extended-remote localhost:4242 Enfin, on charge le fichier dans gdb, il sera alors normalement chargé dans la carte : load .elf Ce fichier doit avoir été compilé par le gcc arm : arm-none-eabi-gcc -g -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc .c -o .bin Pour plus de détails, veuillez vous référer au README fourni avec le dépot git.
 * C'est la meilleure solution à long terme, le projet le plus avancé est a priori celui-ci à tester --Admin 07:46, 9 August 2011 (UTC)


 * Il y a aussi la possibilité d'utiliser le Bus Pirate

Il existe un utilitaire pour Linux pour charger du code sur la carte.

Misc (ie à vérifier)

 * FreeRT OS sur STM32 Discovery http://www.freertos.org/FreeRTOS-for-Cortex-M3-STM32-STM32F100-Discovery.html
 * OpenOCD, http://developer.berlios.de/projects/openocd/
 * http://stm32.spacevs.com/
 * http://www.emcu.it/

Liens

 * http://gostm32.blogspot.com/
 * http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/