STM32 Discovery & Nucleo: Difference between revisions
No edit summary |
No edit summary |
||
(51 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[File:stm32vl_discovery.jpg| |
[[File:stm32vl_discovery.jpg|200px|thumb|right|Le STM32VL-Discovery ]] |
||
[[File:stm32l-discovery.jpg| |
[[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 (STM32L-DISCOVERY)] (ultra-low power) dispose d'un mini afficheur LCD. Le flashage du programme se fait via un lien USB ST-Link. Le lien ST-Link ne peut 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). |
|||
[[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==== |
====STM32 ST-LINK Utility==== |
||
Line 19: | 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 |
|||
=== |
====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¤tviews=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¤tviews=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]] |
|||
==Misc== |
|||
* [[OpenOCD]], http://developer.berlios.de/projects/openocd/ |
|||
* http://stm32.spacevs.com/ |
|||
* http://www.emcu.it/ |
|||
=Liens= |
|||
Il existe un [http://code.google.com/p/arm-utilities/wiki/STLinkDownload utilitaire pour Linux] pour charger du code sur la carte. |
|||
* http://en.wikipedia.org/wiki/STM32 |
|||
==Liens== |
|||
* 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
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
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
- 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 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 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
- Devtools http://www.aim-store.eu/
Operating Systems
- FreeRT OS sur STM32 Discovery http://www.freertos.org/FreeRTOS-for-Cortex-M3-STM32-STM32F100-Discovery.html
- RIOT OS
- embOS (RT OS for µC (ARM7,M3 Cortex, ...) http://www.segger.com/embos.html
- mBed OS
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://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