Der STM32 besitzt eine 32Bit ARM-Cortex-M3-Architektur und arbeitet mit einer Taktfrequenz von 72 MHz.
Es werden 64 KB (manchmal auch 128 KB) Flashspeicher und zusätzlich 20 KB RAM zur Verfügung gestellt.
Zudem beinhaltet das Board eine mit einem separaten Quarz auf 32 MHz getaktete Echtzeituhr (RTC).
Der Mikrocontroller unterstützt regulär ein Logiklevel von 3,3V. Es sind zwar auch 5V möglich, wobei
einige, aber nicht alle Pins 5V vertragen.
Das Board verfügt über mehrere serielle Ports, und über mehrere SPI- und I2C-Busanschlüsse (siehe
folgende Abbildung) sowie einen ADC mit 12-Bit-Auflösung.
Eine eingebaute LED ist ebenfalls vorhanden und befindet sich am Pin PC13.
Das Reference Manual von STMicroelectronics
sollte alle weiteren Detailfragen beantworten.
Allerdings hat der STM32 keine serielle UART-Schnittstelle zum Programmieren, man muss also mit einem seriellen Adapter (FTDI-Adapter) arbeiten. (siehe weiter unten)
Darauf achten, dass je nach FTDI-Board die Pins etwas anders sein können!
STM32 | FTDI |
---|---|
GND | GND |
5V | VCC (Jumper auf 5V stellen!) |
A9 | Rx |
A10 | Tx |
Um den STM32 programmieren zu können, muss er noch in den Programmiermodus gesetzt werden. Dies geschieht durch das Umstecken des oberen gelben Jumper (BOOT0) von Position 0 auf 1. Danach muss noch die RESET-Taste gedrückt werden. Der untere Jumper BOOT1 bleibt unverändert.
Dank der Community STM32duino ist es möglich den STM32 vollständig in die Arduino-IDE zu integrieren:
Nun geht man in Menupunkt Werkzeuge > Board > Boardverwalter, sucht nach Arduino SAM Boards (ARM Cortex-M3) und installiert diesen Board-Manager:
Nun geht man auf https://github.com/rogerclarkmelbourne/Arduino_STM32
und lädt sich das gesamte Paket als ZIP-Archiv herunter (ca. 43MB). Anschließend entpackt man das Archiv und verschiebt den so entstandenen Ordner
Arduino_STM32 in das Sketchbook-Verzeichnis der Arduino-IDE. (Unter Windows: C:\Users\BENUTZER\Documents\Arduino\hardware). Falls der Unterordner
hardware nicht existieren sollte, dann muss er manuell angelegt werden. Nun muss die Arduino-IDE neu gestartet werden.
Unter dem Menupunkt Werkzeuge > Board kann nun das richtige Board mit den entsprechenden Optionen ausgewählt werden:
void setup()
{
pinMode(PC13, OUTPUT); // internal LED
}
void loop()
{
digitalWrite(PC13, !digitalRead(PC13));
delay(1000);
}
Leider ist bei vielen STM32-Boards ein Fehler mit einem Pullup eingebaut: Problembeschreibung und Lösungsansätze können auf amitesh-singh.github.io gefunden werden.
zurück