STM32F0 Discovery und ST-Link V2

OP #5114766
Lesenswert?

Hallo zusammen,

ich habe ein STM32F=-Discovery mit dem onboard st-linkv2 programmiert 
und das hat super geklappt. Nun Habe ich es mit einem ST-Link V2 
versucht.

Der Treiber ist aktuell und der ST-Link wird mir im Geräte Manager 
angezeigt.

Die Jumper auf dem Board wurden entfernt.

Die SWD_Leiste wurde wie folgt verbunden

Pin 1-> Pin 19 VDD
Pin 2-> Pin 9 SWDCLK
Pin 3-> Pin 20 GND
Pin 4-> Pin 7 SWDIO
Pin 5-> Pin 15 Reset

Wenn ich das Programm starten möchte bekomme ich immer die Meldung: Can 
not connect to target.

Allerdings leuchtet auch keine LED am Board, obwohl ich zwischen Pin 1 
und Pin 3 3,3V messe.

Habe ich irgendwas vergessen?
#5114917
Lesenswert?

Bei dem ST-Link V2.1 auf den Discovery- und Nucleo-Boards sorgt der 
ST-Link auch für den Reset der MCU - bei den ST-Link V2 nicht.

In SW4STM32 kann man das in der Debug-Konfiguration entsprechend 
umschalten.
In der default-Einstellung steht da "Connect under Reset"
Das muss man auf "Software system Reset" wechseln.
Gast #5114947
Lesenswert?

Harry L. schrieb:
> Bei dem ST-Link V2.1 auf den Discovery- und Nucleo-Boards sorgt
> der ST-Link auch für den Reset der MCU - bei den ST-Link V2 nicht.
>
> In SW4STM32 kann man das in der Debug-Konfiguration entsprechend
> umschalten.
> In der default-Einstellung steht da "Connect under Reset"
> Das muss man auf "Software system Reset" wechseln.

Und wie bekommt das Board dann ein Reset Signal?

Wenn ich die Reset Leitung weglasse, kann ich es trotzdem nicht 
verbinden
#5114969
Lesenswert?

Streno schrieb:
> Und wie bekommt das Board dann ein Reset Signal?
>
> Wenn ich die Reset Leitung weglasse, kann ich es trotzdem nicht
> verbinden

Das musst du in der Debug-Configuration passend umstellen.

Run->Debug Configurrations>Debugger
Da auf "Show Generator Options" klicken und in dem DropDown für Reset 
Mode entsprechenden Eintrag wählen.
OP #5115001
Lesenswert?

Harry L. schrieb:
> Streno schrieb:
>> Und wie bekommt das Board dann ein Reset Signal?
>>
>> Wenn ich die Reset Leitung weglasse, kann ich es trotzdem nicht
>> verbinden
>
> Das musst du in der Debug-Configuration passend umstellen.
>
> Run->Debug Configurrations>Debugger
> Da auf "Show Generator Options" klicken und in dem DropDown für Reset
> Mode entsprechenden Eintrag wählen.

Ja ich versuche ihn ja gerade mit ST-Link utility zum laufen zu bringen. 
Da gibt es die modi: normal, hot plug und hardeware reset. habe alles 
schon ausprobiert und immernoch keinen erfolg
Gast #5115350
Lesenswert?

pegel schrieb:
> das srst_only muss raus. Kommt auch noch in der stm32f1x.cfg vor, da
> auch löschen.
> Reset Leitung nicht angeschlossen

Okay, danke. Habe auch erst vor zwei Wochen damit angefangen.
Das flashen und Debugen über Eclipse ging bei mir so eigentlich, aber 
ich werde das so ändern.

Es war schon komisch dass die STM32 boards so schnell da waren, hat nur 
eine Woche gebraucht.
Die Buchse habe ich nachgelötet und den 10k Widerstand durch 1.5k 
ersetzt.
Die Chinesen scheinen ein einfach eine sehr große Menge von den Platinen 
zu produzieren und die Anlage danach komplett umzustellen.
#5115752
Lesenswert?

pegel schrieb:
>> reset_config srst_only srst_nogate
>
> das srst_only muss raus. Kommt auch noch in der stm32f1x.cfg vor, da
> auch löschen.
> Reset Leitung nicht angeschlossen.

Nicht einfach löschen:
1
reset_config none

überschreibt eine eventuell vorhandene andere Einstellung und gehört in 
die board.cfg die man sich normalerweise selbst erstellt.
#5116318
Lesenswert?

Matthias H. schrieb:
> ich habe ein STM32F=-Discovery mit dem onboard st-linkv2 programmiert
> und das hat super geklappt. Nun Habe ich es mit einem ST-Link V2
> versucht.
>
> Der Treiber ist aktuell und der ST-Link wird mir im Geräte Manager
> angezeigt.
>
> Die Jumper auf dem Board wurden entfernt.
>
> Die SWD_Leiste wurde wie folgt verbunden
>
> Pin 1-> Pin 19 VDD
> Pin 2-> Pin 9 SWDCLK
> Pin 3-> Pin 20 GND
> Pin 4-> Pin 7 SWDIO
> Pin 5-> Pin 15 Reset

Sorry wenn ich so dumm frage aber was hast du denn mit was verbunden? 
Für mich klingt das so als hättest du einen externen ST-Link V2 (mit 
20-Pin Header) mit der SWD-Leiste des Disco-Boards verbunden.

Falls es so sein sollte, dann kann das nicht funktionieren. Die 
SWD-Leiste ist nicht als Input, sondern als Output gedacht, d.h. mit 
diesen Pins kannst du einen externen Controller über den ST-Link des 
Disco-Boards debuggen (wenn die Jumper gezogen sind) aber nicht anders 
herum den Controller des Disco-Boards mit einem externen ST-Link.


Jim M. schrieb:
> pegel schrieb:
>>> reset_config srst_only srst_nogate
>>
>> das srst_only muss raus. Kommt auch noch in der stm32f1x.cfg vor, da
>> auch löschen.
>> Reset Leitung nicht angeschlossen.
>
> Nicht einfach löschen:
> reset_config none

Davon habe ich noch nie gehört und hatte damit auch noch nie Probleme. 
Der ST-Link V2 auf meinem Disco-Board hat die Reset-Leitung auch ganz 
regulär angeschlossen und mit
1
openocd -f interface/stlink-v2-1.cfg -f target/stm32f0x.cfg -c "reset_config srst_only srst_nogate connect_assert_srst" -c init -c "reset halt"

kann ich einen "connect under reset" durchführen, z.B. wenn die SWD-Pins 
fälschlicherweise umkonfiguriert wurden und man sich ausgesperrt hat. 
Ich habe hier auch noch einen "normalen" ST-Link V2 (auch ein 
China-Klon), bei dem ist die Reset-Leitung ebenfalls korrekt 
angeschlossen. Aber ich habe es auch gerade mal bei einem ST-Link V2 
"mini" probiert und bei dem scheint die Leitung nicht angeschlossen zu 
sein und OpenOCD schlägt fehl, wegen eines Timeouts. Habe mal kurz 
nachgeforscht und es scheint so, als hätten die Chinesen die 
Reset-Leitung für den STM8 herausgeführt, also SWIM-RST. Das passt 
zumindest bei meinem "Mini" zum Pinout, d.h. STM8 obere Pin-Reihe, STM32 
unten.

Jedenfalls habe ich bisher mit dem ST-Link V2 mini mit dem ganz 
einfachen
1
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
gearbeitet (bzw. stm32f0x.cfg für F0) und hatte bisher nie Probleme 
damit. Wenn ich da irgendetwas von "reset_config" mit hinein packe, dann 
kommt bei dem ST-Link mini allerdings besagtes Timeout-Problem.

Harry L. schrieb:
> In der default-Einstellung steht da "Connect under Reset"
> Das muss man auf "Software system Reset" wechseln.

Wenn SW4STM32 nicht sonst noch irgendwo hinter dem Rücken irgendetwas zu 
"reset_config" hinzufügt sollte das eigentlich als Lösung reichen. An 
den .cfg-Dateien in OpenOCD musste ich jedenfalls bisher noch nichts 
ändern.

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