Ich habe diverse China-Exemplare der Bluepill und kann sie alle problemlos über ST-Link mit CubeIDE und Arduino IDE (STM32duino https://github.com/stm32duino) programmieren. Der R für den USB-Port ist auch immer 1k5. Ich möchte es aber auch mit der Arduino IDE und dem USB-Bootloader ausprobieren. Komme aber seit Stunden nicht weiter. Es gibt diverse Anleitungen. Wie https://cool-web.de/arduino/stm32duino-bootloader-flashen-fuer-usb-zugriff-auf-stm32.htm https://mischianti.org/stm32-programming-stm32f1-via-usb-with-stm32duino-boot-loader-2/ https://www.forward.com.au/pfod/ArduinoProgramming/STM32/index.html https://www.pcb-hero.com/blogs/lickys-column/how-to-upload-stm32f103c8t6-usb-bootloader-program-stm32-blue-pill-via-usb https://www.sgbotic.com/index.php?dispatch=pages.view&page_id=48 Alle sind mehr oder weniger ähnlich und nutzen entweder https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pc13.bin oder auch einen HID https://github.com/Serasidis/STM32_HID_Bootloader/releases Ich brenne die BINs mit dem CubeProgrammer (auch das klappt und auch mit anderen BINs). Das mit dem HID klappt gar nicht, da wird kein Gerät in Windows erkannt. Mit dem generic_boot20_pc13.bin klappt so halb: Auf dem einen Windows (beides Win 11) wird nach der Treiberinstallation "Maple Serial" angezeigt, bei dem anderen "Serielles USB-Gerät" - merkwürdig Aber es klappt dann einmal ein Programm zu übertragen mittels Methode "Maple DFU Bootloader 2.0" in Arduino. Danach ist der Bootloader zwar wohl noch im STM32 (die Status-LED blinkt mehrmals schnell) aber der COM-Port verschwindet einfach aus dem Geräte-Manager. Danach wird ein Unbeanntes Gerät angezeigt und wenn ich Reset an der Bluepill drücke, ist gar kein Port und keine Fehlermeldung mehr da. Ich muss dann das BIN neu brennen. Ist ja wohl nicht Sinn der Sache. Hat jemand eine Idee?
Da dein Pull-up nicht geschaltet ist, musst du eventuell immer das USB Kabel abstecken und wieder anstecken, damit Windows das Gerät neu (als Maple Bootloader) erkennt. Wenn dein Board eine eigene Stromversorgung hat, musst du beim Anstecken zugleich auch noch den Reset Taster drücken. Der Maple Bootloader ist nur sehr kurz nach dem Reset aktiv, bevor er dein Programm startet. In dieser kurzen Zeitspanne muss Windows das USB Gerät erkennen und den Treiber laden, und du musst den Upload starten. In dem Moment wo dein Programm startet ist der Bootloader beendet. Das funktioniert alles sehr hakelig. Deswegen kann ich den Maple Bootloader nicht empfehlen. Dein eigenes Programm hat keinen USB Support weil du das so in der Arduino IDE eingestellt hast. Siehe auch http://stefanfrings.de/stm32/stm32f1.html
:
Bearbeitet durch User
Jürgen schrieb: > Komme aber seit Stunden nicht weiter. Lohnt sich der Aufwand, da du ja einen ST-Link hast, mit dem man nicht nur flashen sondern auch debuggen kann, was eh viel besser ist...
Nemopuk schrieb: > Der Maple Bootloader ist nur sehr kurz nach dem Reset aktiv, bevor er > dein Programm startet. In dieser kurzen Zeitspanne muss Windows das USB > Gerät erkennen und den Treiber laden, und du musst den Upload starten. > In dem Moment wo dein Programm startet ist der Bootloader beendet. > Ernsthaft? Warum lese ich nirgends was darüber? Also ich bekomme es nicht hin, Reset zu drücken und den Zeitpunkt abzupassen. Wie soll das gehen? Nemopuk schrieb: > Das funktioniert alles sehr hakelig. Deswegen kann ich den Maple > Bootloader nicht empfehlen. Gibt's 'ne Alternative? Nemopuk schrieb: > Dein eigenes Programm hat keinen USB Support weil du das so in der > Arduino IDE eingestellt hast. Schon klar. Ich will erst einmal die Basics erkunden. Hat auch nichts damit zu tun, was besser sein mag.
:
Bearbeitet durch User
Jürgen schrieb: > Gibt's 'ne Alternative? ST-Link, oder nicht den allerersten Ur-STM32 nehmen, sondern einen etwas moderneren - die haben einen funktionierenden USB-Bootloader im ROM, den man über den BOOT0-Pin aktiviert. Kann man auch nicht versehentlich löschen/überschreiben.
:
Bearbeitet durch User
Jürgen schrieb: > Ernsthaft? Warum lese ich nirgends was darüber? Ja ernsthaft. Es gibt jur nich wenige Infos dazu, weil der Hersteller Leaflabs den Support für due Maple Board vor 10 Jahren beendet hat. Danach gab es noch ein bisschen Flickwerk von Roger Ckarks (steht übrigens auf der genannten Webseite). > Gibt's 'ne Alternative? Modernere Mikrocontroller. Man muss ja nicht unbedingt den allerersten STM32 nehmen. Der STM32F303 ist als Nachfolger angetreten und enthält ab Werk einen anderen (unproblematischen) Bootloader.
:
Bearbeitet durch User
Nemopuk schrieb: > Der STM32F303 ist als Nachfolger angetreten Hm, sicher? Der ist ja ein Cortex-M4 und auch für "mixed signal" konzipiert, und mittlerweile auch schon älter. Sind die Nachfolger nicht eher zwischen STM32G0, STM32G4 und STM32U3 zu suchen?
Wie so oft beim Basteln: es geht nicht darum, was besser ist etc., sondern was einen gerade interessiert. Ich will und werde nicht zu irgendwas wechseln, nur weil es neu ist. Irgendwie haben die Leute das ja "damals" in der guten alten Zeit auch mit dem Bootloader hinbekommen. Warum sollte es also nicht gehen?
Jürgen schrieb: > Warum sollte es also nicht gehen? Es geht schon, aber ist es sinnvoll/praktikabel? Ändere doch den Sourcecode des Bootloaders damit er länger aufs Verbinden wartet, oder endlos wartet falls beim Start ein Input-Pin gesetzt war (ähnlich BOOT0-Pin). Bei der Gelegenheit, falls du es noch nicht kennst: https://www.mikrocontroller.net/articles/USB-Tutorial_mit_STM32 zur Arbeit mit USB beim STM32F1.
Niklas G. schrieb: >>Der STM32F303 ist als Nachfolger angetreten > Hm, sicher? https://www.st.com/resource/en/application_note/dm00073522-migrating-from-stm32f1-series-to-stm32f3-series-microcontrollers-stmicroelectronics.pdf Die G Serie ist noch neuer und wird sicher wiederum bald wiederum Nachfolger haben.
:
Bearbeitet durch User
Jürgen schrieb: > Warum sollte es also nicht gehen? Es geht ja, nur sehr hakelig. Mich hat der Maple Bootloader nicht überzeugt.
Nemopuk schrieb: > https://www.st.com/resource/en/application_note/dm00073522-migrating-from-stm32f1-series-to-stm32f3-series-microcontrollers-stmicroelectronics.pdf Interessant, mir scheint aber dass der F303 eher als Upgrade (mit guter Kompatibilität) denn als Ersatz gedacht ist; ein leistungsmäßig (und preismäßiger?) direkter aber modernisierter Ersatz für den F103 scheint nicht wirklich zu existieren. Ist vielleicht auch gar nicht nötig, weil die moderneren Serien die Grenzen einfach nur woanders gelegt haben aber dennoch alles abdecken. Nemopuk schrieb: > Mich hat der Maple Bootloader nicht > überzeugt. Mich auch nicht; als der damals noch aktuell war, hab ich ihn auch nicht benutzt und die Maple IDE schon gar nicht.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.


