Forum: Mikrocontroller und Digitale Elektronik STM32F103C8T6 lässt sich nicht über SWD ansprechen


von STMApprentice (Gast)


Lesenswert?

Seit gerstern schlage ich mich mit diesem Problem herum ...

Ein Original STLink V2 mit aktueller Firmware lässt sich
nicht dazu bewegen mit dem STM32F103C8T6 zu kommunizieren.
Weder mit dem Programmiertool von ST noch mit dem Debugger
aus der Embitz IDE heraus.

Dabei arbeitet der STLink V2 durchaus zufriedenstellend mit
einem anderen Experimentierboard, dem Core407. In beiden
Fällen ist er auf SWD eingestellt.

Die Module mit dem STM32F103C8T6 haben im Auslieferungszustand
ein Blinkprogramm aufgespielt. Nach vielen Versuchen ist es mir
tatsächlich dann mal gelungen den Controller anzusprechen
und mein eigenes Testprogramm aufzuspielen, sogar zu debuggen.
Irgendwann kam ich drauf dass das vorhandene Blink-Programm even-
tuell die SWD Schnittstelle disablen könnte. Wenn man also den
Reset aktiv low hält und dann die Kommunikation mit dem Debugger
startet, dann den Reset loslässt, dann funktioniert es.

Dies hat in den späten Nachtstunden gestern funktioniert, heute
ist wieder tote Hose, der Programmer meldet dass der STLink V2
keine Verbindung aufbauen kann. Also auch nicht mit dem Reset.
Gleiches Phänomen mit dem Debugger aus Embitz.

Weiss jemand Rat? Gugel Suche hat mir nichts gebracht. Ver-
schiedene Datenraten auf der SWD Schnittstelle auch schon durch-
probiert. Drei verschiedene Module zeigen das gleiche Fehlerbild.

von Cotta (Gast)


Lesenswert?

>> Gugel Suche hat mir nichts gebracht.

Probiere es mit hoogle.de

von Jim M. (turboj)


Lesenswert?

STM32 kann normalerweise auch "Connect under Reset". Dazu muss Reset 
natürlich über SWD verbunden sein.

Das braucht man falls man sich z.B. die Clock fehlkonfiguriert hat - 
ohne Clock kein Debug.

Wenn auch das nicht mehr tut muss man die Grundlagen wie 
Spannungsversorgung prüfen. Oder Druchgang auf den SWD Pins.

von STMApprentice (Gast)


Lesenswert?

Nach weiterem Herumprobieren scheint es so als ob der STLink V2
langsam stirbt. Der Firmware Updater meldet dass der Inhalt
des Controllers korrupt ist und lässt sich damit nicht mehr
updaten.

Einziger Ausweg wäre mittels meines vorhandenen Discovery
Boards den Controller neu zu flashen. Ob das funktioniert?
Einen Versuch wäre es Wert. Aber ich bräuchte dazu auch ein
nacktes Binary bzw Hex File, wo bekommt man das her?

Fragen über Fragen....

von Pete K. (pete77)


Lesenswert?

STMApprentice schrieb:
> Dabei arbeitet der STLink V2 durchaus zufriedenstellend mit
> einem anderen Experimentierboard, dem Core407. In beiden
> Fällen ist er auf SWD eingestellt.

STMApprentice schrieb:
> Nach weiterem Herumprobieren scheint es so als ob der STLink V2
> langsam stirbt.

Ja was denn nun?

Erstelle selbst ein kleines Blinky Programm und versuche es zu flashen. 
Dazu gibt es auch app-notes von ST.

Schaltplan? Modulbezeichnung? Fake-Module aus China?

von STMApprentice (Gast)


Lesenswert?

Pete K. schrieb:
> Ja was denn nun?

Bist du in der Lage mehr als einen Beitrag zu lesen
und in dich aufzunehmen?

Wenn ja dann fange ganz vorne an.

von testen (Gast)


Lesenswert?

das hört sich nach Schribschutz an
Beitrag "stm32f103c8 lässt sic nich flashen"

von ST-User (Gast)


Lesenswert?

Pete K. schrieb:

> Fake-Module aus China?

Was ist ein Fake-Module? Was ist gefälscht? Worauf muss ich achten?

von STMApprentice (Gast)


Lesenswert?

ST-User schrieb:
> Was ist ein Fake-Module? Was ist gefälscht? Worauf muss ich achten?

Gehört das zum Thema hier?

von Flupsi (Gast)


Lesenswert?

Jo das ist das Problem mit dem Schreibschutz:

https://www.youtube.com/watch?v=krxeYUiBZNY&feature=youtu.be&t=9m17s

von STMApprentice (Gast)


Lesenswert?

Flupsi schrieb:
> Jo das ist das Problem mit dem Schreibschutz:

Nein ist es nicht.

STMApprentice schrieb:
> Ein Original STLink V2 mit aktueller Firmware lässt sich
> nicht dazu bewegen mit dem STM32F103C8T6 zu kommunizieren.
> Weder mit dem Programmiertool von ST noch mit dem Debugger
> aus der Embitz IDE heraus.

Ich habe nicht davon gesprochen dass der Controller sich nicht
programmieren lässt sondern bereits der Aufbau einer Kommunikation
ist unmöglich (die ID lässt sich schon nicht lesen).

Dies muss aber möglich sein auch wenn der Controller mit einem
Lese-/Schreibschutz versehen ist, denn ich muss ihn ja auch
irgendwie wieder löschen können, unabhängig von seinem Schutz-
Zustand.

von Mirplatztdiehutschnur (Gast)


Lesenswert?

Sicher das das SWD-Interface nicht deaktiviert wurde. Bei der 
Generierung des Startupcodes mit CubeMX ist es standardmäßig nicht 
aktiviert. Dann hilft nur noch 'Connect under reset'.

von STMApprentice (Gast)


Lesenswert?

Mirplatztdiehutschnur schrieb:
> Sicher das das SWD-Interface nicht deaktiviert wurde.

Was habe ich geschrieben? Kannst du wirklich lesen? Und verstehen?

STMApprentice schrieb:
> Nach vielen Versuchen ist es mir
> tatsächlich dann mal gelungen den Controller anzusprechen
> und mein eigenes Testprogramm aufzuspielen, sogar zu debuggen.
> Irgendwann kam ich drauf dass das vorhandene Blink-Programm even-
> tuell die SWD Schnittstelle disablen könnte. Wenn man also den
> Reset aktiv low hält und dann die Kommunikation mit dem Debugger
> startet, dann den Reset loslässt, dann funktioniert es.

von Flupsi (Gast)


Lesenswert?

hast du das aktuelle STLink Utility runtergeladen und nochmal ein 
Firmwareupdate für deinen Programmieradapter gefahren? Das war bei mir 
mal der Grund, warum das nicht geklappt hat.

von testen (Gast)


Lesenswert?

STMApprentice schrieb:
> Dies muss aber möglich sein auch wenn der Controller mit einem
> Lese-/Schreibschutz versehen ist

aber nicht über den StLink.

von STMApprentice (Gast)


Lesenswert?

testen schrieb:
> aber nicht über den StLink.

Begründung?

Behaupten kann man viel wenn der Tag lang ist.

von STMApprentice (Gast)


Lesenswert?

Flupsi schrieb:
> Jo das ist das Problem mit dem Schreibschutz:
>
> Youtube-Video "Short Tutorial: How To Start Programming STM32 Arduino
> MCUs"

Bei diesen Videos wird es mir wirklich nur noch schlecht:

Labern, grummeln, nuscheln, Video Bilder erzittern.
..... und Arduino.

von Flupsi (Gast)


Lesenswert?

Kann ich nachvollziehen, aber es sollte dann eigentlich funktionieren.

Wir fallen nur die zwei Sachen ein. Mit Arduino hat die spezielle sache 
nichts zu tun.

von STMApprentice (Gast)


Lesenswert?

Flupsi schrieb:
> hast du das aktuelle STLink Utility runtergeladen und nochmal ein
> Firmwareupdate für deinen Programmieradapter gefahren?

Muss ich wirklich jeden Satz den ich schon einmal geschrieben
habe nochmal hinschreiben?

STMApprentice schrieb:
> Ein Original STLink V2 mit aktueller Firmware lässt sich
> nicht dazu bewegen mit dem STM32F103C8T6 zu kommunizieren.

Ja, auch das STLink ist die aktuelle Version.

von Jörg M. (derlang)


Lesenswert?

STMApprentice schrieb:
> Die Module mit dem STM32F103C8T6 haben im Auslieferungszustand

Ich hab hier 3 China F103C8 Boards liegen. Alle benötigen externe 
Stromversorgung um geflasht zu werden. Über SWD/ST-Link wird das Board 
nicht versorgt.
Hast du eine stabile Spannungsversorgung für die Boards?

: Bearbeitet durch User
von ST-User (Gast)


Lesenswert?

STMApprentice schrieb:
> ST-User schrieb:
>> Was ist ein Fake-Module? Was ist gefälscht? Worauf muss ich achten?
>
> Gehört das zum Thema hier?

Ja.

von STMApprentice (Gast)


Lesenswert?

Jörg M. schrieb:
> Hast du eine stabile Spannungsversorgung für die Boards?

Ja, über die Micro-USB Buchse. Geprüft auf Stabilität.
Auch schon extern mit 5V versorgt, ohne Erfolg.

Ich weiss das vom SWD keine Versorgung kommt. Daher gehen
bei mir nur drei Leitungen zum Board: GND, SWCLK und SWDIO.

Auch diesbezüglich muss ich mich wiederholen:

STMApprentice schrieb:
> Nach vielen Versuchen ist es mir
> tatsächlich dann mal gelungen den Controller anzusprechen

Was ja "beweist" dass der Controller korrekt versorgt wurde.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

STMApprentice schrieb:
> Ich weiss das vom SWD keine Versorgung kommt. Daher gehen
> bei mir nur drei Leitungen zum Board: GND, SWCLK und SWDIO.

Normalerweise hat ein ST-Link auch noch einen VDD-Anschluss, damit der 
ST-Link die Betriebsspannung des STM32 messen kann. Also schließe den 
mal mit an.

von testen (Gast)


Lesenswert?

STMApprentice schrieb:
> Begründung?

Erfahrung mit Stm32f103c8-board und StLink

von ST-User (Gast)


Lesenswert?

STMApprentice schrieb:

> Ich weiss das vom SWD keine Versorgung kommt. Daher gehen
> bei mir nur drei Leitungen zum Board: GND, SWCLK und SWDIO.

UM1075User manual 3.1.3

1 VDD Target VCC(1) MCU VCC
2 DATA SWIM MCU SWIM pin
3 GND GROUND GND
4 RESET RESET MCU RESET pin


(1) The power supply from the application board is connected to the 
ST-LINK/V2 debugging and programming board to ensure signal 
compatibility between both boards.

von STMApprentice (Gast)


Lesenswert?

Frank M. schrieb:
> Normalerweise hat ein ST-Link auch noch einen VDD-Anschluss, damit der
> ST-Link die Betriebsspannung des STM32 messen kann.

Ist nicht zwingend erforderlich. Funktioniert auch ohne.
Siehe:

STMApprentice schrieb:
> Nach vielen Versuchen ist es mir
> tatsächlich dann mal gelungen den Controller anzusprechen
> und mein eigenes Testprogramm aufzuspielen

von test (Gast)


Lesenswert?

Auch wenn es ein bisschen Off Topic ist.....

Du kannst die Firmware auch über den Bootloader und UART flashen. Nur 
für den Fall das die SWD tatsächlich deaktiviert ist.

von STMApprentice (Gast)


Lesenswert?

test schrieb:
> Du kannst die Firmware auch über den Bootloader und UART flashen. Nur
> für den Fall das die SWD tatsächlich deaktiviert ist.

Mir ist es gelungen diese Chips über den Bootloader und dem
Windows Tool von W.S.
(Beitrag "STM32Fxxx Bootlader Programmer STM32Prog")
anzusprechen und zu löschen. Damit ist auch garantiert der
mögliche Auslese- oder Programmierschutz gelöscht.

Leider gibt der Linker aus der embitz IDE die Hex-Files nicht
ganz so aus dass das Programm sie akzeptiert (Address-Offset)
und ich konnte auf die Schnelle keine Lösung finden auch
generierten COde darüber in die Chips zu bringen.

So kurzfristig mag das eine mögliche Lösung zum Spielen sein,
aber ich will ja über SWD debuggen und nicht einfach nur ein
Programm flashen.

Vielleicht kann jemand zum Adress-Problem bei den Hex Files
etwas beitragen?

von Flupsi (Gast)


Lesenswert?

> Mir ist es gelungen diese Chips über den Bootloader und dem
> Windows Tool von W.S.
> (Beitrag "STM32Fxxx Bootlader Programmer STM32Prog")
> anzusprechen und zu löschen. Damit ist auch garantiert der
> mögliche Auslese- oder Programmierschutz gelöscht.

Sicher? Das gleiche hat der Typ in dem anderen Thread auch gemacht. Erst 
mein Tip (ich hieß dort Flupp) mit dem Video brachte den Erfolg.

hier der entscheidende hinweis:

Beitrag "Re: stm32f103c8 lässt sic nich flashen"

Also nimm dir einen alten USB-Seriell Wandler und mache genau das was 
dir gesagt wird. Dann sollte es gehen :)

viel Erfolg ;)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

STMApprentice schrieb:
> Frank M. schrieb:
> Normalerweise hat ein ST-Link auch noch einen VDD-Anschluss, damit der
> ST-Link die Betriebsspannung des STM32 messen kann.
>
> Ist nicht zwingend erforderlich. Funktioniert auch ohne.
> Siehe:
>
> STMApprentice schrieb:
> Nach vielen Versuchen ist es mir
> tatsächlich dann mal gelungen den Controller anzusprechen
> und mein eigenes Testprogramm aufzuspielen

Dir ist echt nicht zu helfen. Nur weil es einmal geklappt hat, ist VDD 
nicht zwingend erforderlich? Sorry, wenn Du keinen Rat annehmen willst, 
warum fragst Du dann hier?

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.