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?
Spannung angelegt? Der VDD Pin ist nur für die Referenzspannung und versorgt nicht deine Schaltung ansich.
Okay ich konnte den Fehler eingrenzen. Meine CLK und SWDIO Leitung senden daten und sehen laut oszi gut aus. Einzig der Reset ist immer Low... Ich denke hier liegt das Problem. Hat jemand jetzt eine Idee oder das selbe Problem?
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.
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
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.
In meiner board.cfg (für OpenOCD) steht drin:
1 | # This is a board with a single STM32F103C8T6 chip. |
2 | source [find interface/stlink-v2.cfg] |
3 | set WORKAREASIZE 0x4000 |
4 | |
5 | #transport select swd # fuer J-Link |
6 | source [find target/stm32f1x.cfg] |
7 | # use software reset |
8 | reset_config srst_only srst_nogate |
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
Matthias H. schrieb: > Der Treiber ist aktuell Ist auch die ST-Firmware aktuell? http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link007.html
Matthias H. schrieb: > Ja ich versuche ihn ja gerade mit ST-Link utility zum laufen zu bringen. Das geht immer wenn alles richtig angeschlossen ist. Sonst bei Openocd das übliche: Mike J. schrieb: > # use software reset > 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.
Oh, habe jetzt die cfg von Mike angenommen. Ob das bei F0 auch so ist weiß ich nicht.
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.
Mike J. schrieb: > Das flashen und Debugen über Eclipse ging bei mir so eigentlich, aber > ich werde das so ändern. Brauchst du dann ja nicht ändern. Das Problem trat allerdings öfter auf, auch bei mir. Beim nächsten Update werden die Dateien wieder überschrieben.
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.
Bei klappt es mit einem China-STLinkV2-Clon nur, wenn ich folgendes verwende:
1 | source [find interface/stlink-v2.cfg] |
2 | set WORKAREASIZE 0x4000 |
3 | source [find target/stm32f1x_stlink.cfg] |
4 | reset_config none separate |
Besonders wichtig die "Reset"-Zeile ... Alles andere hat bei mir nie funktioniert.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.