Forum: Mikrocontroller und Digitale Elektronik STM32Cube IDE zerstört im Debug STM32F103C8T6


von Bastler (Gast)


Lesenswert?

Hallo,

Habe mir mal die STM32 Cube IDE heruntergeladen weil ich einen 
SZM32F103C8T6 beim Arbeiten beobachten wollte, und dazu dessen RAM 
anschauen wollte während er läuft. Leider scheint das Programm den Chip 
zerstört zu haben, nachdem ich versucht habe ihn über die Funktion 
"Debuggen" anzusprechen fährt der Chip nicht mehr hoch und ist nicht 
mehr erreichbar, auch nciht mit dem STM 32 ST Link Utility???!!! Ich 
kapiers nicht, die SWD Kabel waren richtig angeschlossen, aber der Chip 
ist seit dem Versuceh mit dem Debuggen per Cube IDE vollkommen tot. Als 
Adapter wurde ein STlink V2 ISOL benutzt.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Leider scheint das Programm den Chip zerstört zu haben,
> nachdem ich versucht habe ihn über die Funktion "Debuggen" anzusprechen

Das kann nicht sein. Allerhöchstens kann der Inhalt vom Flash verloren 
gehen, dann hat man meist ein ursächliches Problem bei der 
Stromversorgung.

Du solltest dazu noch wissen, dass die SWD Schnittstelle auf mehrere 
Arten per Software deaktiviert werden kann. Dagegen hilft:

Stelle man den Boot0 Jumper auf "Bootloader" ein und mache dann einen 
Reset. Dann kannst du wahlweise seriell oder per SWD wieder drauf 
zugreifen. Danach stellst du den Jumper zurück.

Ansonsten: Schaltplan und Fotos vom Aufbau zeigen.

von Bastler (Gast)


Lesenswert?

Leider hat die Platine keinen BOOT Jumper, das ist eine kommerzielle 
Platine deren Schaltplan oder Layout ich nicht habe. Das einizge was 
noch angezeigt wird, wenn ich z.B. über das STM32 ST Link Utility 
versuche, den Chip anzusprechen ist "Can not connect to target!
                  If you're trying to connect to an STM32W1xx device, 
please select Normal or HotPlug mode from Target->Settings menu."

Was auch immer da passiert ist, der Mikrokontroller ist komplett tot, 
die LED die normalerweise blinkt wenn er aktive ist leuchtet nicht mehr, 
der Chip reagiert auf nichts mehr. Keine Ahnung warum. Stromversorgung 
ist in Ordnung, daran dürfte es nicht liegen.

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Leider hat die Platine keinen BOOT Jumper,

Andere Möglichkeit ist die "Connect under Reset" Option in der Software 
(ST-Link Utility oder STM32 Cube Programmer).

Dazu musst du den Reset Knopf gedrückt halten, dann die SWD Verbindung 
aufbauen und dann im richtigen Moment wieder loslassen. Das übst du aber 
besser vorher an einem Chip, der noch funktioniert.

von Bastler (Gast)


Lesenswert?

Wie mache ich das wenn die Platine keinen RESET Knopf hat?

von Stefan F. (Gast)


Lesenswert?

Ich sehe gerade, dass die Option "Connect under Reset" nur im ST-Link 
Utility existiert. Schade, dass der neue Cube Programmer das nicht kann.

> Wie mache ich das wenn die Platine keinen RESET Knopf hat?

Vorschlag: Einen Reset-Knopf hinzufügen.

von Bastler (Gast)


Lesenswert?

Also kurzum da gibt es ohne Reset Knopf keine andere Möglichkeit mehr?

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Also kurzum da gibt es ohne Reset Knopf keine andere Möglichkeit mehr?

Du siehst doch, dass du deinen Chip gerade nicht ansprechen kannst. Also 
musst du ihn aus diesem Zustand heraus holen, und das geht wohl nur über 
einen Reset zuverlässig wenn man keinen Boot Jumper hat.

Was ist denn daran so schwer, einen Reset-Knopf hinzuzufügen? 
Normalerweise ist der Pin am SWD Stecker mit herausgeführt, aber bei Dir 
wohl nicht, sonst hättest du das Problem vom Eröffnungsbeitrag nicht.

Hast du denn die Firmware überhaupt als Quelltext oder Binary vorliegen? 
Wenn das nicht der Fall ist, brauchst du gar nicht weiter machen. Denn 
die kaputte Firmware zu debuggen wird dich auch nicht weiter bringen.

von Bastler (Gast)


Lesenswert?

Ich hab die Firmware als .hex da, die kann ich jederzeit wieder drauf 
bekommen, aber nicht ohne den Chip wieder anzusprechen. Das Problem ist, 
wie verhindere ich dass mir wenn ich es schaffe den Chip aus diesem 
Zustand zu kriegen die Cube IDE das sofort wieder macht? Ich will den 
Chip nur beobachten, beim arbeiten, nicht irgendwas flashen, aber genau 
das macht die IDE offenbar ohne dass ich es will, dabei wird dann wohl 
auch der Debug Port als Ausgang gesetzt. Wie verhindere ich dass die IDE 
das macht? Die soll mir den Chip in ruhe lassen und nur beobachten, 
nichts flashen oder schreiben.

von Bastler (Gast)


Lesenswert?

Mit dem RESET Pin des Prozessors ist übrigens ein Kondensator verbunden. 
Ich schließe den Üin jetzt mal mit GND Kurz, und sehe ob sich der 
Controller denn zur Kommunikation überreden lässt.

von Thomas Z. (usbman)


Lesenswert?

Das macht deine Firmware die sperrt vermutlich SWD. Ich würde das 
zumindest machen.
Wenn ich Hersteller der (Roller) Firmware wäre, würde ich alles 
unternehmen um das Debuggen zu erschweren.

Es bleibt dir vermutlich nichts anderes übrig als Reset / Boot 
nachzurüsten

von Bastler (Gast)


Lesenswert?

Im Normalfall hat SWD immer funktioniert. Leider scheint mir die IDE das 
umzukonfigurieren. Der Chip hat sich immer per SWD konfigurieren lassen, 
auch flashen, und kommunizieren, mit dem STlink Utility hat das immer 
funktioniert. Jetzt will ich aber mal sehen was die Firmware macht, aber 
die IDE versteht das "Du sollst nur anzeigen was der Chip tut" als "Du 
sollst irgndwas flashen und dann anziegen was das auf dem Chip tut.

von Bastler (Gast)


Lesenswert?

So, Chip geht wieder, RESET auf LOW gezogen mitm Jumper Kabel und neu 
geflasht -> Chip verhällt isch normal. Jetzt müsste ich nurnoch wissen 
wie ich es schaffe dass ich in den RAM sehen kann während der arbeitet, 
ohne dass mir die IDE wieder den Pin umkonfiguriert, so scheint es 
nämlich wohl zu sein, der Chip lässt sich mit dem ST Link Utility sogar 
ohne reset per HotPlug packen, nur der Debugger der IDe versucht immer 
was zu builden, flasht das dann irgendwie und will es dann debuggen, er 
lässt mir also das Programm was auch dem Prozessor ist nicht in Ruhe. 
Kann es sein dass das Debuggen in der IDE nur bei Programmen geht deren 
Source Code vorhanden ist?

von Bernd N. (_bn_)


Lesenswert?

Kann es sein das dein Problem folgendes ist ? bin auch darauf 
reingefallen,
Beitrag "STM32 CubeIDE und STLink V2 Debugger instabil"

von Stefan F. (Gast)


Lesenswert?

Bastler schrieb:
> Das Problem ist,
> wie verhindere ich dass mir wenn ich es schaffe den Chip aus diesem
> Zustand zu kriegen die Cube IDE das sofort wieder macht?

Warte doch erst einmal ab, ob das Problem überhaupt wiederholt auftritt.

Soweit ich sehen kann ist Dir das genau einmal passiert. Daraus 
abzuleiten, dass dies jetzt immer wieder passieren wird und irgednd 
etwas grundsätzlich kaputt sei, finde ich verfrüht.

> Mit dem RESET Pin des Prozessors ist übrigens ein Kondensator verbunden.
> Ich schließe den Üin jetzt mal mit GND Kurz, und sehe ob sich der
> Controller denn zur Kommunikation überreden lässt.

Ja, mache das.

Bastler schrieb:
> nur der Debugger der IDe versucht immer
> was zu builden, flasht das dann irgendwie

Du musst den Debugger nur mit dem µC verbinden. Wenn du auf den grünen 
Käfer klickst, wird normalerweise das aktuelle Programm compiliert, 
hochgeladen, gestartet und debuggt. Du willst aber einfach nur den 
Debugegr connecten. Wie das geht, weiß ich gerade auch nicht auswenddig. 
Ich sitze im Büro, da kann ich es leider nicht nachschauen.

> Kann es sein dass das Debuggen in der IDE nur bei Programmen
> geht deren Source Code vorhanden ist

Hoffentlich nicht. Bei einer älteren Variante der IDE (System Workbench 
for STM32) ging das jedenfalls so wie du es brauchst.

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.