Forum: Mikrocontroller und Digitale Elektronik ST LINK, Probleme beim Flashen


von Alexander M. (a_lexander)


Lesenswert?

Hallo Zusammen,

Vielleicht kann mir jemand bei folgendem Problem helfen... Doch ein 
bisschen aufwendiger zum erklären geworden...

Kurz zu meinem tatsächlichem Ziel:
Flashen einer neuen Firmware auf einen STM32F030K6-LQFP32

Mein Zwischenziel:
Flashen einer neuen Firmware auf folgendes Discovery Board durch einen 
externen ST-LINK-V2 Programmer
https://www.st.com/resource/en/user_manual/dm00039084-discovery-kit-with-stm32f407vg-mcu-stmicroelectronics.pdf

Varianten des externen ST-LINK-V2 Programmer
1. https://www.st.com/en/development-tools/st-link-v2.html
2. 
https://www.amazon.de/DollaTek-Cortex-M0-Schwimmen-Schnittstelle-Programmierer/dp/B07DK26Q5S
3. ST-LINK des Discovery Board: 
https://www.st.com/en/evaluation-tools/stm32f4discovery.html

Programmer Software: STM32-ST-LINK Utitliy
https://www.st.com/en/development-tools/stsw-link004.html


Nun zum Ablauf:
1. Programmieren des STM32 vom Discovery Board über den bereits 
verbauten ST-LINK funktioniert, sei es über die Jumper Wire oder über 
die SWD Stiftleiste (Seite 16, 
https://www.st.com/resource/en/user_manual/dm00039084-discovery-kit-with-stm32f407vg-mcu-stmicroelectronics.pdf)
Zur Programmierung habe ich folgende 4 Pins verwendet: 1. GND, 2. VCC, 
3. CLK (PA14), 4. SDIO (PA13)

2. Programmieren über die externe ST-LINK-V2 funktioniert nicht, da 
bekomme ich ständig den Fehler "USB Communication Error".
Zur Programmierung habe ich folgende 4 Pins verwendet: 1. GND, 2. VCC, 
3. CLK (PA14), 4. SDIO (PA13)

Vergebliche Fehlerfindung:
- Über verschiedene PCs den ST-LINK angesteckt --> selber Fehler
- verschiedene ST-LINKs (siehe oben) verwendet --> selber Fehler

Erkenntnis:
Scheint so, als ob zwischen dem internen ST-LINK und dem externen 
ST-LINK Unterschiede in der Ansteuerung wären.
Frage 1: Welche Unterschiede gibt es da? Benötige ich noch für eine ISP 
Programmierung einen extra Reset-Wire (Warum geht aber dann das 
Programmieren des Discovery Board über den verbauten ST-LINK über die 
Stiftleiste ohne Reset-Wire)? Welcher Pin wird dafür verwendet?

Wenn die Frage zu unklar ist, einfach melden...

Vielen Dank.

Grüße

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Alexander M. schrieb:
> Programmieren über die externe ST-LINK-V2 funktioniert nicht

Dazu müssen beide Jumper auf dem Disco Board entfernt werden.

von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> Wenn die Frage zu unklar ist, einfach melden...

Alexander M. schrieb:
> 2. Programmieren über die externe ST-LINK-V2 funktioniert nicht

Hast du die beiden Jumper CN3 für diesen Zweck abgezogen?

von jo mei (Gast)


Lesenswert?

Ach der Matze war etwas schneller ....

von Alexander M. (a_lexander)


Lesenswert?

Matthias S. schrieb:
> Alexander M. schrieb:
>> Programmieren über die externe ST-LINK-V2 funktioniert nicht
>
> Dazu müssen beide Jumper auf dem Disco Board entfernt werden.

Danke.

1. Hab über den bereits verbauten ST-LINK den STM32 über die SWD 
Schnittstelle programmieren können
2. Über einen "externen" ST-LINK gibt's aber den Fehler. Jumper wurden 
hier bereits entfernt...

Grüße

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Hast du dein Board mit Strom versorgt? (nicht vom externe ST-Link aus, 
der könnte zu schwach sein).

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Hast du dein Board mit Strom versorgt? (nicht vom externe ST-Link aus,
> der könnte zu schwach sein).

Mal mit externer Spannungsversorgung, mal ohne... Ging beides nicht.

Anbei ein JPG von dem aktuellen Aufbau: Verkabelung ohne externe 
Spannungsversorgung. Die 2. Variante war mit externen 
Spannungsversorgung über den USB Port.

Um den Fehler vielleicht auszuschließen: ein 5. Kabel für den Reset wird 
hier nicht benötigt oder?

Grüße

von Uwe Bonnes (Gast)


Lesenswert?

Gehe an Pin 2 und 4 des 4-poligen ST-Link Steckverbinder.

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

Uwe Bonnes schrieb:
> Gehe an Pin 2 und 4 des 4-poligen ST-Link Steckverbinder.

Mit welchen Pins?

Anbei noch ein Pinout vom ST-LINK.
(https://www.waveshare.com/st-link-v2-stm8.htm)

Verwendete Pins: 19, 20, 9, 7

von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> ST-LINK___Discovery_Board.jpg

GND ist falsch angeschlossen, gehört an Pin 4, 6, 8 etc. des
ST-Link V2.

Discovery Board muss vom USB versorgt werden. Pin 1,2 des
ST-Link V2 ist die Sensor-Verbindung um die Versorgungs-
Spannung zu überwachen.

von Stefan F. (Gast)


Lesenswert?

Alexander M. schrieb:
> Anbei ein JPG von dem aktuellen Aufbau

> Um den Fehler vielleicht auszuschließen: ein 5. Kabel
> für den Reset wird hier nicht benötigt oder?

Genau das wollte ich gerade empfehlen, denn die SWD Schnittstelle kann 
von der Software deaktiviert werden (was bei Cube HAL Projekten die 
Standardvorgabe ist!). Außerdem ist die Schnittstelle in einigen Sleep 
Modi tot.

Mit einer Reset-leitung kannst du die Option "Connect On Reset" 
verwenden. Alternativ kannst du Boot0=HIGH setzen, um den Bootloader zu 
aktivieren. Dieser deaktiviert die SWD Schnittstelle nicht.

von jo mei (Gast)


Angehängte Dateien:

Lesenswert?

Alexander M. schrieb:
> ST-LINK-Pinout.jpg

"Mein" ST-Link hat eine völlig andere Pin-Belegung.

Ich habe mal die relevanten Pins markiert.

von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> Anbei noch ein Pinout vom ST-LINK.
> (https://www.waveshare.com/st-link-v2-stm8.htm)

Das ist was Modifiziertes von WaveShare, nicht original!
Schon an den Pin 4, 6, 8, 10 erkennbar die nicht mit Masse
belegt sind.

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

jo mei schrieb:
> Alexander M. schrieb:
>> Anbei noch ein Pinout vom ST-LINK.
>> (https://www.waveshare.com/st-link-v2-stm8.htm)
>
> Das ist was Modifiziertes von WaveShare, nicht original!
> Schon an den Pin 4, 6, 8, 10 erkennbar die nicht mit Masse
> belegt sind.

Okay Danke. Trotzdem bekomme ich's nicht hin...
Anbei die Verkabelung... Bei mir gibt's da einen Kurzschluss und das 
Beispielprogramm vom Discovery schaltet sich ab (LEDs gehen aus)

Vielleicht will mir da einer noch auf die Sprünge helfen...
Danke.

Grüße

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Alexander M. schrieb:
>> Anbei ein JPG von dem aktuellen Aufbau
>
>> Um den Fehler vielleicht auszuschließen: ein 5. Kabel
>> für den Reset wird hier nicht benötigt oder?
>
> Genau das wollte ich gerade empfehlen, denn die SWD Schnittstelle kann
> von der Software deaktiviert werden (was bei Cube HAL Projekten die
> Standardvorgabe ist!). Außerdem ist die Schnittstelle in einigen Sleep
> Modi tot.
>
> Mit einer Reset-leitung kannst du die Option "Connect On Reset"
> verwenden. Alternativ kannst du Boot0=HIGH setzen, um den Bootloader zu
> aktivieren. Dieser deaktiviert die SWD Schnittstelle nicht.

Mir fällt aber gerade auf, dass ich ja überhaupt nichts aktivieren / 
deaktivieren kann, weil ich ja den "USB Communication Error" bekomme, 
siehe Anhang... Also muss das noch von woanders kommen...

Grüße

von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> Bei mir gibt's da einen Kurzschluss

Dann hast du vielleicht einen Clone und keinen Original ST-Link,
wo dann deine Belegung stimmt. Das kann ich von hier aus natürlich
nicht riechen was du dir da an Land gezogen hast.

Alexander M. schrieb:
> Varianten des externen ST-LINK-V2 Programmer
> 1. https://www.st.com/en/development-tools/st-link-v2.html

... sagt mir: ein ST-Link von STM und nicht von woanders her!

von Alexander M. (a_lexander)


Lesenswert?

jo mei schrieb:
> Alexander M. schrieb:
>> Bei mir gibt's da einen Kurzschluss
>
> Dann hast du vielleicht einen Clone und keinen Original ST-Link,
> wo dann deine Belegung stimmt. Das kann ich von hier aus natürlich
> nicht riechen was du dir da an Land gezogen hast.
>
> Alexander M. schrieb:
>> Varianten des externen ST-LINK-V2 Programmer
>> 1. https://www.st.com/en/development-tools/st-link-v2.html
>
> ... sagt mir: ein ST-Link von STM und nicht von woanders her!

Jap, ist ein ST-Link von STM.

von A. B. (Gast)


Lesenswert?

Zur Info: Bei den älteren Disco-Boards mit STLink-V2 ist nur vorgesehen, 
ein externes Target ans interne STLink anzuschließen (steht so im UM 
drin!), nicht umgekehrt! Bei den neueren mit STLink-V3 ist das genau 
umgekehrt.

Deshalb: Der interne STLink muss hier tot gelegt werden: SB10.

von drm (Gast)


Lesenswert?

Ich sehe nur 4 Kabel: VCC,GND,SWDIO,SWCLK
lol, kein Reset angeschlossen.

von jo mei (Gast)


Lesenswert?

drm schrieb:
> lol, kein Reset angeschlossen.

Braucht es nicht.

von jo mei (Gast)


Angehängte Dateien:

Lesenswert?

Oh man!  (ouuuuu määääääään)

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

A. B. schrieb:
> Zur Info: Bei den älteren Disco-Boards mit STLink-V2 ist nur vorgesehen,
> ein externes Target ans interne STLink anzuschließen (steht so im UM
> drin!), nicht umgekehrt! Bei den neueren mit STLink-V3 ist das genau
> umgekehrt.
>
> Deshalb: Der interne STLink muss hier tot gelegt werden: SB10.

Danke. Hab ich zusammen gelötet. Nun wird das Board nur noch mit 
Spannung versorgt, es erfolgt aber keine Kommunikation mehr ("USB Gerät 
wurde nicht erkannt")

Trotzdem geht's immer noch nicht...

Mein aktueller Aufbau ist im Anhang...

Wer noch Ideen hat, bitte melden. Ich mach für heute Schluss...

von Alexander M. (a_lexander)


Angehängte Dateien:

Lesenswert?

jo mei schrieb:
> Oh man!  (ouuuuu määääääään)

berichtige mich:
Wo ist der Fehler zwischen deinem und meinem Aufbau? :D

VCC ist auf dem Bild auf 5V, bisher habe ich aber immer mit 3.3V 
versucht.

Grüße

: Bearbeitet durch User
von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> Wo ist der Fehler zwischen deinem und meinem Aufbau? :D

Du zeigst zwei verschiedene Aufbauten und siehst den Unterschied
nicht? Ich habe keinen Aufbau von mir gezeigt, nur deine
Schöpfung, und die habe ich kommentiert.

von Alexander M. (a_lexander)


Lesenswert?

Hallo,

Ich konnte mittlerweile den Fehler mit der "USB Communication error" 
Nachricht beheben:
Der ST-LINK hat eine veraltete Firmware, über den ST-LINK Utility musste 
ein Update aufgespielt werden. (Reiter ST-LINK --> Firmware updates)
Somit konnte ich nun auch eine Kommunikation mit dem Discovery Board 
aufbauen.

Nun geht's zum eigentlichen Mikrocontroller. Da bekomme ich jetzt den 
Fehler "Can't reset the core".

Kann damit jemand was anfangen bzw. weiß wie dieser Fehler zu beheben 
ist?

Grüße

von jo mei (Gast)


Lesenswert?

Alexander M. schrieb:
> Kann damit jemand was anfangen bzw. weiß wie dieser Fehler zu beheben
> ist?

Löse erst mal deine verwirrenden bzw widersprüchlichen Posts
von vorher auf.

Das wäre ein Gebot der Anständigkeit bzw Netiqette.

Ansonsten betrachte dich selbst als halbstarker Troll.

von Alexander M. (a_lexander)


Lesenswert?

jo mei schrieb:
> Alexander M. schrieb:
>> Kann damit jemand was anfangen bzw. weiß wie dieser Fehler zu beheben
>> ist?
>
> Löse erst mal deine verwirrenden bzw widersprüchlichen Posts
> von vorher auf.
>
> Das wäre ein Gebot der Anständigkeit bzw Netiqette.
>
> Ansonsten betrachte dich selbst als halbstarker Troll.

Hab ich das nicht im letzten Post :D?

Fehler war: Ich habe die Firmware des ST-LINK nicht auf den neuesten 
Stand gebracht --> deshalb sind auch aus der Verzweiflung heraus 
durchaus "verwirrende" Kommentare entstanden. Diese brauchen deshalb 
nicht mehr berücksichtigt werden.

BTW:
- Netiquette
- Troll Wortbedeutung: https://de.wikipedia.org/wiki/Troll_(Netzkultur)

Grüße

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Alexander M. schrieb:
> Nun geht's zum eigentlichen Mikrocontroller. Da bekomme ich jetzt den
> Fehler "Can't reset the core".
>
> Kann damit jemand was anfangen bzw. weiß wie dieser Fehler zu beheben
> ist?

Hast du die Reset Leitung vom Target mit dem ST-Link verbunden?

Weil: Wie gesagt kann das Programm auf dem Target die SWD Schnittstelle 
deaktivieren und dann ist auch kein Soft-Reset Kommando mehr möglich.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da kannst immer noch 'Connect under Reset' probieren. Also Reset manuell 
halten und dann SWD starten.
Normalerweise ist es nicht nötig. Ich flashe hier Messgeräte mit 
STM32F429 mittels ST-Link vom VLDiscovery. Verbunden sind nur SWDIO und 
SWDCLK sowie GND.

von Alexander M. (a_lexander)


Lesenswert?

Vielen Dank euch, jetzt hat's auch bei mir funktioniert :-)

Meine Fehler nochmals aufgelistet:

1. Upgrade des ST-LINK auf neueste Firmware (Fehlermeldung: USB 
Communication error
2. uC richtig anschließen (Fehlermeldung: no target connected)
3. Resetpin anschließen (Fehlermeldung: Can't reset the core)

Grüße

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.