Forum: Mikrocontroller und Digitale Elektronik Problem mit ST-Board zur BLDC-Ansteuerung


von Tim K. (timkl94)


Angehängte Dateien:

Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Tim K. (timkl94)


Lesenswert?

SW1 ist der Reset-Button.

von Stefan F. (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

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?

von Tim K. (timkl94)


Lesenswert?

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.

von OMG (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Was hast du denn eingestellt?

Und wie verhält sich die Firmware? Deaktiviert sie SWD oder nutzt sie 
Sleep Modi?

von Tim K. (timkl94)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Tim K. schrieb:
> Sorry, ich weiß leider nicht,

Dann hänge deine .ioc Projekt Datei an.

von Stefan F. (Gast)


Lesenswert?

Sicher gibt der Debugger eine Fehlermeldung aus, wie lautet sie?

von Tim K. (timkl94)


Lesenswert?

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'

von pegel (Gast)


Lesenswert?

Tim K. schrieb:
> idcode: 0x1ba01477

Ist das nicht der Bluepill F103C8?

Den hast Du ober nicht, oder.

von pegel (Gast)


Lesenswert?

Das letzte sollte eine Frage sein!!

von (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Tim K. (timkl94)


Lesenswert?

Auf dem Board befinden sich zwei Controller: STM32F103CBT6 und 
STSPIN32F0 mit integriertem STM32F031C6.

von (Gast)


Lesenswert?

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.

von Tim K. (timkl94)


Lesenswert?

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.

von Tim K. (timkl94)


Angehängte Dateien:

Lesenswert?

Hier mal das Datenblatt des originalen Boards.

von (Gast)


Lesenswert?

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"?

von Stefan F. (Gast)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

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.

von Harry L. (mysth)


Lesenswert?

Normalerweise werden bei diesen ST-Boards die ST-Link fertig 
programmiert geliefert.
Das hast du ja scheinbar jetzt vergurkt - dumm gelaufen.

von Johannes S. (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

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

von Tim K. (timkl94)


Lesenswert?

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.

von Tim K. (timkl94)


Lesenswert?

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.

von Tim K. (timkl94)


Lesenswert?

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?

von Tim K. (timkl94)


Angehängte Dateien:

Lesenswert?

Hier mal ein Update zu dem Schaltplan.

von pegel (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Zwischenzeitlich Strom wegnehmen, oder Reset nicht vergessen.

von pegel (Gast)


Lesenswert?

Sollte das nicht erfolgreich sein, die 3. bin benutzen, und/oder 
ST-Link-Utility v4.3 besorgen.

von Tim K. (timkl94)


Lesenswert?

Ich habe gerade noch das Problem, dass der externe ST-Link gar nicht 
fertig wird mit dem Flashen...

von pegel (Gast)


Lesenswert?

Dann ist aber noch mehr faul.

Kannst Du deinen F103 über ST-Link-Utility auslesen/schreiben mit z.B. 
einzelnen Bytes?

von pegel (Gast)


Lesenswert?

Hast Du versucht die V2 bin zu flashen?

von Tim K. (timkl94)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Jetzt musst Du das Firmware Update ausführen.
Noch is nix drauf.

von Stefan F. (Gast)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

@ Stefanus

Bleib bitte locker, wir haben gleich geschafft den ST-Link zu basteln.

von Tim K. (timkl94)


Lesenswert?

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.

von pegel (Gast)


Lesenswert?

Dann besorge dir die ST-Link-Utility Version 4.3 oder älter und nimm die 
v2 bin.

von Johannes S. (Gast)


Lesenswert?

da ist ein Issue und eine Antwort das man ein altes Utility braucht:
https://github.com/Krakenw/Stlink-Bootloaders/issues/1

von Tim K. (timkl94)


Lesenswert?

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).

von pegel (Gast)


Lesenswert?

Super!

von Tim K. (timkl94)


Lesenswert?

Vielen Dank für die Hilfe!

von Tim K. (timkl94)


Lesenswert?

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?

von Christopher J. (christopher_j23)


Lesenswert?

Eventuell Semihosting aktiviert?

von Tim K. (timkl94)


Lesenswert?

Christopher J. schrieb:
> Eventuell Semihosting aktiviert?

Wie kann ich das checken und deaktivieren, falls es aktiviert sein 
sollte?

: Bearbeitet durch User
von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

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?

von Johannes S. (Gast)


Lesenswert?

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).

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

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
Noch kein Account? Hier anmelden.