Forum: Mikrocontroller und Digitale Elektronik stm32g431 st-link swclk swdio


von Rolf (Gast)


Lesenswert?

Hallo zusammen
ich habe eine kleine Testplatine für einen Stm32g431kbt6 erstellt und
versuche gerade diese mittels Stlink zu debuggen leider ohne Erfolg.

 Can not connect to target!
                  Please select "Connect Under Reset" mode from 
Target->Settings menu and try again.
                  If you're trying to connect to a low frequency 
application , please select a lower SWD Frequency mode from 
Target->Settings menu.

Einstellungen:

File=
address=0x08000000
address1=0x08000000
address2=0x00000000
size=
data_width=4
connection=SWD
SwclkFrequency=5K
freq=8000
Connection_Mode=Normal
DebugInSleepMode=1
Reset_Mode=SWReset
Parallelism=32_Bits
AP_ID=0
RunAfterProge=1
FlashChecksum=0
SkipErase=0
SkipFlashProtection=0
trace.log=1
[ExternalLoader]
ElfNumber=1
Elf1=C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK 
Utility\ST-LINK 
Utility\ExternalLoader\IS61WV102416BLL_STM324xG-EVAL.stldr

Auch die Verbindung zur MCU schlägt fehl.

von Cyblord -. (cyblord)


Lesenswert?

Einfach falsch verdrahtet oder das Ding läuft erst gar nicht.

Versorgung prüfen + messen.
Alle Anschlüsse, vor allem BOOTn,SWDIO,SWCLK,RESET,GND,VCC nochmal 
prüfen und durchklingeln.
Vor allem das Pinning zum STLink prüfen.

: Bearbeitet durch User
von jo mei (Gast)


Lesenswert?

Rolf schrieb:
> versuche gerade diese mittels Stlink zu debuggen

Welchen ST-Link?

Abhängig von der Version brauchst du zum Debuggen/Flashen genau
vier Leitungen:

SWDIO, SWCLK, GND, VCC   optional: RESET.

Dabei ist VCC Abhängig von der Version keine Versorgung vom
Debugger zum Zielsystem sondern eine Monitoring-Leitung vom
Zielsystem für den Debugger.

Regel: auch wenn es gerade noch funktionieren könnte (ich
wiederhole mich: abhängig von der Version des ST-Link) niemals
das Zielsystem vom Debugger ST-Link o.ä. versorgen sondern
eingenständige stabile Quelle verwenden! Auch wenn die ST-
Controller verdammt wenig Strom brauchen.

Meiner Meinung nach der meist gemachte Fehler hier im Forum.

von jo mei (Gast)


Lesenswert?

Rolf schrieb:
> ich habe eine kleine Testplatine für einen Stm32g431kbt6 erstellt und
> versuche gerade diese mittels Stlink zu debuggen leider ohne Erfolg.

Dabei darf man dann auch noch fragen (da du ja keine Hardware
zeigst) ob du denn ausreichend (und angemessen platziert) Abblock-
Kondensatoren verwendet hast.

von m.n. (Gast)


Lesenswert?

jo mei schrieb:
> ob du denn ausreichend (und angemessen platziert) Abblock-
> Kondensatoren verwendet hast.

Das ist anfangs noch unkritisch. Zum einen werden nicht viel Cs benötigt 
und zum anderen läuft zunächst nur der interne HSI mit 16 MHz, was keine 
hohe Anforderung ist.
Wichtiger wäre es, den Schaltplan zu zeigen. Falls die Möglichkeit 
besteht, über den internen Bootloader eine Verbindung aufzubauen, 
probiere es aus. Wenn das fehlschlägt, ist der µC falsch verdrahtet.

von Cyblord -. (cyblord)


Lesenswert?

m.n. schrieb:
> Das ist anfangs noch unkritisch. Zum einen werden nicht viel Cs benötigt
> und zum anderen läuft zunächst nur der interne HSI mit 16 MHz, was keine
> hohe Anforderung ist.

Allerdings konnte ich gerade bei STM32 schon einige male beobachten dass 
ohne einen Abblock-C kein SWD lief.
Das ist also keine rein theoretische Bedingung, sondern kann tatsächlich 
den Unterschied zwischen Geht und Geht nicht ausmachen.
Bei AVRs habe ich das z.B. noch nie beobachtet. Simple ISP 
Programmierung geht da eigentlich immer, egal wie verkorkst man die 
betreibt.
Natürlich sollte man IMMER Abblock-C vorsehen, nur so manche Gesellen 
glauben das wäre rein um der C-Kirche zu huldigen und hätte in 
Wirklichkeit gar keine direkten Auswirkungen.

von Uwe Bonnes (Gast)


Lesenswert?

Cyblord -. schrieb:
> Natürlich sollte man IMMER Abblock-C vorsehen, nur so manche Gesellen
> glauben das wäre rein um der C-Kirche zu huldigen und hätte in
> Wirklichkeit gar keine direkten Auswirkungen.

Oder im Schaltplan sind alle Abblock-C unter rechts zusammengefasst und 
der Layouter hat die Kondensatoren dann auch alle unten rechts 
zusammengefasst....

von Uwe Bonnes (Gast)


Lesenswert?

Welche Spannung hat den das Target? Stlink hat (meist) keine 
Spannungsanpassung, falls die Targetspannung deutlich unter 3 Volt ist, 
wird es auch nicht gehen.

von jo mei (Gast)


Lesenswert?

Cyblord -. schrieb:
> Natürlich sollte man IMMER Abblock-C vorsehen, nur so manche Gesellen
> glauben das wäre rein um der C-Kirche zu huldigen und hätte in
> Wirklichkeit gar keine direkten Auswirkungen.

Danke!

Ist schon der Hammer wie der gutgemeinte Hinweis auf die Abblock-
Kondensatoren immer wieder verharmlost bzw. niedergeschlagen wird.
Das ist das Wsser auf die Mühlen der "wieso? geht doch auch ohne"-
Verfechter. Ausserdem muss man ja immer auch noch seinen eigenen
Senf dazugeben, auch wenn's in die falsche Richtung läuft. Nur
weiter so, mein Gruß an die Pfuscher ....

von m.n. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Allerdings konnte ich gerade bei STM32 schon einige male beobachten dass
> ohne einen Abblock-C kein SWD lief.

Wer so blöd ist, diese ganz wegzulassen, hat es nicht anders verdient.
Hier ging es um "ausreichend (und angemessen platziert)". Beim G431 sind 
"nur" drei Cs notwendig, aber unter der 16 MHz Startbedingung würde auch 
ein C in Nähe des µC reichen, um eine SWD-Verbindung herzustellen.

jo mei schrieb:
> Ist schon der Hammer wie der gutgemeinte Hinweis auf die Abblock-
> Kondensatoren immer wieder verharmlost bzw. niedergeschlagen wird.

Na ja, hier gibt es "Experten", die gezielt nichts begreifen wollen.
Da wird dann die Fehlersuche schnell auf Nichtigkeiten verlagert und 
verzögert.

von Stefan F. (Gast)


Lesenswert?

Die SWD Schnittstelle kann von der Software auf dem µC deaktiviert 
werden. Bei Cube-HAL Projekten ist das die Standard-Vorgabe. Sie ist 
auch in einigen Sleep Modi inaktiv.

In all diesen Fällen muss man die Reset Leitung mit dem ST-Link 
verbinden oder die Option "Connect On Reset" verwenden und den Reste 
manuell im richtigen Moment auslösen.

von Rolf (Gast)


Angehängte Dateien:

Lesenswert?

zunächst einmal Danke für eure Reaktionen.
ich habe vergessen zu sagen dass es sich um ein ST-link v2 handelt.
ich habe schon mit einen stm32f103c8cb experimentiert  und da hat alles 
-einschließlich das programmieren- gut funktioniert.
Die Spannung ist durch ein ld1117 3.3v geregelt. Ausgangsspannung 5v vom
Copmuter. mir ist klar dass das nur messspannungen sind. Swdio und swckl
haben 10kOhm Pull up Widerstände. Ebenfalls habe ich den Boot0pin auf+

nrstpin auf 0v gezogen und dann auf "erase" bei gleichzeitigem loslassen
brachte ebenfalls kein erfolg. Die Software des St-link V2 ist heute 
gelösscht und aktualisiert worden und müsste so auf den neuesten Stand 
sein.
Der Stm32g4 ist neu und ist fabrikneu.

von jo mei (Gast)


Lesenswert?

Rolf schrieb:
> Der Stm32g4 ist neu und ist fabrikneu.

Grober Fehler:
Kein Stützkondensator am Eingang des Spannungsreglers.
Das ist der wichtigste Kondensator überhaupt.
Da spielt es keine Rolle woher die Versorgung kommt.

von jo mei (Gast)


Lesenswert?

jo mei schrieb:
> Grober Fehler:

Ob das dein eigentliches Problem löst ist deswegen noch nicht klar.

von m.n. (Gast)


Lesenswert?

Rolf schrieb:
> Ebenfalls habe ich den Boot0pin auf+

Das ist falsch.

von Rolf (Gast)


Angehängte Dateien:

Lesenswert?

Danke für den Tipp habe die Spannungsversorgung umgeändert:
ein 680nf kondensator direktam eingang des l1117 und nochmal ein Elko 
mit 1000uf direkt am Eingen vor der Diode 50v 1a. immenoch das gleiche
Ergebnis

von jo mei (Gast)


Lesenswert?

Rolf schrieb:
> immenoch das gleiche Ergebnis

Wenn du den Bootpin auf "richtig" gesetzt hast geht es dann
ans Eingemachte. Schwingt dein Controller überhaupt? Musst
du mit dem Oszilloskop am Quarz-Output Pin nachweisen.

Dann noch prüfen ob die Lastkapazitäten am Quarz eine kurze
Verbindung zu den Massepins des Controllers haben. Am Besten
du zeigst auch gleich dein Layout bzw. Aufbau.

von Stefan F. (Gast)


Lesenswert?

Rolf schrieb:
> Danke für den Tipp habe die Spannungsversorgung umgeändert:
> ein 680nf kondensator direktam eingang des l1117

Halte dich Lieber an die Vorgaben im Datenblatt! Die Kapzitäten am 
Spannungsregler müssen nicht nur die richtige Größe haben sondern auch 
den richtigen ESR. Manche Regler brauchen Low-ESR, manche funktionieren 
ausgerechnet damit nicht.

von m.n. (Gast)


Lesenswert?

jo mei schrieb:
> Dann noch prüfen ob die Lastkapazitäten am Quarz eine kurze
> Verbindung zu den Massepins des Controllers haben.

Ich sehe schon: ein kapazitiver Spaßvogel.
Solange HSE nicht per Programm aktiviert ist, schwingt da garnichts ;-)

von Rolf (Gast)


Angehängte Dateien:

Lesenswert?

Kam mir auch ein bisschen komisch vor. habe trotzdem mal das Oszi 
rausgenommen um zu sehen was an swclk raus kommt: und siehe da die MCU 
meldet´
sich! wenn ich wieder weggehe meldet sich die MCU nicht mehr...

von Cyblord -. (cyblord)


Lesenswert?

Rolf schrieb:
> Kam mir auch ein bisschen komisch vor. habe trotzdem mal das Oszi
> rausgenommen um zu sehen was an swclk raus kommt: und siehe da die MCU
> meldet´
> sich! wenn ich wieder weggehe meldet sich die MCU nicht mehr...

Sicher mal wieder ein Massefehler. Darum schrieb ich ja, alle wichtigen 
Signale mal durchklingeln.

Die Platine ist auch nicht gerade ein Paradebeispiel für Home-Made-PCBs. 
Da hätte man auch den 1 Euro in eine fertige LQFP Breakout investieren 
können, anstatt sich in Ätz-Orgien zu ergehen und jetzt gleich zwei 
Problemfelder zu haben: Das PCB und den Controller.

von Rolf (Gast)


Lesenswert?

Das Bord funktioniert Danke für eure Mühe habe beim Programmer die 
falsche GND
benutzt jetzt funktioniert. Stichpunkt Masse ist richtig vielen Danbk 
für eure Mühe die ihr euch gegeben habt.

Beitrag #6563109 wurde vom Autor gelöscht.
von Rolf (Gast)


Lesenswert?

Eine weitere Verbesserung ist ein 0.35 nf Kondensator an swclk
jetz ist alles o. k.

von Cyblord -. (cyblord)


Lesenswert?

Rolf schrieb:
> Eine weitere Verbesserung ist ein 0.35 nf Kondensator an swclk
> jetz ist alles o. k.

Kapazitäten an eine Taktleitung hinzuzufügen ist mehr als fraglich. Es 
scheint mit deiner Schaltung stimmt immer noch was nicht.

von m.n. (Gast)


Lesenswert?

Rolf schrieb:
> Eine weitere Verbesserung ist ein 0.35 nf Kondensator an swclk
> jetz ist alles o. k.

Das ist genau der Müll der dabei rauskommt, wenn man auf Leute hört, die 
an allen unmöglichen Stellen mit Kondensatoren um sich werfen. An swclk 
hat kein Kondensator etwas verloren!

Der Aufbau auf Deinem Foto ist nicht für Schaltungen geeignet, die mit 
170 MHz laufen sollen. Es sei denn, Du möchtest einen Störsender bauen.
Für Deine Anfänge mit einem G431 würde ich Dir ein Nucleo-Board 
empfehlen: 
https://de.farnell.com/stmicroelectronics/nucleo-g431kb/entwicklungsboard-32bit-arm-cortex/dp/3132398?st=nucleo

von Stefan F. (Gast)


Lesenswert?

Ein Kondensator an einer Taktleitung ist ungefähr so sinnvoll und 
attraktiv, wie ein Sack Zement am Türknauf.

von jo mei (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ein Kondensator an einer Taktleitung ist ungefähr so sinnvoll und
> attraktiv, wie ein Sack Zement am Türknauf.

Ja so ungefähr ...

Wenn man diesen Aufbau sieht dann ist sowieso Hopfen und Malz
verloren. Rückblickend muss man sagen dass man eigentlich oft
von vorne herein einen Aufbau verlangen sollte. Denn die
Erfahrung hier im Forum zeigt dass sehr viele Probleme davon
kommen dass ein Anblick auf die real vorliegende Hardware einem
die Hände über dem Kopf zusammenschlagen lässt.

Falls man den Aufbau sofort bei Thread-Start gesehen hätte
wäre der Thread ganz anders verlaufen.

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.