Hallo, ich habe ein neues Bluepill-Board und einen ST-Link. Nach einigen Bemühungen ist es mir nun gelungen, den STM32DUINO-Bootloader auf dem Board zu installieren. Dazu habe ich den ST-Link an das Board angebunden, den oberen Jumper (Reset-Knopf = unten) auf 1 gesetzt, den unteren auf 0, und dann mit st-flash den Bootloader von hier (https://github.com/rogerclarkmelbourne/STM32duino-bootloader) mit folgendem Befehl übertragen: st-flash --reset write generic_boot20_pc13.bin 0x8000000 Danach den oberen Jumper wieder auf 0 gesetzt und den ST-Link abgesteckt. Anschließend per micro-USB-Kabel an den PC angebunden. Das Board wird als Maple Board erkannt und bekommt die Gerätedatei /dev/ttyACM0 zugewiesen. Nun weiß ich aber nicht weiter. Der Bootloader äußert sich folgendermaßen: jedes Mal, wenn der µC resettet wird, leuchtet die PC13-LED ca. 1s lang schnell immer wieder auf. Danach passiert nichts mehr. Nur im Serial-Monitor kann ich den Congratulations-Sketch sehen, der mit dem Bootloader hochgeladen wurde. Wie kann ich aber nun über USB einen neuen Sketch aufspielen? Hier (http://stefanfrings.de/stm32/index.html#stm32duinoboot) steht, dass man während dem Upload Reset drücken soll. Das funktioniert aber auch nicht, weder wenn ich gedrückt halte noch wenn ich loslasse. Jumper-Positionen habe ich auch schon mit dem oberen Jumper auf 0 und 1 ausprobiert. Ich weiß absolut nicht, was ich falsch gemacht habe.
> jedes Mal, wenn der µC resettet wird, leuchtet die PC13-LED ca. > 1s lang schnell immer wieder auf. Danach passiert nichts mehr. Während dieser Sekunde ist der Bootloader aktiv. Danach nicht mehr, denn danach läuft das installierte Programm. > Jumper-Positionen habe ich auch schon ... ausprobiert. Der STM32Duino Bootloader im Flash Speicher wird nur gestartet, wenn bder Jumper Boot0 auf Position 0 steckt (der andere Jumper ist egal). > Wie kann ich aber nun über USB einen neuen Sketch aufspielen? Zeige mal, welche Einstellungen du in der Arduino IDE vorgenommen hast und welche Fehlermeldung angezeigt wird. Hast du den Pull-Up Widerstand R10 korrigiert? Schau Dir das an: http://wiki.stm32duino.com/index.php?title=Uploading_a_sketch dort wird auch auf ein hilfreiches Video verwiesen. Falls Dir das alles zu umständlich/wackelig ist, bleibe beim seriellen Port oder kaufe Dir einen ST-Link Adapter.
Stefanus F. schrieb: >> jedes Mal, wenn der µC resettet wird, leuchtet die PC13-LED ca. >> 1s lang schnell immer wieder auf. Danach passiert nichts mehr. > > Während dieser Sekunde ist der Bootloader aktiv. Danach nicht mehr, denn > danach läuft das installierte Programm. Das heißt, beim Flashen muss ich direkt davor den µC resetten, wobei der obere Jumper auf 0 ist, richtig? >> Wie kann ich aber nun über USB einen neuen Sketch aufspielen? > > Zeige mal, welche Einstellungen du in der Arduino IDE vorgenommen hast > und welche Fehlermeldung angezeigt wird. Siehe Anhang. Das "Done." am Ende der Ausgabe kommt auch immer sofort, da lädt nichts. > Hast du den Pull-Up Widerstand R10 korrigiert? Ich dachte, das sei nur nötig, wenn der PC das Board gar nicht erkennt. Bei mir zeigt er das ja richtig an, nur das Flashen klappt nicht. Ich habe nämlich leider keine 1.8kOhm da, nur 2kOhm. Und ich weiß halt nicht, ob das genau genug ist. Könnte das denn die Ursache sein? Und könnten parallel geschaltete 2kOhm das auch beheben oder nur 1.8kOhm? > Schau Dir das an: > http://wiki.stm32duino.com/index.php?title=Uploadi... dort wird > auch auf ein hilfreiches Video verwiesen. Danke, ich lese es mir einmal durch. Wobei da der Bootloader ganz anderes ausgibt. Was mir auch noch aufgefallen ist: wenn ich genau das gleiche Script mit denau den gleichen Argumenten in einer Konsole aufrufe, bekomme ich folgenden Output:
1 | setRTS(): TIOCMSET: Protocol error |
2 | Failed to open serial device. |
3 | dfu-util 0.7 |
4 | |
5 | Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc. |
6 | Copyright 2010-2012 Tormod Volden and Stefan Schmidt |
7 | This program is Free Software and has ABSOLUTELY NO WARRANTY |
8 | Please report bugs to dfu-util@lists.gnumonks.org |
9 | |
10 | Filter on vendor = 0x1eaf product = 0x0003 |
11 | No DFU capable USB device found |
12 | Waiting for /dev/ttyACM0 serial...Done |
Da findet er also noch nicht einmal das Gerät sofort.
Stefanus F. schrieb: > Falls Dir das alles zu umständlich/wackelig ist, bleibe beim seriellen > Port oder kaufe Dir einen ST-Link Adapter. Ich habe ja bereits einen ST-Link. Aber ich finde es eigentlich einfacher, wenn man das direkt über den USB-Port zum Laufen kriegt. Naja, wenn es aber nicht will, werde ich doch nur den Adapter nehmen. Danke auf jeden Fall für deine Hilfe.
> Das heißt, beim Flashen muss ich direkt davor den µC resetten, > wobei der obere Jumper auf 0 ist, richtig? Ja 2k Ohm sind sicher auch Ok. Hast du als normaler User Schreibzugriff auf /dev/ttyACM0? Falls nciht, kontrolliere mal die UDEV rules: http://wiki.stm32duino.com/index.php?title=Installation_on_Linux
Während ich versucht habe, dein Problem nachzuvollziehen, sind mir zwei Sachen aufgefallen: Mein /arduino-1.8.5/hardware/Arduino_STM32-master/tools/linux64/dfu-util hat die Version 0.7. Im Verzeichnis /arduino-1.8.5/hardware/Arduino_STM32-master/tools/linux/dfu-util liegt hingegen eine Version 0.8. Vielleicht musst du beim manuellen Aufruf die 32 Bit Version verwenden. Die ist auf jeden Fall wesentlich neuer.
Ich habe ein paar Fragen noch nicht beantwortet. Deine Einstellungen in der IDE sehen gut aus. Ob der Pull-Up Widerstand wirklich korrigiert werden muss, weiß ich nicht. Klar ist jedenfalls, dass 10k Ohm weit weg vom Sollwert sind. Und wenn dann noch Probleme mit der Kommunikation auftreten ist das doch eine der einfachsten Korrekturen, die man versuchen kann. Bei GitHub gibt es inzwischen eine Version 0.9 vom dfu-util. Das würde ich an deiner Stelle auch mal versuchen.
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.