Forum: Mikrocontroller und Digitale Elektronik Hilfe benötigt - Debugger erkennt STM32F401RE-Mikrocontroller nicht?


von Strayker (strayker)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community,

ich habe mein eigenes Mikrocontroller-Board basierend auf dem 
STM32F401RE designed und stehe vor einem Problem. Der Debugger erkennt 
den Mikrocontroller aus irgendeinem Grund nicht. Ich hoffe, dass ihr mir 
bei der Fehlersuche behilflich sein könnt.

Hier sind die Details meines Projekts:

Mikrocontroller: STM32F401RE
Debugger: OpenOCD , STLINK - V2
Fehler: Der Debugger erkennt den Mikrocontroller nicht.
Ich vermute, dass ich möglicherweise einen Verdrahtungsfehler gemacht 
habe. Daher bitte ich euch um Hilfe, um den Fehler zu identifizieren und 
zu beheben.

Hier sind einige Punkte, die ich bereits überprüft habe:

Spannungsversorgung: Ich habe die Spannungsversorgung des 
Mikrocontrollers überprüft und bin sicher, dass sie ordnungsgemäß 
angeschlossen ist.
Verbindungen: Ich habe alle Verbindungen zwischen dem Debugger und dem 
Mikrocontroller überprüft, um sicherzustellen, dass sie korrekt 
verdrahtet sind. Allerdings habe ich möglicherweise etwas übersehen.
Ich bin offen für alle Ratschläge und Vorschläge, um das Problem zu 
lösen. Vielleicht habt ihr ähnliche Erfahrungen gemacht oder kennt 
mögliche Stolpersteine bei der Verwendung des STM32F401RE.

Vielen Dank im Voraus für eure Unterstützung!

von J. S. (jojos)


Lesenswert?

BOOT0 fest auf GND ist nicht gut, besser mit Pull Down und Jumper das 
man den auf High Pegel ziehen kann. Wenn der Controller das SWD 
deaktiviert hat oder im Sleep Mode schlummert, dann braucht man das um 
den wieder per SWD ansprechen zu können.

von Michael F. (Firma: IAR Systems) (michael_iar)


Lesenswert?

Moin,

floating-pins am Debug-Interface sind selten eine gute Idee...

Hat der Debugger nur Zugriff auf SWDIO und SWCLK oder gibt es da auch 
einen Reset-Pin, um die MCU in einen definierten Zustand zu versetzen?

Gruß,
Michael

von J. S. (jojos)


Lesenswert?

ja, Reset würde ich mittlerweile auch immer auf den Debug Anschluss 
legen, auch um den Controller aus dem Schlaf zu wecken. Praktisch ist 
der 14 pol. Stecker von ST mit dem UART drauf, so Debug Messages 
auszugeben ist trotz Debugger oft sinnvoll.

von Frank K. (fchk)


Lesenswert?

Genau. BOOT0 sollte über einen Pulldown geführt sein.
Dann führe ich immer noch SRST (System Reset, am Prozessor NRST (Pin 7)) 
mit raus. NRST sollte einen 10k Pullup bekommen.
Eventuell noch einen 1M Widerstand parallel zum Quarz, hilft beim 
Anschwingen und schadet nicht.

Dann habe ich mir angewöhnt, ESD-Schutzdioden und Serienwiderstände (22R 
oder so)) an die ganzen JTAG/SWD-Pins und an alles, was sonst so 
rausgeht, zu machen. Das verhindert Schäden im späteren Betrieb.

Ich verwende inzwischen den STLINKV3-MINI(E) und den 14-pinnigen 
STDC-Stecker. Der hat den Vorteil, dass da auch gleich noch ein 
Debug-UART mit drauf ist. Ich habe den BOOT0-Pin noch auf einen 
unbelegten Pin geführt, um ihn in der Produktion auch von extern 
bedienen kann. Ist jetzt nicht funktionsentscheidend, aber vielleicht 
doch eine nützliche Idee.

fchk

von Wastl (hartundweichware)


Lesenswert?

Strayker schrieb:
> Vielen Dank im Voraus für eure Unterstützung!

Ich sehe nicht alle Vss-Pins angeschlossen. Wenn dem wirklich
so ist dann ist das ein Fehler (ich habe schon gelesen dass
manche Schaltpläne "überflüssige" Pins unterschlagen).

Vss-Pins wären nach meinem Datenblatt für das LQFP64-Gehäuse
die 18, 31, 47 und 63.

von Bernd S. (soundgott)


Lesenswert?

VDDA (Pin 13) ist nicht angeschlossen, sollte mit an VDD
-->STM32F401xB STM32F401xC Datasheet.

von Wastl (hartundweichware)


Lesenswert?

Bernd S. schrieb:
> VDDA (Pin 13) ist nicht angeschlossen, sollte mit an VDD

Ist aber nicht kriegsentscheidend für das Problem des TO.

von Stefan F. (Gast)


Lesenswert?

Es gibt ja einige Zustände, in denen die SWJ Schnittstelle nicht 
funktioniert.

Hast du schon ein Programm auf den Mikrocontroller geladen und bist du 
sicher, dass es die Schnittstelle nicht deaktiviert oder in einen Sleep 
Modus geht? Funktioniert der Taktgeber?

Du kannst "Connect under Reset" versuchen.
https://www.youtube.com/watch?v=jEz0C2bT2M0

von Bernd S. (soundgott)


Lesenswert?

Wastl schrieb:
> Bernd S. schrieb:
>> VDDA (Pin 13) ist nicht angeschlossen, sollte mit an VDD
>
> Ist aber nicht kriegsentscheidend für das Problem des TO.

Referenzmanual:
"VDDA and VSSA must be connected to VDD and VSS, respectively."

von Wastl (hartundweichware)


Lesenswert?

Bernd S. schrieb:
> "VDDA and VSSA must be connected to VDD and VSS, respectively."

.... damit man die analogen Funktionen des Chips nutzen kann.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> .... damit man die analogen Funktionen des Chips nutzen kann.

Die RC und PLL Module hängen da laut Datenblatt auch dran.

Man beachte dem Nebensatz "always ... in the permitted range". Da steht 
nicht "if you use analog features".

Ich möchte mal sehen, wie du maximal 50 mV Differenz einhalten willst, 
wenn VDD 3,3 V hat und VDDA 0,0 V hat.

von Wastl (hartundweichware)


Lesenswert?

Stefan F. schrieb:
> Die RC und PLL Module hängen da laut Datenblatt auch dran.

Ok, eingesehen.

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.