Problem mit ST-Board zur BLDC-Ansteuerung

OP #6002541
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.
Angehängte Dateien:
Gast #6002561
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.
Gast #6002654
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.
OP #6002673
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.
OP #6002821
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.
OP #6002948
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'
Gast #6002991
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.
Gast #6003024
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.
Gast #6003092
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.
Gast #6003114
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"?
Gast #6003139
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.
Gast #6003191
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.
OP #6003666
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.
OP #6003676
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.
Gast #6003886
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.
(Firma: TU Darmstadt) #6012609
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?
Gast #6012634
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).
(Firma: TU Darmstadt) #6012715
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.

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