STM32 Discovery & Nucleo: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
No edit summary
 
(57 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[File:stm32vl_discovery.jpg|300px|thumb|right|Le STM32VL-Discovery ]]
[[File:stm32vl_discovery.jpg|200px|thumb|right|Le STM32VL-Discovery ]]
[http://www.st.com/stm32-discovery STM32VL-Discovery]
[[File:stm32l-discovery.jpg|200px|thumb|right|Le STM32L-Discovery ]]
[[File:stm32f4-discovery.jpg|200px|thumb|right|Le STM32F4-Discovery ]]
Carte contruit autour d'un microcontrolleur STM32F100RB disposant de 128 KB Flash, 8 KB RAM
[[File:stm32f0-nucleo.jpg|200px|thumb|right|Le STM32F0 Nucleo]]
Le chargement et le débouggage se fait au moyen du STLINK (connecteur USB). Le [[http://www.st.com/internet/evalboard/product/250990.jsp|nouveau modèle]] (ultra-low power) dispose d'un mini afficheur LCD.
[[Image:STM32F7Discovery-1.jpg|200px|right|thumb|STM32F7 Discovery]]
[[Image:STM32F042-1.jpg|200px|right|thumb|STM32F042 + Arduino Micro Board]]
[[Image:MonsterMotoShield+STNucleoF401.jpg|200px|right|thumb|Monster Moto Shield with ST Nucleo F401]]

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


==Cartes Discovery==
Listes des principales cartes STM32 discovery ('''liste non exhaustive''').
On peut aussi consulter la page wikipedia pour une déscriptions plus technique de la famille [STM32 http://en.wikipedia.org/wiki/STM32].

===STM32F0-DISCOVERY===
La carte STM32FO-DISCOVERY est doté d'un microcontroleur [http://en.wikipedia.org/wiki/STM32#STM32_F0 STM32F0] ayant un coeur Cortex-M0 à 48 MHz (0.9 DMIPS/MHz) alimenté en 1.8V à 3.6V Vcc. Il est doté de 64 KBytes Flash et de 8 KBytes RAM. Il consomme 5µA en Stop mode, en 2µA Standby mode, 430nA Vbat mode (with only RTC running and 20 RAM registers kept alive)
Une très bonne série de tutoriaux pour la prise en main de cette carte [http://hertaville.com/the-stm32f0discovery-board/ ici].

===STM32L-DISCOVERY===
Le [http://www.st.com/internet/evalboard/product/250990.jsp nouveau modèle (STM32L-DISCOVERY)] (ultra-low power [http://www.st.com/stonline/stappl/st/mcu/product/248820.jsp 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.''

Un projet d'émulation de cette carte par le logiciel [[Qemu]] réaliser par les étudiant de Polytech Grenoble, filière RICM4, est disponible [[Proj-2011-2012-qemu |ici]]

===STM32VL-Discovery===
La carte [http://www.st.com/internet/evalboard/product/250863.jsp STM32VL-Discovery] est construite autour d'un microcontrôleur [http://www.st.com/internet/mcu/product/216844.jsp 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).

===STM32F3-DISCOVERY===
STM32F303VCT6 microcontroller featuring 256 KB Flash, 48 KB RAM with L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope &LSM303DLHC, ST MEMS system-in-package featuring a 3D digital linear acceleration sensor and a 3D digital magnetic sensor
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044

===STM32F4-DISCOVERY===
La carte [http://www.st.com/internet/evalboard/product/252419.jsp 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. Cette carte est actuellement la plus puissante de la série mais aussi la plus complexe à exploiter.

===STM32F7-DISCOVERY===
[[STM32F7|voir ...]]

==Cartes Nucleo==
Les cartes Nucleo sont des cartes STM32 découvertes supportant les shields Arduino. La programmation et le debug passe par le port USB (ST-Link/V2-1). Le port USB émule le Serial USB. Le PCB est sécable pour détacher le programmateur ST-Link/V2-1. Elles sont programmables avec l'IDE en mode SaaS [[Mbed]].

===STM32F072 Nucleo===
Processeur STM32F072RBT6 http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823/PF259605

ARM Cortex-M0 MCU with 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions

==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.

== Introduction générale et programmation ==
Un document général et didactique pour la compréhension et la programmation des STM32 [http://www.cs.indiana.edu/~geobrown/book.pdf Discovering the STM32 Microcontroller ]


==Environnement de développement==
==Environnement de développement==

'''A completer'''

'''Une liste assez complète des outils disponibles pour cette carte''' [http://embeddednewbie.blogspot.com/2011/01/free-toolchains-for-stm32vldiscovery.html]
'''Une liste assez complète des outils disponibles pour cette carte''' [http://embeddednewbie.blogspot.com/2011/01/free-toolchains-for-stm32vldiscovery.html]

===Web-based===

* [[Mbed]] in C with STM Nucleo
* [[Espruino]] in Javascript with Chrome App and soon Eclipse Orion
* [[Premiers pas avec les cartes STM32 Nucleo]]

===Utilisation sous Linux===
==== Compilation ====

==== Support de la sonde de programmation ST-LINK v1 et v2 ====
Les cartes sont maintenant supportées par '''[[OpenOCD]]'''.

'''Une alternative''': le logiciel [https://github.com/texane/stlink stlink]

===Utilisation sous MacOS X===

Flashage et débuggage avec [[OpenOCD]].

===Utilisation sous Windows===
===Utilisation sous Windows===
====STM32 ST-LINK Utility====
Utilitaire (GUI et Command Line Interface) sous Windows pour utiliser le STLink avec les STM8 et STM32.
* [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/CD00262073.pdf manuel]

====Attolic Studio====
====Attolic Studio====
[[Image:attolicstm32.png|200px|thumb|right|Attolic TrueStudio debuggant STM32VL-Discovery ]]
[[Image:attolicstm32.png|200px|thumb|right|Attolic TrueStudio debuggant STM32VL-Discovery ]]
Line 15: Line 87:
====MDK-ARM software====
====MDK-ARM software====
====IAR Embedded Workbench software====
====IAR Embedded Workbench software====
====Mentor Code Sourcery====
* https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/setting-up-eclipse-for-stm32-discovery-development


===Utilisation sous Linux===
====Arduino IDE====
* https://github.com/mlu/arduino-stm32
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:


====OpenSTM32====
'''Installation du firmware Versaloon sur le ST-Link:''' [http://www.versaloon.com/bbs/viewtopic.php?f=2&t=17&start=0]
AC3 installateur one-click de Eclipse pour STM32
* http://www.openstm32.org/tiki-register.php
* http://www.st.com/web/en/press/en/p3669
====coIDE CooCox====
* http://www.coocox.org/software.html
Remarque : Il faut installer la chaine de compilation arm-none-eabi pour Windows et la configurer via Project > Select Toolchain Path


la toolchain est téléchargeable ici https://launchpad.net/gcc-arm-embedded/+download
* 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 --[[User:Admin|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''' [https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32VLDiscovery/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2FSTM32VLDiscovery%2FST-Link%20Linux%20Driver&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000491D59B8574F8049B5DFA3E8B21CBA51&currentviews=981]
[http://capitanio.org/mlink/index.html]


Il faut aussi configurer l’adapteur pour le flash/debug dans View > Configuration > Debugger et choisir ST-LINK SWD 1M SYSRESETREQ.
'''Utilisation d'un bootloader série sur le STM32:''' [http://code.google.com/p/stm32flash/]


====yotta====
*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
* http://yottadocs.mbed.com/
''tool that we're building at mbed to help ourselves and others build better software for C-family languages (that's C, C++ and Objective-C). It's a command line tool yotta, but also a culture of building software components that do one thing well, declare a clear interface, and can be re-used.''


===Autres===
'''Support du ST-Link sous Linux:''' [https://github.com/texane/stlink] [https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32VLDiscovery/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2FSTM32VLDiscovery%2FST-Link%20Linux%20Driver&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000491D59B8574F8049B5DFA3E8B21CBA51&currentviews=981]
* Devtools http://www.aim-store.eu/
[http://capitanio.org/mlink/index.html]
* C'est la meilleure solution à long terme, le projet le plus avancé est a priori [https://github.com/texane/stlink celui-ci] '''à tester''' --[[User:Admin|Admin]] 07:46, 9 August 2011 (UTC)


==Operating Systems==
* Il y a aussi la possibilité d'utiliser le [http://blog.willdonnelly.net/2010/10/02/serial-wire-debugging-the-stm32-via-the-bus-pirate/ Bus Pirate]
* [[FreeRT OS]] sur STM32 Discovery http://www.freertos.org/FreeRTOS-for-Cortex-M3-STM32-STM32F100-Discovery.html
* [[RIOT|RIOT OS]]
* embOS (RT OS for µC (ARM7,M3 Cortex, ...) http://www.segger.com/embos.html
* [[mBed OS]]


==Liens==
==Misc==
* [[OpenOCD]], http://developer.berlios.de/projects/openocd/
* http://stm32.spacevs.com/
* http://www.emcu.it/

=Liens=
* http://en.wikipedia.org/wiki/STM32
* http://gostm32.blogspot.com/
* http://gostm32.blogspot.com/
* http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/
* http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/

=Livre=
* Mastering STM32 http://www.carminenoviello.com/en/mastering-stm32/
** Code source https://github.com/cnoviello/mastering-stm32

Latest revision as of 17:01, 30 October 2018

Le STM32VL-Discovery
Le STM32L-Discovery
Le STM32F4-Discovery
Le STM32F0 Nucleo
STM32F7 Discovery
STM32F042 + Arduino Micro Board
Monster Moto Shield with ST Nucleo F401

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


Cartes Discovery

Listes des principales cartes STM32 discovery (liste non exhaustive). On peut aussi consulter la page wikipedia pour une déscriptions plus technique de la famille [STM32 http://en.wikipedia.org/wiki/STM32].

STM32F0-DISCOVERY

La carte STM32FO-DISCOVERY est doté d'un microcontroleur STM32F0 ayant un coeur Cortex-M0 à 48 MHz (0.9 DMIPS/MHz) alimenté en 1.8V à 3.6V Vcc. Il est doté de 64 KBytes Flash et de 8 KBytes RAM. Il consomme 5µA en Stop mode, en 2µA Standby mode, 430nA Vbat mode (with only RTC running and 20 RAM registers kept alive) Une très bonne série de tutoriaux pour la prise en main de cette carte ici.

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.

Un projet d'émulation de cette carte par le logiciel Qemu réaliser par les étudiant de Polytech Grenoble, filière RICM4, est disponible ici

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).

STM32F3-DISCOVERY

STM32F303VCT6 microcontroller featuring 256 KB Flash, 48 KB RAM with L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope &LSM303DLHC, ST MEMS system-in-package featuring a 3D digital linear acceleration sensor and a 3D digital magnetic sensor http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044

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. Cette carte est actuellement la plus puissante de la série mais aussi la plus complexe à exploiter.

STM32F7-DISCOVERY

voir ...

Cartes Nucleo

Les cartes Nucleo sont des cartes STM32 découvertes supportant les shields Arduino. La programmation et le debug passe par le port USB (ST-Link/V2-1). Le port USB émule le Serial USB. Le PCB est sécable pour détacher le programmateur ST-Link/V2-1. Elles sont programmables avec l'IDE en mode SaaS Mbed.

STM32F072 Nucleo

Processeur STM32F072RBT6 http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823/PF259605

ARM Cortex-M0 MCU with 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions

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.

Introduction générale et programmation

Un document général et didactique pour la compréhension et la programmation des STM32 Discovering the STM32 Microcontroller

Environnement de développement

A completer

Une liste assez complète des outils disponibles pour cette carte [1]

Web-based

Utilisation sous Linux

Compilation

Support de la sonde de programmation ST-LINK v1 et v2

Les cartes sont maintenant supportées par OpenOCD.

Une alternative: le logiciel stlink

Utilisation sous MacOS X

Flashage et débuggage avec OpenOCD.

Utilisation sous Windows

STM32 ST-LINK Utility

Utilitaire (GUI et Command Line Interface) sous Windows pour utiliser le STLink avec les STM8 et STM32.

Attolic Studio

Attolic TrueStudio debuggant STM32VL-Discovery

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.

MDK-ARM software

IAR Embedded Workbench software

Mentor Code Sourcery

Arduino IDE

OpenSTM32

AC3 installateur one-click de Eclipse pour STM32

coIDE CooCox

Remarque : Il faut installer la chaine de compilation arm-none-eabi pour Windows et la configurer via Project > Select Toolchain Path

la toolchain est téléchargeable ici https://launchpad.net/gcc-arm-embedded/+download

Il faut aussi configurer l’adapteur pour le flash/debug dans View > Configuration > Debugger et choisir ST-LINK SWD 1M SYSRESETREQ.

yotta

tool that we're building at mbed to help ourselves and others build better software for C-family languages (that's C, C++ and Objective-C). It's a command line tool yotta, but also a culture of building software components that do one thing well, declare a clear interface, and can be re-used.

Autres

Operating Systems

Misc

Liens

Livre