Hallo Leute, ich habe momentan ein Problem mit der Programmierung einer eigenen Platine, die ich genauso aufgebaut habe, wie das Entwicklungsboard Steval-Spin3202 von ST mit dem Controller STM32F031C6 + STSPIN32F0 zur Ansteuerung eines BLDC-Motors. Der Zugriff auf den MC über SWD über die ST-Link Utility funktioniert. Das Debuggen über die STM32CubeIde funktioniert leider noch nicht.
:
Bearbeitet durch User
Tim K. schrieb: > Der Zugriff auf den MC über SWD über die ST-Link Utility funktioniert. > Das Debuggen über die STM32CubeIde funktioniert leider noch nicht. Da der Debugger die SWD Schnittstelle benutzen kann, liegt vermutlich kein Hardwarefehler vor. Es könnte wohl eher an falschen Einstellungen liegen. Ich sehe, dass du die Reset Leitung nicht mit dem ST-Link Adapter ansteuerst und auch keinen Reset Button hast. Das ist schon doof. Denn so steht Dir nur der Software-Reset zur Verfügung, der aber nicht um Sleep Modus funktioniert. Außerdem solltest du darauf achten, dass du die SWD Schnittstelle nicht per Software deaktivierst - wozu CubeMx einen mit seinen (von der Hardware abweichenden) Default-Vorgaben verleitet.
Tim K. schrieb: > SW1 ist der Reset-Button. Aber SW1 ist doch mit dem linken IC unbeschrifteten verbunden. Programmieren tust du den rechten, richtig? Wie dem auch sei: Wenn ein Reset Taster vorhanden ist, gibt es noch die Option "Connect under Reset". Dann musst du manuell im richtigen Moment drauf drücken.
Tim K. schrieb: > Der Zugriff auf den MC über SWD über die ST-Link Utility funktioniert. > Das Debuggen über die STM32CubeIde funktioniert leider noch nicht. Wurde das Programm auch erfolgreich übersetzt?
Stefanus F. schrieb: > Ich sehe, dass du die Reset Leitung nicht mit dem ST-Link Adapter > ansteuerst und auch keinen Reset Button hast. Das ist schon doof. Denn > so steht Dir nur der Software-Reset zur Verfügung, der aber nicht um > Sleep Modus funktioniert. Stefanus F. schrieb: > Da der Debugger die SWD Schnittstelle benutzen kann, liegt vermutlich > kein Hardwarefehler vor. Es könnte wohl eher an falschen Einstellungen > liegen. > > Ich sehe, dass du die Reset Leitung nicht mit dem ST-Link Adapter > ansteuerst und auch keinen Reset Button hast. Das ist schon doof. Denn > so steht Dir nur der Software-Reset zur Verfügung, der aber nicht um > Sleep Modus funktioniert. > > Außerdem solltest du darauf achten, dass du die SWD Schnittstelle nicht > per Software deaktivierst - wozu CubeMx einen mit seinen (von der > Hardware abweichenden) Default-Vorgaben verleitet. Wenn ich bei den Einstellungen der ST-Link Utility den Reset Mode auf Software System Reset umstellen, habe ich leider auch keinen Erfolg.
Tim K. schrieb: > die ich genauso aufgebaut habe, wie das Entwicklungsboard > Steval-Spin3202 von ST Das glaube ich erst wenn ich es gesehen habe. Allein schon der Aufbau des Schaltplans lässt nichts Gutes vermuten.
Was hast du denn eingestellt? Und wie verhält sich die Firmware? Deaktiviert sie SWD oder nutzt sie Sleep Modi?
Stefanus F. schrieb: > Was hast du denn eingestellt? > Neben den Connection Settings-> SWD, dem Mode -> Normal und dem Reset Mode -> Software System Reset habe ich nichts weiter in den Settings der ST-LINK Utility eingestellt. > Und wie verhält sich die Firmware? Deaktiviert sie SWD oder nutzt sie > Sleep Modi? Sorry, ich weiß leider nicht, wie ich das feststellen kann. Bin noch ein kompletter Anfänger.
Sicher gibt der Debugger eine Fehlermeldung aus, wie lautet sie?
Stefanus F. schrieb: > Sicher gibt der Debugger eine Fehlermeldung aus, wie lautet sie? STM32CubeIDE: Open On-Chip Debugger 0.10+dev-00021-g524e8c8 (2019-07-16-09:47) Licensed under GNU GPL v2 For bug Reports, read For bug eports, read http://openocd.org/doc/doxygen/bugs.html srst_only separate srst_nogate srst_open_drain connect_assert_srst Info: The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD adapter speed: 8000 kHz adapter_nsrst_delay: 100 Info : Listening on port 6666 for telnet connections Info : Listening on port 4444 for telnet connections Info : clock speed 8000 kHz Info : STLINK v2 JTAG v33 API v2 SWIM v7 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.211579 Info : Unable to match requested speed 8000 kHz, using 4000 kHz Info : clock speed 4000 kHz Warn : UNEXPECTED idcode: 0x1ba01477 Error: expected 1 of 1: 0x0bb11477 in procedure 'init' in procedure 'ocd_bouncer'
Tim K. schrieb: > idcode: 0x1ba01477 Ist das nicht der Bluepill F103C8? Den hast Du ober nicht, oder.
Ganz klar ist nicht was da wo wie angeschlossen und programmiert wird. Der Schaltplan sieht so aus als wär da ein ST-LINK eingebaut (rund um den F103), die Ansteuerung der (vermutlich, ist ja auch nicht wirklich beschriftet) Leistungselektronik besorgt aber der unbeschriftete IC (was für einer ist das?). Foto vom Aufbau könnte helfen.
pegel schrieb: > Ist das nicht der Bluepill F103C8? Ja, 0x1ba01477 ist der Code vom STM32F103CBT6 und an diesem ist ja auch laut Schaltplan der ST-Link Adapter angeschlossen. 0x0bb11477 gehört zu dem STM32F0! Du hast entweder das falsche Projekt für den richtigen Mikrocontroller, oder den falschen Mikrocontroller verbunden.
Auf dem Board befinden sich zwei Controller: STM32F103CBT6 und STSPIN32F0 mit integriertem STM32F031C6.
Tim K. schrieb: > Auf dem Board befinden sich zwei Controller: STM32F103CBT6 und > STSPIN32F0 mit integriertem STM32F031C6. Der STM32F103 ist offenbar als onboard-stlink gedacht. Um den F031 zu programmieren muss man zuerst eine passende Firmware in den onboard-stlink reinschiessen, und selbigen dann per USB an den PC anschliessen.
Auf dem Board ist bereits ein ST-Link integriert. Jedoch wird bei mir die USB-Verbindung nicht erkannt und ich versuche den Controller deshalb über einen externen ST-Link zu programmieren.
Tim K. schrieb: > Auf dem Board ist bereits ein ST-Link integriert. ja das hab ich geschrieben. > Jedoch wird bei mir > die USB-Verbindung nicht erkannt und ich versuche den Controller deshalb > über einen externen ST-Link zu programmieren. Die tut erst wenn im F103 eine firmware drinnen ist. Wie man daraus einen st-link macht weiss ich nicht, es gibt aber andere Möglichkeiten, die blackmagic probe firmware oder die cmsis-dap firmware von mbed/arm oder wie immer die jetzt heissen. Ist vermutlich keine wirkliche Hilfe. Was hat es für einen Sinn, ein Eval-Board, welches man fertig bestückt, getestet und mit funktionierendem Debugger um ca. 70€ kaufen kann, 1:1 nachzubauen? Noch dazu als Zitat "kompletter Anfänger"?
Tim K. schrieb: > ich versuche den Controller deshalb > über einen externen ST-Link zu programmieren. Wo hast du den externen ST-Link angeschlossen? Zeichne das mal in den Schaltplan ein.
Aus einem F103 einen STLink zu machen ist fummelig. Der Originale hat einen Bootloader drauf der einen verschlüsselte Firmware lädt. Die C8 Version hat für die aktuellen STLink V2 Versionen zuwenig Flash, du bräuchtest einen RB mit 128k. Auch wenn der C8 tatsächlich 128k hat, der Bootloader möchte einen RB haben. Einfacher ist die BlackMagicProbe Firmware zu nehmen. Die ist dann zwar nicht STLink kompatibel, aber mit VSCode+Cortex-Debug funktioniert das z.B. auch sehr gut.
Normalerweise werden bei diesen ST-Boards die ST-Link fertig programmiert geliefert. Das hast du ja scheinbar jetzt vergurkt - dumm gelaufen.
er hat doch ein eigenes Board und den STLink nachgebaut, da muss man erstmal die STLink Firmware reinbekommen. So habe ich das verstanden. Zu meinem Beitrag: wenn der CB auf dem Board ist hat der die 128k Flash und dann könnte die org. Software auch laufen. Der Bootloader war mal auf github und das reverse engineering findet man auch im Netz.
Der ST-Link ist ja schon am richtigen Chip gewesen. Hiermit lässt sich ein neuer ST-Link heran züchten: https://github.com/Krakenw/Stlink-Bootloaders
rµ schrieb: > Was hat es für einen Sinn, ein Eval-Board, welches man fertig bestückt, > getestet und mit funktionierendem Debugger um ca. 70€ kaufen kann, 1:1 > nachzubauen? Noch dazu als Zitat "kompletter Anfänger"? Ich habe das Eval-Board gekauft und getestet. Ich benötige aber mehr Motorleistung, deshalb habe ich bei meinem Board andere Mosfets verbaut.
Johannes S. schrieb: > er hat doch ein eigenes Board und den STLink nachgebaut, da muss > man > erstmal die STLink Firmware reinbekommen. So habe ich das verstanden. > Zu meinem Beitrag: wenn der CB auf dem Board ist hat der die 128k Flash > und dann könnte die org. Software auch laufen. Der Bootloader war mal > auf github und das reverse engineering findet man auch im Netz. Genau. Ich will zunächst die STLink Firmware zum Laufen bringen.
pegel schrieb: > Der ST-Link ist ja schon am richtigen Chip gewesen. > > Hiermit lässt sich ein neuer ST-Link heran züchten: > > https://github.com/Krakenw/Stlink-Bootloaders Kannst du mir sagen, wie ich das genau mache?
Tim K. schrieb: > Kannst du mir sagen, wie ich das genau mache? Moin, Du flashst die 4. bin Datei auf deinen F103. Dann verbindest Du den über USB und startest die ST-Link-Utility. Diese findet den und bietet ein Firmware Update an. Danach ist es ein ST-Link.
Zwischenzeitlich Strom wegnehmen, oder Reset nicht vergessen.
Sollte das nicht erfolgreich sein, die 3. bin benutzen, und/oder ST-Link-Utility v4.3 besorgen.
Ich habe gerade noch das Problem, dass der externe ST-Link gar nicht fertig wird mit dem Flashen...
Dann ist aber noch mehr faul. Kannst Du deinen F103 über ST-Link-Utility auslesen/schreiben mit z.B. einzelnen Bytes?
Okay, das Flashen hat doch inzwischen geklappt und wenn ich das Board per USB an den PC anschließe, wird dieses auch als STM32Link erkannt. Ich kann jedoch noch nicht mit der Utility verbinden.
Jetzt musst Du das Firmware Update ausführen. Noch is nix drauf.
Tim K. schrieb: > Ich kann jedoch noch nicht mit der Utility verbinden. Warum kannst du es nicht? Ist dein Computer kaputt gegangen? Hat Dir jemand die Hände abgehackt? Wenn du Hilfe bekommen möchtest, dass beschreibe - Was hast du gemacht? - Was hast du erwartet? - Was hast ist stattdessen passiert? - Was hast du bisher versucht, um das Problem zu lösen? - Welche Erkenntnisse hast du dabei erhalten? Und vergiss bitte nie, die betroffenen Produkte (mit Versionsnummer) zu benennen und Protokoll- sowie Fehler-meldungen zu zitieren.
@ Stefanus Bleib bitte locker, wir haben gleich geschafft den ST-Link zu basteln.
pegel schrieb: > Jetzt musst Du das Firmware Update ausführen. > Noch is nix drauf. Mein Problem ist gerade, dass das Updaten nicht funktioniert und ich die Fehlermeldung "Unkown Firmware type. Don't know how to upgrade" bekomme. Ich habe den F103 mit der 4. bin-Datei geflasht und nutze die ST-Link Utility v4.5.
Dann besorge dir die ST-Link-Utility Version 4.3 oder älter und nimm die v2 bin.
da ist ein Issue und eine Antwort das man ein altes Utility braucht: https://github.com/Krakenw/Stlink-Bootloaders/issues/1
Mit der älteren Version der Utility funktioniert es. Ich habe bereits eine Firmware über den ST-Link erfolgreich geladen und diese läuft auch auf dem Board (Motor dreht sich).
Mir ist noch aufgefallen, dass die Firmware nur auf dem Board läuft, wenn das Board zuvor per USB verbunden war. Wenn ich allein die Betriebsspannung anlege, funktioniert das Board nicht. Woran könnte das liegen?
Christopher J. schrieb: > Eventuell Semihosting aktiviert? Wie kann ich das checken und deaktivieren, falls es aktiviert sein sollte?
:
Bearbeitet durch User
Johannes S. schrieb: > Aus einem F103 einen STLink zu machen ist fummelig. Der Originale hat > einen Bootloader drauf der einen verschlüsselte Firmware lädt. Die Bootloader Firmware gibt es auf Github, auch in der Variante ohne Ausleseschutz ;-) > Die C8 > Version hat für die aktuellen STLink V2 Versionen zuwenig Flash, du > bräuchtest einen RB mit 128k. Auch wenn der C8 tatsächlich 128k hat, der > Bootloader möchte einen RB haben. Dann gibt es auch noch ein DFU Programm (stlink-tool), dass mit dem encrypted Bootloader umgehen kann und beliebige Firmware in den Benutzer Flash des STLinks flashen kann. > Einfacher ist die BlackMagicProbe Firmware zu nehmen. Die ist dann zwar > nicht STLink kompatibel, aber mit VSCode+Cortex-Debug funktioniert das > z.B. auch sehr gut. Inzwischen kann man BlackMagicProbe auch fuer den PC kompilieren, so das die BMP mit der Originalfirmware von ST zusammenarbeitet. Und schliesslich kann man auch eine BMP Firmware fuer den STLinkV2 (nicht V21) kompilieren, die man mit stlink-tool auf eine STLINKV2 mit Oroginal Bootloader aufspielen kann. Fehlen noch Alternativen?
Uwe B. schrieb: > Fehlen noch Alternativen? habe gerade den STLink3Mini entdeckt der etwa 10€ netto kostet, wird der auch von der PC Software unterstützt? Aber was ist dann überhaupt der Vorteil BMP über STLink zu nutzen? STLink für andere µC hätte man ja schon mit OpenOCD. Uwe B. schrieb: > Die Bootloader Firmware gibt es auf Github, auch in der Variante ohne > Ausleseschutz ;-) das wurde dem TO ja schon genannt und damit ging es dann auch (mit älterem STutility).
Johannes S. schrieb: > Uwe B. schrieb: >> Fehlen noch Alternativen? > > habe gerade den STLink3Mini entdeckt der etwa 10€ netto kostet, wird der > auch von der PC Software unterstützt? Ja. Allerdings hat ST im V3 eine Beschraenkung, dass nur STM Bausteine erkannt werden. Bei V2/V21 ist das kein Problem. > Aber was ist dann überhaupt der Vorteil BMP über STLink zu nutzen? > STLink für andere µC hätte man ja schon mit OpenOCD. Wieviele Konfiguartionsoptionen braucht man fuer OpenOCD? Wie lange dauert es bei OpenOCD bis man eine Patch durch Zylin gebracht hat? Und bei StlinkV2 hat man mit der BMP Firmware ein CDC-ACM Uart, den StlinkV2 nicht hat.
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.