STM32 Nucleo DFU

Gast #5344986
Lesenswert?

Hallo Zusammen,

ich habe eine STM32L476RG Nucleo mit eingebautem ST-LINK.
http://www.st.com/en/evaluation-tools/nucleo-l476rg.html

Wie kriege ein *.dfu binary auf die MCU?

Ich habe versucht, das dfu-util zu installieren, aber
1
dfu-util -l

zeigt keine Devices an:

dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Kann man über den ST-Link eine DFU-Datein flashen?
Gast #5345035
Lesenswert?

Noch eine kleine Ergänzung zu den Hardware-Pins. Diese sind auf den 
Evalboards verschieden, bzw. sind die Bootpins meist nicht auf dem PCB 
aufgedruckt.

Hier findet sich eine Übersicht für die gängigen STM32-Boards am 
Beispiel Micropython (spielt keine Rolle, da es ja nur um das Übertragen 
des DFU Files geht) 
https://www.14core.com/flashing-bootloading-stm32-arm-with-micropython/
Gast #5345067
Lesenswert?

Der Programmer für das Board hat den STLink + das mbed MSD drauf, damit 
meldet sich sich das Board am PC als Massenspeicher an. Zum 
Programmieren muss nur das binary auf dieses Laufwerk kopiert werden.
Was soll das *.dfu file denn enthalten?
Damit das Target per dfu_util programmiert werden kann muss da erstmal 
ein Bootloader drauf und du musst eine USB Buchse anschliessen. Die 
Buchse am Board geht an den STLink, die hat keine direkte Verbindung zum 
Target.
Gast #5345077
Lesenswert?

>Der Programmer für das Board hat den STLink + das mbed MSD drauf, damit
>meldet sich sich das Board am PC als Massenspeicher an. Zum
>Programmieren muss nur das binary auf dieses Laufwerk kopiert werden.
>Was soll das *.dfu file denn enthalten?

Um bei dem Beispiel Micropython zu bleiben:
Für das STM32L476RG Nucleo gibt es ein fertig compiliertes DFU-File:
https://micropython.org/download#other

>meldet sich sich das Board am PC als Massenspeicher an.
Ich habe das DFU-File mal da reingeschoben. Es passiert nichts.
Gast #5345120
Lesenswert?

>Ich werfe noch mal einen Link in die Runde, als Ergänzung zu dem was
>Johannes gesagt hat. Man muss sich die USB-Verbindung zwischen PC und
>dem STM32-Hauptcontroller erst einmal herstellen. Wie Johannes gesagt
>hat, ist der USB-Anschluss auf dem Nucleo nur mit dem ST-Link verbunden.

>https://mobilewill.us/stm32-nucleo-and-dfu-usb-bootloading/

Danke für den Link, das ist sehr gut dokumentiert.

Mir ist das jetzt aber alles zu kompliziert. Jedesmal, wenn ich dieses 
Nucleo-Board in die Hand nehme, geht irgendwas nicht.
Ich werf's erst mal wieder in die Ecke. Soll es da schmoren :-(
Gast #5345134
Lesenswert?

Die Nucleo Boards sind eigentlich sehr gut und die zugehörige Software 
arbeitet zuverlässig. Ich fürchte, du musst Dir ein anderes Hobby suche, 
wenn diese bei Dir so viel Frust auslösen.

Oder du übst Dich in Geduld. Vielleicht helfen Dir meine Notizen zum 
STM32F1, das ist zwar eine andere Serie aber was dort steht gilt 
weitgehend auch für Dein Modell. http://stefanfrings.de/stm32/index.html
Gast #5345151
Lesenswert?

Es geht ja vermutlich nicht um das Board sondern darum microPython 
darauf zu bringen.
Im Prinzip sollte das gehen mit dem richtigen bin file. Und man kann die 
Quellen evtl. so ändern das nicht direkt über den eigenen USB sondern 
über den VCOM des STLink kommunziziert wird. Habe das microPython nur 
kurz überflogen, die Portierungen sind da nicht dokumentiert? Da wird es 
aber auch Foren geben wo das schnell beantwortet werden kann.

bzw. ist auf dieser Seite ein Absatz zur Programmierung mit dem ST-Link:
https://github.com/micropython/micropython/tree/master/ports/stm32
Gast #5345744
Lesenswert?

>Die Nucleo Boards sind eigentlich sehr gut und die zugehörige Software
>arbeitet zuverlässig. Ich fürchte, du musst Dir ein anderes Hobby suche,
>wenn diese bei Dir so viel Frust auslösen.

Oha, starke Worte.
Python wurde mit dem Anspruch an Einfachheit entwickelt. Das Prinzip der 
Einfachheit ist ein Gutes. Die Nucleo-Boards den Nucleo-Boards öffnet 
sich beim einstecken ja das Massespeicherfenster. Einfach wäre es also, 
ein vorkompiliertes Binärfile dort hineinzuschieben. Fertig, läuft. Eine 
Sache von 3 Minuten. Aber nein, so soll es nicht sein.
Diese ewige Akzeptanz der Softwarenachlässigkeit führt genau zu dieser 
Imperfektion.

Ein Vorschlag: gibt Dir 15 Minuten um Micropython auf dem Board zu 
installieren. Wenn Du es bis dahin nicht schaffst, wirf den kleinen 
Zeitfresser aus dem Fenster.

Schon etwas älter, aber immer noch mit viel Wahrheit:
https://www.youtube.com/watch?v=BKfTlJ06Eu0
Gast #5345813
Lesenswert?

> Einfach wäre es also, ein vorkompiliertes Binärfile dort
> hineinzuschieben. Fertig, läuft.

So funktioniert das auch, wenn du ein *.bin File verwendest. Diese 
Möglichkeit, Firmware hoch zu laden, unterstützen auch viele andere 
Boards anderer Hersteller.

Wenn deine Python Software kein passendes File bereit stellt, dass ist 
dein Python wohl doch nicht so einfach. Dafür jetzt das Nucleo Board in 
die Ecke zu werfen ist der falsche Weg. Das kann nichts dafür.

> gibt Dir 15 Minuten

Ich halte sehr viel mehr Geduld für angemessen. Mit der Einstellung 
wirst du keine brauchbare Software entwickeln.

> Diese ewige Akzeptanz der Softwarenachlässigkeit

welche von ungeduldigen Leuten mit dieser Einstellung produziert 
wird....

Denk mal drüber nach.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren