Kann ich mbed für STM32F103(C8T6) verwenden?

Ich habe einige Erfahrung mit Arduino, aber für eines der Geräte möchte ich etwas mit mehr Leistung (RAM/CPU-Leistung) verwenden.

Ich habe schon herausgefunden, dass einige STM32F4 oder STM32F7 Modelle wirklich mit was ich brauche, da ich jedoch keine Erfahrung habe, habe ich ein (sehr billiges) STM32F103C8TT6 Evaluation Board gekauft.

Ich habe es noch nicht, aber ich lese Informationen darüber. Ich bin auf mbed gestoßen, was eine sehr einfache Möglichkeit zu sein scheint, es zu programmieren.

In der Liste der Boards sehe ich jedoch keine Evaluierungsboards, hauptsächlich NUCLEOs oder Discovery-Versionen.

Kann man es noch verwenden? (z. B. durch Auswahl des 'ähnlichen' NUCLEO F103RB' oder unterstützt mbed nur NUCLEOs (und viele andere ARM-Core-Geräte)?

Der Grund dafür ist, dass, wenn das Evaluierungsboard mbed nicht unterstützt, es keine wirklich gute Alternative ist, um zu versuchen, ob ich mbed später trotzdem auf der eigentlichen STM32-Version verwenden kann, die ich möchte.

MBED-Board-Definitionen gehen in der Regel etwas über die MCU selbst hinaus und umfassen Dinge wie Taktquellen, aber oft können Sie etwas erreichen, das im Wesentlichen funktioniert, und wenn Sie ein Makefile-Projekt für die Offline-Erstellung herunterladen, können Sie es dann vollständig an Ihre Hardware anpassen. Es gibt jedoch einige ziemlich extreme Kuriositäten bei bestimmten Aspekten.
@ChrisStratton Danke für die Bemerkung ... das heißt, es wäre ziemlich viel Aufwand für ein Bewertungsgremium, nur um zu "prüfen", ob die Plattform geeignet wäre ... aber vielleicht kann ich es nur verwenden, um mehr darüber zu erfahren ARM32 (da mein Wissen gegen Null geht).

Antworten (2)

Ja, du kannst. Sie können ein neues Projekt basierend auf NUCLEO F103RB erstellen und dann die vorkompilierte Bibliothek durch Quellen ersetzen. Dann können Sie in den Quellen Pin-Mappings neu definieren, um sie an Ihr spezifisches Board anzupassen. Bitte beachten Sie, dass ich dies nicht für STM-MCUs getan habe, aber vor ~ 2 Jahren habe ich es für mein benutzerdefiniertes nRF51-Board zum Laufen gebracht.

Die Idee ist, dass die MCU mit allen internen Peripheriegeräten gleich bleibt, Sie haben nur Pins, die etwas anders verdrahtet sind. Zusätzliche Änderungen können erforderlich sein, wenn Ihr Board eine andere Taktquelle hat.

Danke ... das wäre super (brauche keine volle Funktionalität, nur zur 'Auswertung', aber wenn nur Pinnummern unterschiedlich sind, sollte das kein Problem sein (obwohl ich mir die noch nicht im Detail angeschaut habe) .
Es werden im Allgemeinen keine Pin-Nummern sein (anders als bei Arduino werden die tatsächlichen GPIO-Namen verwendet), sondern ein paar Dinge, wie z. B. wo sich eine eindeutig bezeichnete LED oder ein Schalter befinden könnte. Das kann man oft ignorieren. Taktungsprobleme, die Sie möglicherweise nicht ignorieren können - es ist möglich, dass es einfach funktioniert, aber Sie müssen wirklich genau untersuchen, was ihr Code tut.

Ja, jemand hat eine Bibliothek für mbed erstellt, die die notwendige Taktinitialisierung und Pin-Definitionen für den STM32F103C8 enthält. Informationen und ein "Hello World"-Beispiel finden Sie hier:

https://developer.mbed.org/users/hudakz/code/STM32F103C8T6_Hello/

Um die vom mbed-Online-Compiler erstellte Firmware-Binärdatei auf das Board zu flashen, benötigen Sie einen USB-zu-Seriell-Adapter und verwenden dann das Programm stm32flash , um den Upload durchzuführen. Der USB-zu-Seriell-Adapter wird mit den Pins PA_9 und PA_10 (seriell 1) 3V3 und GND verbunden. Setzen Sie dann Pin BOOT0 auf HIGH und drücken Sie Reset, um den integrierten seriellen Bootloader zu aktivieren und den Upload zu starten:

stm32flash -w my_firmware.bin -v -g 0x /dev/ttyUSB0

Sie können auch ein anderes STM-Board mit einer ST-Link-Schnittstelle verwenden, um die Firmware zu flashen, aber das habe ich noch nicht ausprobiert.

Es gibt auch einen Bootloader , mit dem Sie DFU verwenden können, aber ich konnte ihn noch nicht zum Laufen bringen.

Vielen Dank für diese Info! Ich habe bereits einen USB-zu-Seriell-Adapter, also bin ich bereit zu gehen (will aber auch zuerst einige andere Dinge erledigen).