beelogger

beelogger-STM32 – Programme laden

Für das beelogger-System ist die ARDUINO IDE als Entwicklungsumgebung erforderlich.
(IDE = Integrated Developement Environment)

Der Download der Software ARDUINO IDE kann unter https://www.arduino.cc/en/Main/Software vorgenommen werden.

Um den STM32 über die serielle Schnittstelle programmieren zu können, wird ein USB-zu-Seriell-Adapter (z.B. FTDI) benötigt. (Hinweis: Alternativ ist die Programmierung über einen ST-Link Adapter möglich)
Da die Debug-Ausgaben der Sketche über die serielle Schnittstelle “Serial/Serial1” ausgelesen werden, ist für die beelogger Inbetriebnahme ein FTDI-Adapter erforderlich.

Das BluePill- Modul ist mit einem USB-Anschluß ausgestattet und könnte nach Laden einer Firmwareerweiterung via FTDI über USB programmiert werden. Das BlackPill-Modul hat eine USB-Unterstützung integriert.
Wegen der diversen Features des STM32Fxyz, die für das beelogger Projekt notwendig sind, ist die Nutzung der Firmwareerweiterung und des USB-Ports nicht möglich. Die USB-Schnittstelle, die auch für Debug-Ausgaben genutzt wird, deaktiviert der LowPower-Mode “StandBy” des STM32F… zwangsweise. Damit verliert die Arduino-IDE, ggf. auch das Betriebssystem des PC, die Verbindung.

 

Ardunio IDE für die Programmierung vorbereiten

Für Microcontroller der STM32F Reihe, z.B. STM32F4x1 (“Blackpill”), werden spezielle Erweiterungen für den Bordverwalter benötigt.
Dafür wird in der Arduino-IDE im Menu “Datei” unter “Voreinstellungen” im Feld “Zusätzliche Bordverwalter URLs” folgende Zeile eingetragen:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

und das Fenster mit “OK” verlassen.

Danach unter “Werkzeuge”, “Board” den “Boardverwalter” aufrufen.
Nach Laden der Informationen steht das Paket “STM32 MCU based boards” zur Verfügung.
Für die korrekte Funktion der Sketche ist mindestens Version 2.6.0 zu installieren.
Das kann einige Zeit dauern.

Der beelogger-STM32 wird über einen FTDI-Adapter programmiert.
Im Gegensatz zur Programmierung eines Arduino-Nano (beeloggerUniversal), der nur mit der Arduino IDE programmiert werden kann, muss für die Programmierung eines STM32 zusätzlich der STM32CubeProgrammer im Betriebssystem installiert sein. Der CubeProgrammer dient über den FTDI-Adapter als Schnittstelle zwischen der Shell und dem Prozessor.

Unter Windows sind dafür folgende Schritte notwendig:

  • Stm32CubeProg – Programmer von ST downlad und installieren
    verfügbar nach Anmeldung auf der ST Developer Webseite
    www.st.com/en/development-tools/stm32cubeprog.html
  • falls notwendig: Oracle Java downloaden und installieren; https://www.java.com/de/download/manual.jsp

Die Beschreibung zur Installation unter macOS für das Tool STM32CubeProg – Programmer  findet sich in dieser Anleitung STM32CubeProgrammer macOS, die uns netterweise Bernhard Schmitz zusammengestellt hat. Wurde der CubeInstaller erfolgreich installiert, muss weiter nichts unternommen werden. Die ArduinoSoftware kommuniziert mit dem Tool.

Es kann erforderlich sein für den FTDI-Adapter notwendige Treiber zu installieren. Windows Anwender sollten die Gerätesteuerung kontrollieren, ob ein angeschlossener FTDI-Adapter erkannt wird.

Die beelogger-STM32-Sketche sind mit Arduino IDE Version 1.8.19, 2.03 getestet.

In der Arduino-IDE über die Voreinstellungen die Update-Funktion der Bibliotheken “Beim Start nach Updates suchen” deaktivieren.
Bei der Arduino-IDE 2.0x erreicht man diese Voreinstellung über die Tasten “CTRL-Shift-P”, in der Suchzeile “Einstellungen” eingeben, diese anwählen, in den Einstellungen in der Eingabezeile “arduino.checkForUpdates” eingeben und die Checkbox für Updates inaktiv setzen; Fenster Einstellungen schließen.

Danach die für den beelogger notwendigen Bibliotheken in das Arduino-libraries-Verzeichnis kopieren.
Bibliotheken nicht über die Arduino-Software aktualisieren. Neuere Bibliotheken können zu den beelogger-Sketchen inkompatibel sein.

 

Ardunio IDE Einstellungen für den beelogger-STM32

Der beeloggerBlue/Black wird beim Programmieren mit eingebautem Akku versorgt.
Eine Stromversorgung über den FTDI-Adapter ist nicht im Layout enthalten.
Der Akku sollte einen guten Ladezustand (min. 4,0V) aufweisen. Neue Akkus müssen vorher geladen werden.

beeloggerBlack                                        beeloggerBlue

In der Arduino IDE wird für den “beeloggerBlack ” mit STM32F4x1 unter “Werkzeuge” folgendes eingestellt: In der Arduino IDE wird für den “beeloggerBlue ” mit STM32F103 unter “Werkzeuge” folgendes eingestellt:
  • “Board”  –  “Generic STM32F4 series”
  • “Board Part Numer”  –  “BlackPill F411CE”  oder  “BlackPill F401CC”
  • “USART support”   –  “Enabled generic serial”
  • “USB support”  –   “keine /none”
  • “Optimize”  –  “smallest”
  • “C Runtime Lib”  –  “NewLib Nano default”
  • “Upload method”   –  “STM32 Cube Programmer Serial”   (das ist der FTDI)
  • “Board”  –  “Generic STM32F1 series”
  • “Board Part Numer”  –  “BluePill F103C8”  oder  “BluePill F103CB (or C8 with 128k)”
  • “USART support”   –  “Enabled generic serial”
  • “USB support”  –   “keine /none”
  • “Optimize”  –  “smallest”
  • “C Runtime Lib”  –  “NewLib Nano default”
  • “Upload method”   –  “STM32 Cube Programmer Serial”   (das ist der FTDI)

Prozessortyp überprüfen

Prozessortyp überprüfen

Wenn der FTDI-Adapter für den beelogger angeschlossen ist, kann unter “Werkzeuge”, “Port” die Verbindung eingestellt werden. Wenn der FTDI-Adapter für den beelogger angeschlossen ist, kann unter “Werkzeuge”, “Port” die Verbindung eingestellt werden.

Sketch laden mit dem BlackPill-Modul:

Damit ein Sketch über FTDI geladen werden kann, muss der FTDI-Adapter auf 3,3V eingestellt sein.
Über die Tasten Boot0 und Reset wird der Programmiermode hergestellt:

  • Taster “Boot0” drücken und halten
  • Taster “Reset” kurz drücken
  • Taster “Boot0” loslassen

    Achtung: Mit Betätigen des “Boot0” – Tasters wird das Programm gelöscht durch:
                   – Betätigen des Reset-Tasters
                   – Neustart des STM32F4x1 über interne Timer
                   – Betätigen des Service-Schalter in Verbindung mit den
                         Multi-Sketchen (WLAN/GSM/LTE)
                   – Aus-/Anschalten der Versorgungspannung

Nach dem Programmieren verlässt der STM32F4x1 automatisch den Programmiermode.

 

Sketch laden mit dem BluePill-Modul:

Damit ein Sketch über FTDI geladen werden kann, muss der FTDI-Adapter auf 3,3V eingestellt und die Jumper auf dem BluePill-Modul richtig gesetzt sein.

  • “Boot1”  immer auf Postion “0” (Richtung USB-Buchse)
  • “Boot0”  zu Laden eines Sketch Jumper auf “1” und Reset-Taste drücken
  • Wenn der Sketch nach dem Laden dauerhaft gespeichert bleiben soll, dann den Jumper auf “0” stecken.
    Anmerkung: Jumper auf “0” ist beim beelogger normalerweiler nur für die Mutli-Sketche notwendig.

    Achtung: Mit “Boot0” -Jumper auf 1 wird das Programm gelöscht durch:
                   – Betätigen des Reset-Tasters auf dem Bluepill-Modul
                   – Neustart des STM32Fxyz über interne Timer
                   – Betätigen des Service-Schalter in Verbindung mit den
                         Multi-Sketchen (WLAN/GSM/LTE)
                   – Aus-/Anschalten der Versorgungsspannung
     

  • Im Dauerbetrieb: Beide Jumper in Position “0” (Richtung USB-Buchse gesteckt.)

 

Beispielkonfiguration STM32F411CE, FTDI an COM5 mit Arduino IDE 2.2.1:

 

Bezug FTDI-Adapter:

Bild Bezugsquelle Preis ab Suchbegriffe* Bemerkungen
 beelogger FTDI eBay 1,50€ FTDI Adapter Modul FTDI-Adapter muss die Möglichkeit bieten, auf eine Spannung von 3,3V umzustellen  und
die DTR-Leitung an der Anschlussleiste verfügbar haben.

Tabelle 1:  FTDI-Adapter
Achtung: Der Jumper oder Schalter auf dem FTDI-Adapter ist nicht zwangsläufig für die Umstellung der Spannung am VCC-Pin vorgesehen. Teilweise dienen diese Einsteller nur für die Pegelumstellung 3,3V/5V der Schnittstelle.
Der Einsteller muss auf 3,3V eingestellt werden.

 *Einkaufstipps

 

Beschaltung FTDI-Adapter

Der FTDI-Adapter wird mit dem FTDI-Header des beelogger-STM32 verbunden. Wie die Anschlüsse miteinander verbunden werden, findet sich in nachstehender Tabelle.

beelogger Solar FTDI Header

FTDI-Adapter beelogger-STM32 (FTDI-Header)
DTR  nicht belegt
RX TX
TX RX
   nicht belegt
CTS  nicht belegt
GND GND

Tabelle 2: Verbindung beelogger-STM32 am FTDI-Adapter


Der beelogger-STM32 wird über den geladenen Li-Ion Akku (min. 4,0V) versorgt.