Forum: Mikrocontroller und Digitale Elektronik ST-Link neu flashen


von Hans-Georg L. (h-g-l)


Lesenswert?

Ich hatte ein Nucleo-F746Zg Board auf J-Link umkonfiguriert und weil der 
J-Link in meiner Eclipse-mcu nicht richtig funktioniert hat habe ich ihn 
mit den Segger STLinkRefresh wieder zurück gesetzt. Nun funktioniert es 
leider nicht mehr und wird vom STLinkRefresh und vom STM 32 Link Utility 
nicht mehr erkannt. Windows kann auch keinen Treiber dafür mehr 
installieren.

Als Ursache habe ich jetzt herausgefunden, das die PID falsch ist: 3752.
Ich habe noch 3 andere Nucleoboards die einwandfrei funktionieren mit 
der  PID 374B.

Die PID 3752 ist scheinbar für ein ST-Link ohne USB-Massenspeicher 
support.

Wie bekomme ich die richtige PID und evtl auch die richtige Firmware mit 
USB MSD in den ST-Link Controller ?

von Kreuzwort Rätsel (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Wie bekomme ich die richtige PID und evtl auch die richtige Firmware mit
> USB MSD in den ST-Link Controller ?

Mit dem ST-LINK Utility Controller explizit löschen (evtl dabei Reset
per Hand betätigen) und mit einem Bin-Image neu programmieren.

http://e.pavlin.si/2016/02/28/how-to-program-blank-stm32f1-with-stlink-v2-firmware/

von Hans-Georg L. (h-g-l)


Lesenswert?

Kreuzwort Rätsel schrieb:
> Hans-Georg L. schrieb:
>> Wie bekomme ich die richtige PID und evtl auch die richtige Firmware mit
>> USB MSD in den ST-Link Controller ?
>
> Mit dem ST-LINK Utility Controller explizit löschen (evtl dabei Reset
> per Hand betätigen) und mit einem Bin-Image neu programmieren.
>
> 
http://e.pavlin.si/2016/02/28/how-to-program-blank-stm32f1-with-stlink-v2-firmware/

Vieleicht habe ich mich undeutlich ausgedrückt ...

Es geht n icht um den STMF746 Controller sondern um den STMF103 
Controller vom St-Link der nicht mehr funktioniert. Er wird ja nicht 
mehr von Windows richtig erkannt und vom ST Linkk Utility auch nicht.

von Möbius (Gast)


Lesenswert?

> ... STLinkRefresh ...

Was sagt denn der Hersteller dieser "Software" dazu?

von silsi (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Es geht n icht um den STMF746 Controller sondern um den STMF103
> Controller vom St-Link der nicht mehr funktioniert. Er wird ja nicht
> mehr von Windows richtig erkannt und vom ST Linkk Utility auch nicht.

Kreuzworträtsel meint, du sollst den F103 an einem anderen Programmer 
als den zu programmierenden/löschenden MCU anhängen und so dann das bin 
hochladen (auf den F103)

von Hans-Georg L. (h-g-l)


Lesenswert?

silsi schrieb:
> Hans-Georg L. schrieb:
>> Es geht n icht um den STMF746 Controller sondern um den STMF103
>> Controller vom St-Link der nicht mehr funktioniert. Er wird ja nicht
>> mehr von Windows richtig erkannt und vom ST Linkk Utility auch nicht.
>
> Kreuzworträtsel meint, du sollst den F103 an einem anderen Programmer
> als den zu programmierenden/löschenden MCU anhängen und so dann das bin
> hochladen (auf den F103)

Da muss ich erstmal die Pins zum programmieren suchen und hoffen das der 
F103 auf SWD konfiguriert ist.

von Stefan F. (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Da muss ich erstmal die Pins zum programmieren suchen und hoffen das der
> F103 auf SWD konfiguriert ist.

Bei allen STM32 Mikrocontrollern ist die SWD Schnittstelle während des 
Reset ansprechbar.

von Hans-Georg L. (h-g-l)


Lesenswert?

Möbius schrieb:
>> ... STLinkRefresh ...
>
> Was sagt denn der Hersteller dieser "Software" dazu?

Das ist ein kostenloses Tool ohne Garantie.

Von denen ist ein Mitarbeiter hier im Forum unterwegs vieleicht weiss 
der ja was.

von Kreuzwort Rätsel (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Es geht n icht um den STMF746 Controller

Habe ich irgendwas von einem STMF746 gesprochen?

Ich denke du verstehst überhaupt nichts.

von Hans-Georg L. (h-g-l)


Lesenswert?

Kreuzwort Rätsel schrieb:
> Hans-Georg L. schrieb:
>> Es geht n icht um den STMF746 Controller
>
> Habe ich irgendwas von einem STMF746 gesprochen?
>
> Ich denke du verstehst überhaupt nichts.

Deswegen musst du nicht gleich pampig werden ...

Du hast etwas vom Reset Knopf geschrieben und den hat der St-Link 
Controller nicht sondern nur der F7 auf dem eigentlichen Nucleo Board. 
Und ob die Programierpins der F103 ohne weiteres zugänglich sind muss 
ich auch erst einmal herausfinden.

von pegel (Gast)


Lesenswert?

Der link in der ersten Antwort passt schon - fast.
Nur das es um einen V2 geht und nicht um V2-1.

Vielleicht kommt irgendwann einmal ein günstiges Nucleo-32 Board zum 
Einsatz, der nur einmal programmiert werden muss.
Dem kannst du dann den V2-1 Chip "entwenden".

von Hans-Georg L. (h-g-l)


Lesenswert?

Ich habe ja insgesamt 4 Nucleo Boards .. also an ST-Links fehlt es mir 
nicht ;-) Wäre nur schade den ST-Link einfach abrechen und wegwerfen.

von pegel (Gast)


Lesenswert?

Das schon, aber eine öffentliche Lösung konnte ich für das Problem bis 
jetzt nicht finden. :(

von Hans-Georg L. (h-g-l)


Lesenswert?

ich habe bisher nur das hier gefunden :

https://lujji.github.io/blog/reverse-engineering-stlink-firmware/

Da steht beschrieben wie man an das bin file kommt.

Ich kann auch mal probieren ob ich windows überlisten kann mit einem inf 
file, das auch die andere PID frisst und die USB treiber lädt.

von Stefan F. (Gast)


Lesenswert?

Guck mal in den Schaltplan 
https://www.st.com/content/ccc/resource/technical/document/user_manual/98/2e/fa/4b/e0/82/43/b7/DM00105823.pdf/files/DM00105823.pdf/jcr:content/translations/en.DM00105823.pdf 
auf Seite 65.

Die Pins Boot0, PA9 und PA10 sind gut zugänglich. Damit kannst du ihn 
über den seriellen Bootloader retten. Anleitung: 
http://stefanfrings.de/stm32/stm32f1.html#boot

von Kreuzwort Rätsel (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Da steht beschrieben wie man an das bin file kommt.

Jaja, träum weiter. Für die meisten ungeeignet.

Hier

Beitrag "Re: ST-Link neu flashen"

habe ich bereits einen Link gegeben wo man einfach ein Binary
bekommt ohne selbst in mehreren Tagen Reverse-Engineering
unterzugehen.

von pegel (Gast)


Lesenswert?

Kreuzwort Rätsel schrieb:
> habe ich bereits einen Link gegeben

Jo, funktioniert. Mein Bluepill Board behauptet jetzt ein ST-Link V2 zu 
sein.
Auch ein Update auf die neueste Firmware hat funktioniert.


Interessant ist aber auch, dass die Java .class Dateien vom 
CubeProgrammer nicht verschlüsselt sind, und sich mit dem Decompiler 
anschauen lassen.

Ob man damit irgend wie die firmare .bin verstehen kann?

von Hans-Georg L. (h-g-l)


Lesenswert?

@ Kreuzwort Rätsel
Danke für den Hinweis auf das bin File.

@ Stefanus
Leider ist der RX pin nicht frei sondern mit der zweifarbigen Led 
verbunden.


Aber die SWD pins und der Reset liegen auf den mit "Reserved" 
bezeichneten Lötbrücken auf der Unterseite der Platine. Leider stimmen 
die Bezeichnungen im Schaltplan nicht mit dem Bestückungsaufdruck 
überein. Werde ich Morgen mal genau ausklingeln.

von Kreuzwort Rätsel (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> @ Kreuzwort Rätsel
> Danke für den Hinweis auf das bin File.

Das lässt darauf schliessen dass du primär herumlabern willst
aber zunächst die gegebenen Anwtorten nicht liest oder nicht
lesen willst.

von Hans-Georg L. (h-g-l)


Lesenswert?

Kreuzwort Rätsel schrieb:
> Hans-Georg L. schrieb:
>> @ Kreuzwort Rätsel
>> Danke für den Hinweis auf das bin File.
>
> Das lässt darauf schliessen dass du primär herumlabern willst
> aber zunächst die gegebenen Anwtorten nicht liest oder nicht
> lesen willst.

Du solltest mal dringend an deiner sozialen Kompetenz arbeiten!

Aber das bürgert sich ja leider immer mehr hier ein ...

von Stefan F. (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> Leider ist der RX pin nicht frei sondern mit der zweifarbigen Led
> verbunden.

Ich denke nicht, dass das ein Hindernis ist. Dann flackert die halt mit 
- so what?

> Aber die SWD pins und der Reset liegen auf den mit "Reserved"
> bezeichneten Lötbrücken auf der Unterseite der Platine.

Soweit ich mit bekommen habe, kannst du einfach die Firmware von einem 
funktionierenden Gerät kopieren, da du zwei weitere funktionsfähige 
vorliegen hast, richtig?

von Hans-Georg L. (h-g-l)


Lesenswert?

Die Pins fürs Programieren über einen zweiten ST-Link mit SWD sind auf 
der Unterseite der Platine an den Lötbrücken zugänglich.

Nucleo 144:
SWDIO -> SB109
SWCLK -> SB104
NRST  -> SB107

Nucleo 64:
SWDIO -> SB10
SWCLK -> SB6
NRST  -> SB11

Ich habe das obengenannte bin File programmiert aber es ist eine falsche 
Version und funktioniert für das Nucleo Board nicht. Die PID ist 3748 
anstatt 374B. Es wird auch kein Massenspeicher und keine virtuelle Com 
dafür installiert. Ebenfalls funktioniert die Blinki Demo die auf dem F7 
installiert ist, jetzt auch nicht mehr und selbst die Power Led geht 
nicht mehr an.
STLink Utility kann sich nicht damit verbinden. Das Update Tool macht 
etwas aber es ändert sich dadurch nichts.


@stefan
Die Firmware ist Read protected.

ps .. Ist ja auch kein Wunder
Der Clone hat ein ganz andere Pin Belegung !!!!!!

: Bearbeitet durch User
von Hans-Georg L. (h-g-l)


Lesenswert?

So es geht wieder :-)

Ich habe zuerst von hier:
https://github.com/Krakenw/Stlink-Bootloaders
den protected Bootloader 2.1 geflasht.

Und weil das aktuelle  STLink Utility nicht von einem leeren Flash 
updaten kann erst einma eine alte Firmware von hier :
https://drive.google.com/drive/folders/0Bzv7UpKpOQhnbXJVVEg4VUo2M1k
installiert.

Und dann nochmal mit dem neuen Utility upgedatet.

Es ist noch nicht alles 100%ig und immer noch eine falsche PID aber der 
Debugger läuft mit dem Attolic Studio und das reicht mir erst einmal.

: Bearbeitet durch User
von pegel (Gast)


Lesenswert?

Hans-Georg L. schrieb:
> anstatt 374B

biete ich 374a.

Wie mutig bist du?

Nachdem mein Bluepill ein ST-Link V2 gewesen ist, habe ich auch ein V2-1 
daraus gemacht und verschiedene Firmware geflasht.

Das funktioniert, aber nur teilweise, wobei die Frage ist, ob dass an 
meinem F103C8 an Stelle des originalen F103CB liegt, oder die Jungs das 
bewusst so programmiert haben das es nur mit ihrer Version richtig 
läuft.

Es gibt dazu ein russisches Projekt mit speziellem Bootloader und einem 
manipulierten ST-Link Utility.

Wenn du versprichst ausführlich zu berichten, gebe ich dir den link.

von pegel (Gast)


Lesenswert?

Mist! Eine Minute zu spät um einen Bericht zu erhalten. ;)

von Hans-Georg L. (h-g-l)


Lesenswert?

Das funktioniert nur wenn die gleiche Pinbelegung wie bei dem Nucleo 
Bord verwendet wird. Das war bei dem ersten Link nicht der Fall.

Da bleibe ich lieber bei ungepatchten Varianten ;-)

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
Noch kein Account? Hier anmelden.