STM32L152C Discovery Board: Unterschied zwischen den Versionen

Aus PUCONwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ServerImage|STM32L152C-DISCO.JPG}}
{|
|-
| {{ServerImage|STM32L152C-DISCO.JPG}}
| valign="top" | Demo- und Prototyping-Board mit
* ARM Cortex-M3 [http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32l1-series/stm32l151-152/stm32l152rc.html STM32L152RCT6] embedded Processor von [http://www.st.com/ ST microsystems]
** extremely low power modes
** built-in LCD controller
* 6-digit LCD
* Umschalte-Möglichkeit zwischen USB-Versorgung und Batteriebetrieb (CR2032, SMD-Batteriehalter muss noch hinzugefügt werden, Löt-Pads sind bereits vorhanden)
* ST-LINK/V2 Flash programmer
** Dieser kann versorgungsmäßig und logisch vom Rest des Boards getrennt werden, um Batterie-Versorgung sinnvoll zu nutzen
** Durch die Möglichkeit der Trennung kann er auch für andere Target-Hardware wie ein eigenständiger ST-LINK/V2 Programmer genutzt werden
* Hardware zur Messung der Stromaufnahme in 2 Bereichen
 
|}


== Ablage ==
== Ablage ==


* {{UncFile|puconnas01\public\Hardware\Elektronik-Module_und_Bausätze\STM32L1_Discovery}}
* {{UncFile|puconnas01.fritz.box\public\Hardware\STM32L1_Discovery}}
*: '''WICHTIG:''' Der Pfad zur Ablage von Software-Komponenten muss kurz gehalten werden. Zumindest mit der KEIL-MDK-ARM Entwicklungsumgebung ist aufgefallen, dass manche Pfade länger als 256 Zeichen werden und dann die Compiler die Dateien nicht finden können!
 
== Projekte ==
 
In diesen Projekten wird [[STM32L152C Discovery Board]] eingesetzt:
 
* [[PUCON Bike Computer]]


== Einrichten der Entwicklungsumgebung ==
== Einrichten der Entwicklungsumgebung ==
=== Entwicklungs-Software-Pakete ===
Das Ziel war, mit frei verfügbarer Entwicklungs-Software zu arbeiten, idealerweise GNU GCC.
Das Problem mit dem STL32L1-DISCO ist allerdings, dass ST keine Konfigurationen für freie Umgebungen bereitstellt. In der Dokumentation werden nur oberflächliche Informationen für 4 nicht-freie Werkzeuge gegeben:
* IAR Embedded Workbench® for ARM (EWARM) by IAR Systems
* Microcontroller Development Kit for ARM (MDK-ARM) by Keil™
* TrueSTUDIO® by Atollic
* TASKING VX-toolset for ARM® Cortex™-M by Altium™
Versuche wurden gemachtmit:


* STM32 System Workbench
* STM32 System Workbench
*: Website unter http://www.openstm32.org/
*: Website unter http://www.openstm32.org/
*: gespeichert unter {{UncFile|puconnas01\public\Software\Windows\OpenSTM32_STM32_System_Workbench}}
*: gespeichert unter {{UncFile|puconnas01\public\Software\Windows\OpenSTM32_STM32_System_Workbench}}
dieses Toolset beihnaltet keine Konfiguration für das STM32L151-DISCO
Zusätzlich gibt es noch:
* CooCox Software - Free/Open ARM Cortex MCU Development Tools
*: Website unter http://www.coocox.org/software.html
Auch dieses Toolset hat allerdings keine vorbereitete Konfiguration für das STM32L1-DISCO, somit ist es keine Methode, um die Entwicklung damit zu beginnen.
==== Proprietäre IDE: KEIL uVision ====
Entwicklungs-Versuche wurden daher mit dem KEIL-Toolset begonnen:
* KEIL uVision MDK-ARM Development IDE
** Verschiedene Versionen im Vergleich: http://www2.keil.com/mdk5/selector
** Zum Test die '''Lite'''-Version ausgewählt: https://www.keil.com/demo/eval/arm.htm
** Die Installation installiert auch einen ST-LINKv2 Treiber, der über USB das Board direkt anspricht
**: Dazu muss man sich registrieren, ist erfolgt mit E-mail-Adresse mailto:w.scherer@aon.at und dem übliehcn Passwort
** Die IDE wurde auf {{URSOKONTOR}} unter <code>C:\Keil_v5</code> installiert
** Mit ''"Projekt > Open"'' kann dann im "MDK-ARM" Zweig des Verzeichnisses der [[#Discovery Firmware]]
**: <code>\\puconnas01\public\Hardware\STM32L1_Discovery\STM32L1_Discovery_Firmware\en.stsw-stm32072\STM32L-Discovery_FW_Pack\Projects\AN3413-Current_consumption_touch_sensing\MDK-ARM</code>
**: das Projekt für die Demo-Firmware geöffnet werden.
**: Mit "Project > Build Target" kann die Firmware gebaut werden und mit "Flash > Download" in das Board übertragen werden. Ein RESET des Boards zeigt die Funktion
** Um die Wirksamkeit auch zu zeigen wurde in <code>main.c</code> die Begrüßungs-Nachricht in der Variable "message"
**: von <code>** 32L152CDISCOVERY  **</code> auf <code>** PUCON__DISCOVERY  **</code> bzw
**: von <code>** STM32L1-DISCOVERY **</code> auf <code>** PUCONL1-DISCOVERY **</code> ausgetauscht. Das hat funktioniert.
==== Open-Source: GCC und STLINK-Util ====
"Going Open Source" bedeutet in diesem Fall eine ganze Menge an zusätzlicher Arbeit, obwohl hier schon viel Arbeit von anderen getan worden ist:
* Die verwendeten Tools sind aus [[#GeofB2012]], allerdings mit folgenden Unterschieden:
** Wir wollen Windows als Entwicklungsplattform, [[#GeofB2012]] gibt die Anleitung für Linux
** Die Beispiele in [[#GeofB2012]] sind für ein STM32F4-Discovery Board, wir haben ein STM32L152-Discovery Board
** Wir wollen die mit dem Boad gelieferte Demo-Software wieder herstellen können, wie wir das mit der KEIL-IDE machen konnten
Einige Schritte und verwendete Software-Produkte müssen daher verändert werden.
Die Vorgehensweise für eine Windows-basierende GCC-Entwicklungsumgebung für das SRM32L152-Discovery Board sind daher:
* Compiler (GCC):
** Ausgehend von [http://www.cs.indiana.edu/~geobrown/book.pdf#section.1.2 Kapitel 1.2] in [[#GeofB2012]]
** Sourcery (owned by Mentor Graphics) ist ein GCC-Package
** Die Seite https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite führt nach Auswahl von "uCLinux als "Target" zum Download
** Dort kann "IA32 Windows Installer" ausgewählt werden
* STLINK Programmer
** [[#GeofB2012]] empfiehlt für Linux ein ST-LINK Software-Paket, das unter <code>git clone git://github.com/texane/stlink.git</code> gefunden werden kann
** Für Windows habe ich einen Build dieses Pakets unter http://www.emb4fun.de/archive/stlink/ gefunden. Dieses sollte sich auch gleich verhalten.
<<< to be continued >>>


== Hersteller-Informationen ==
== Hersteller-Informationen ==


* http://www.st.com/stm32l1-discovery
* [http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32l152cdiscovery.html Produktseite des STM32L152-DISCOVERY Board]
* http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32l152cdiscovery.html
 
=== Software-Komponenten ===
 
==== Discovery Firmware ====
 
* [http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries-expansions/stsw-stm32072.html STSW-STM32072 - STM32L-DISCOVERY and 32L152CDISCOVERY firmware package] beinhaltet u.a. die Software, mit der das Board ausgeliefert wird
*: In {{PUCON}} abgelegt unter {{UncFile|puconnas01\public\Hardware\STM32L1_Discovery\STM32L1_Discovery_Firmware\en.stsw-stm32072}}
 
==== Kompoenenten-Library ====
 
* [http://www.st.com/stm32l1-discovery STM32CubeL1 - Software-Komponenten und Beipiel-Projekte für STM32L1 Boards]


== Siehe auch ==
== Siehe auch ==


* [https://www.youtube.com/watch?v=mkx4qZCCHqI EEVblog #900: STM32 ARM Development Board]
* [https://www.youtube.com/watch?v=mkx4qZCCHqI EEVblog #900: STM32 ARM Development Board]
* [https://www.youtube.com/playlist?list=PLz-ePwn2hOw8fpxsLG3fkyjsvTLhs4W23 Wolfgangs STM32L Discovery Youtube Playlist]


* [http://www.mikrocontroller.net/articles/STM32 STM32-Seite auf microcontroller.net], beinhaltet auch Links zu IDEs und Anleitungen für Eclipse, GCC, etc.
* [http://www.mikrocontroller.net/articles/STM32 STM32-Seite auf microcontroller.net], beinhaltet auch Links zu IDEs und Anleitungen für Eclipse, GCC, etc.
* {{Anchor|GeofB2012}} - [http://www.cs.indiana.edu/~geobrown/book.pdf Discovering the STM32 Microcontroller - Geoffrey Brown - &copy; 2012] - ebook als Vorlesungsgrundlage der Univerity Of Indiana, basierend auf STM32F100 Controller Boards und GCC-Software-Development
* [[Iteadmaple]] - ein STM32F103-basierendes Arduino-Form-Factor Microcontroller Board. Der STM32F1xx ist ein Verwandter des STM32L1xx, der nicht auf Low-Power sondern auf High-Performance ausgelegt ist

Aktuelle Version vom 6. September 2016, 09:13 Uhr

Demo- und Prototyping-Board mit
  • ARM Cortex-M3 STM32L152RCT6 embedded Processor von ST microsystems
    • extremely low power modes
    • built-in LCD controller
  • 6-digit LCD
  • Umschalte-Möglichkeit zwischen USB-Versorgung und Batteriebetrieb (CR2032, SMD-Batteriehalter muss noch hinzugefügt werden, Löt-Pads sind bereits vorhanden)
  • ST-LINK/V2 Flash programmer
    • Dieser kann versorgungsmäßig und logisch vom Rest des Boards getrennt werden, um Batterie-Versorgung sinnvoll zu nutzen
    • Durch die Möglichkeit der Trennung kann er auch für andere Target-Hardware wie ein eigenständiger ST-LINK/V2 Programmer genutzt werden
  • Hardware zur Messung der Stromaufnahme in 2 Bereichen

Ablage

  • ["file://puconnas01.fritz.box\public\Hardware\STM32L1_Discovery"]
    WICHTIG: Der Pfad zur Ablage von Software-Komponenten muss kurz gehalten werden. Zumindest mit der KEIL-MDK-ARM Entwicklungsumgebung ist aufgefallen, dass manche Pfade länger als 256 Zeichen werden und dann die Compiler die Dateien nicht finden können!

Projekte

In diesen Projekten wird STM32L152C Discovery Board eingesetzt:

Einrichten der Entwicklungsumgebung

Entwicklungs-Software-Pakete

Das Ziel war, mit frei verfügbarer Entwicklungs-Software zu arbeiten, idealerweise GNU GCC.

Das Problem mit dem STL32L1-DISCO ist allerdings, dass ST keine Konfigurationen für freie Umgebungen bereitstellt. In der Dokumentation werden nur oberflächliche Informationen für 4 nicht-freie Werkzeuge gegeben:


  • IAR Embedded Workbench® for ARM (EWARM) by IAR Systems
  • Microcontroller Development Kit for ARM (MDK-ARM) by Keil™
  • TrueSTUDIO® by Atollic
  • TASKING VX-toolset for ARM® Cortex™-M by Altium™

Versuche wurden gemachtmit:

  • STM32 System Workbench
    Website unter http://www.openstm32.org/
    gespeichert unter ["file://puconnas01\public\Software\Windows\OpenSTM32_STM32_System_Workbench"]

dieses Toolset beihnaltet keine Konfiguration für das STM32L151-DISCO

Zusätzlich gibt es noch:

Auch dieses Toolset hat allerdings keine vorbereitete Konfiguration für das STM32L1-DISCO, somit ist es keine Methode, um die Entwicklung damit zu beginnen.

Proprietäre IDE: KEIL uVision

Entwicklungs-Versuche wurden daher mit dem KEIL-Toolset begonnen:

  • KEIL uVision MDK-ARM Development IDE
    • Verschiedene Versionen im Vergleich: http://www2.keil.com/mdk5/selector
    • Zum Test die Lite-Version ausgewählt: https://www.keil.com/demo/eval/arm.htm
    • Die Installation installiert auch einen ST-LINKv2 Treiber, der über USB das Board direkt anspricht
      Dazu muss man sich registrieren, ist erfolgt mit E-mail-Adresse mailto:w.scherer@aon.at und dem übliehcn Passwort
    • Die IDE wurde auf URSOKONTOR unter C:\Keil_v5 installiert
    • Mit "Projekt > Open" kann dann im "MDK-ARM" Zweig des Verzeichnisses der #Discovery Firmware
      \\puconnas01\public\Hardware\STM32L1_Discovery\STM32L1_Discovery_Firmware\en.stsw-stm32072\STM32L-Discovery_FW_Pack\Projects\AN3413-Current_consumption_touch_sensing\MDK-ARM
      das Projekt für die Demo-Firmware geöffnet werden.
      Mit "Project > Build Target" kann die Firmware gebaut werden und mit "Flash > Download" in das Board übertragen werden. Ein RESET des Boards zeigt die Funktion
    • Um die Wirksamkeit auch zu zeigen wurde in main.c die Begrüßungs-Nachricht in der Variable "message"
      von ** 32L152CDISCOVERY ** auf ** PUCON__DISCOVERY ** bzw
      von ** STM32L1-DISCOVERY ** auf ** PUCONL1-DISCOVERY ** ausgetauscht. Das hat funktioniert.

Open-Source: GCC und STLINK-Util

"Going Open Source" bedeutet in diesem Fall eine ganze Menge an zusätzlicher Arbeit, obwohl hier schon viel Arbeit von anderen getan worden ist:

  • Die verwendeten Tools sind aus #GeofB2012, allerdings mit folgenden Unterschieden:
    • Wir wollen Windows als Entwicklungsplattform, #GeofB2012 gibt die Anleitung für Linux
    • Die Beispiele in #GeofB2012 sind für ein STM32F4-Discovery Board, wir haben ein STM32L152-Discovery Board
    • Wir wollen die mit dem Boad gelieferte Demo-Software wieder herstellen können, wie wir das mit der KEIL-IDE machen konnten

Einige Schritte und verwendete Software-Produkte müssen daher verändert werden.

Die Vorgehensweise für eine Windows-basierende GCC-Entwicklungsumgebung für das SRM32L152-Discovery Board sind daher:

<<< to be continued >>>

Hersteller-Informationen

Software-Komponenten

Discovery Firmware

Kompoenenten-Library

Siehe auch

  • Iteadmaple - ein STM32F103-basierendes Arduino-Form-Factor Microcontroller Board. Der STM32F1xx ist ein Verwandter des STM32L1xx, der nicht auf Low-Power sondern auf High-Performance ausgelegt ist