Ich habe das folgende benutzerdefinierte STM32F407vgt6-Board für ein Projekt entworfen.
Ich habe kürzlich die Teile gelötet und die Platine eingeschaltet. Ich habe versucht, das Board über ein STM32F429-Discovery-Board über die SWD-Schnittstelle zu programmieren, und es wurden zahlreiche Fehler angezeigt, die darauf hindeuteten, dass die MCU zurückgesetzt wurde. Dann habe ich den NRST-Pin sondiert und einen Wert von 0,40 Volt gelesen.
Die MCU ist brandneu. Alle Entkopplungskondensatoren scheinen genug Spannung zu bekommen (2,9 Volt). Regler funktioniert auch gut. Ich bin mir nicht sicher, warum der NRST-Pin auf niedriger Spannung liegt. Hier ist der relevante Teil des Board-Layouts.
edit1: Dies ist eine zweischichtige Platine, wobei die obere Schicht GND + Signal und die untere VDD + Signal ist. Ich denke, es ist erwähnenswert, dass der NRST manchmal auf 0,20 Volt abfällt. Es variiert nur um 0,20 - 0,40.
Ich kann ein Bild der Platine hinzufügen, wenn Sie sehen möchten, ob beim Löten etwas nicht stimmt. Hier sind die Bilder der Platine. Beachten Sie, dass ich versucht habe, die VCAP-Linie zu schneiden, aber es hat nicht geholfen, vorausgesetzt, ich habe die Linie erfolgreich geschnitten.
aktualisieren
Ich zog den NRST-Pin hoch. Danach konnte ich die MCU über das STM32F429-Board über das ST-Link-Dienstprogramm verbinden und programmieren. Das Dienstprogramm ST-Link gibt an, dass der Speicher programmiert und verifiziert ist. Ich habe ein kleines Programm geschrieben, das ein paar GPIO-Pins umschaltet, aber wenn ich die Spannung an diesen Pins messe, sehe ich nicht, dass sie hoch (3 V) oder niedrig (0 V) werden. Sie variieren nur um irrelevante Werte (1,2 V, 0,4 V, 0,9 V usw.).
Eine mögliche Erklärung dafür, NRST
dass es niedrig ist, ist, dass es von der MCU niedrig getrieben wird . Das ist möglich, weil die STM32-Familie diesen externen Pin ansteuert NRST
, wenn eines der internen Reset-Module die MCU zurücksetzen möchte. Der offensichtliche Kandidat in diesem Fall ist das Zurücksetzen der Stromversorgung, wenn ein Problem mit der Stromversorgung vorliegt. Dieses Diagramm stammt aus dem Anwendungshinweis ST AN4488, auf den unten verwiesen wird:
Da Sie berichten, dass dies NRST
bei 0,4 V und nicht bei einer noch niedrigeren Spannung liegt, ist es unwahrscheinlich, dass der Reset-Schalter selbst die Ursache ist, aber es lohnt sich, dies zu überprüfen.
Bei einer kurzen ersten Überprüfung Ihres Designs sehe ich zwei Hauptprobleme:
BOOT1
schwimmt
Obwohl BOOT0
der tatsächliche Logikpegel von geerdet BOOT1
den Startmodus nicht beeinflusst (wie in Tabelle 6 von ST AN4488 gezeigt, auf die unten verwiesen wird), habe ich kein Design gesehen, bei dem der BOOT1
Pin schwebend gelassen wird. Obwohl ich bezweifle, dass es das von Ihnen gemeldete spezifische Symptom verursachen würde, würde ich es auf einer gültigen Logikebene beheben. Zu Ihrer Information: Die STM32F4-Referenzdesigns haben 10k-Widerstände in Reihe mit beiden BOOT
Pins, bevor sie dann je nach Bedarf extern hoch oder niedrig gezogen werden.
VCAP1
und VCAP2
verbunden sind
Das ist mein Hauptanliegen. Ich habe die interne MCU-Architektur nicht gesehen, um den Unterschied zwischen diesen beiden Pins zu zeigen (die die interne 1,2-V-Leistungsdomäne des MCU-Kerns entkoppeln), aber beachten Sie dies im ST-Dokument „AN4488: Erste Schritte mit der STM32F4xxxx-MCU-Hardwareentwicklung “ . , diese beiden Pins sind jeweils separat mit einem 2,2-uF-Kondensator verbunden - und nicht, wie in Ihrem Schaltplan und Ihrer Leiterplatte gezeigt, miteinander verbunden und dann gemeinsam mit zwei 2,2-uF-Kondensatoren verbunden.
Ein Teil des Textes dazu im obigen Dokument ist etwas zweideutig, aber das Referenzschema auf PDF-Seite 34 zeigt deutlich, wie diese Pins verwendet werden sollten:
Wenn Sie sich Ihr PCB-Layout ansehen, können Sie anscheinend einfach die Leiterbahn abschneiden, die Ihre Kondensatoren verbindet, C11
und C13
die erforderliche Trennung durchführen. Stellen Sie außerdem sicher, dass Sie den angegebenen Kondensatortyp verwenden, falls Sie dies nicht bereits tun.
Meine Hypothese ist, dass diese falsche Verbindung zwischen den beiden VCAP
Pins dazu führen könnte, dass die MCU ihren internen Power-Reset aufrechterhält, was Sie als logisch niedrig (0,4 V) am NRST
Pin messen.
Ich empfehle, das gesamte Dokument zu lesen, einschließlich Abschnitt 9.3 mit dem Titel „MCU funktioniert nicht richtig“, der Ihnen möglicherweise weitere Ideen für zu untersuchende Bereiche gibt.
Sie benötigen wahrscheinlich einen Pull-up-Widerstand - etwa 10 K vom Reset-Pin zu Vcc - um sicherzustellen, dass der Reset-Pin High ist, wenn die Reset-Taste nicht gedrückt wird.
Tony Stewart EE75
Zeke
Tony Stewart EE75
Zeke
Tony Stewart EE75
Benutzer323693
Benutzer323693
Chris Stratton
SamGibson
NRST
und zu sehen, wie stabil es ist. (d) Haben Sie Vdd auch mit einem Scope überprüft?Scott Seidman
Zeke
Zeke
SamGibson
Zeke
SamGibson
Zeke
SamGibson
NRST
direkt an 3,3 V angeschlossen sind, Vdd jedoch nur 2,9 V beträgt, muss dies speziell überprüft werden, um festzustellen, ob dies zulässig ist. Ich kann hier nicht alle Vorschläge zur Fehlerbehebung in einen Kommentar einfügen. Wenn Sie den Chat hier auf SE nutzen möchten, lassen Sie es mich wissen.Zeke
SamGibson