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!
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.
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
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.
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
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.
VDDA (Pin 13) ist nicht angeschlossen, sollte mit an VDD -->STM32F401xB STM32F401xC Datasheet.
Bernd S. schrieb: > VDDA (Pin 13) ist nicht angeschlossen, sollte mit an VDD Ist aber nicht kriegsentscheidend für das Problem des TO.
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
:
Bearbeitet durch User
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."
Bernd S. schrieb: > "VDDA and VSSA must be connected to VDD and VSS, respectively." .... damit man die analogen Funktionen des Chips nutzen kann.
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.
:
Bearbeitet durch User
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.