Ich habe eine einfache STM32-Karte entworfen. Unten sehen Sie die schematischen und Leiterplattenlayoutbilder:
Leiterplattenlayout mit beleuchtetem VDD:
Leiterplattenlayout mit hervorgehobenem GND:
In den obigen Bildern sind nur die Teile dieses Entwurfs gezeigt, die für meine Frage relevant sind.
Mein Problem ist: Ich habe versucht, den integrierten ST-Link eines STM32 Discovery Boards zu verwenden, um dieses benutzerdefinierte Board zu programmieren, aber es gelang mir noch nicht. Die ST-Link Utility-Anwendung auf dem PC kann den Programmierer erkennen, die Ziel-MCU jedoch nicht erkennen. Die Fehlermeldungen, die ich erhielt, waren: "Ziel nicht verbunden" und "ST-Link USB-Kommunikationsfehler".
Hier sind einige verwandte Fakten zu meinem Problem:
- Das STM32 Discovery Board funktioniert einwandfrei: Ich kann den integrierten ST-Link verwenden, um die integrierte STM32-MCU zu programmieren. Das ist in Ordnung.
- Die STM32-MCU wurde mit der richtigen Ausrichtung auf die benutzerdefinierte Platine gelötet. Ich habe das zweimal überprüft.
- Ich habe VDD- und SWD-Spuren überprüft. Sie sind gut angeschlossen (kein Lötproblem). Pin Boot0 liegt bei 0V. Pin NRST liegt bei 3,3V.
- Das SWD-Kabel ist kurz und nur 7-8 cm lang.
- Der STM32 auf meinem benutzerdefinierten Board ist vom selben Typ wie der auf dem Discovery Board.
Ich habe die Anweisungen im Handbuch des STM32 Discovery Board befolgt, wie das Discovery Board zum Programmieren einer externen STM32-MCU verwendet wird. Um genauer zu sein, habe ich die 2 CN3-Jumper entfernt und dann die Karten wie in dieser Tabelle verbunden:
Ich habe auch die Lötbrücke SB11 auf der Discovery-Platine entfernt (damit Pin NRST ordnungsgemäß funktioniert).
- Ich habe sowohl die ST-Link Utility App als auch Keil ausprobiert. Die Fehlermeldungen, die ich erhalten habe, sind die gleichen.
- Zuerst habe ich Pin 6 in der obigen Tabelle (SWO) nicht angeschlossen, da dies meines Wissens nicht erforderlich ist. Danach habe ich es aber auch angeschlossen, aber es hat immer noch nicht geklappt.
- Ich habe auch eine 100nF-Kappe von Pin NRST zu GND und dann einen 100k-Pull-up-Widerstand von diesem Pin zu VDD hinzugefügt. Das Problem bleibt weiterhin bestehen.
- Ich habe auch versucht, den Modus "Connect under Reset" des ST-Link Utility-Programms zu verwenden. Auch kein Glück.
Ich vermute, dass etwas mit dem Design nicht stimmt, bin mir aber nicht sicher. Bitte helfen Sie mir, das Problem zu lösen.
Vielen Dank :)
Antworten:
Vielen Dank für Ihre tollen Kommentare. Aufgrund dessen war ich zuversichtlich, dass mein Design fehlerfrei ist. Deshalb habe ich mich darauf konzentriert, nach Fehlern in der Hardware zu suchen. Und ich habe den Fehler gefunden! Dies ist ein Lötfehler.
Ich habe diesen Fehler gefunden, nachdem ich diese Anweisung befolgt habe: "Verwenden Sie ein Multimeter und testen Sie alle Verbindungen auf Kurzschlüsse oder fehlende Verbindung. Denken Sie daran, die Stifte / Pads / was auch immer wirklich leicht zu berühren, denn wenn Sie die Sonde fest drücken, können Sie dies beheben." "Die Verbindung wird vorübergehend hergestellt (zum Beispiel drücken Sie den Pin des IC auf die Leiterplatte auf der Leiterplatte und der Test ist in Ordnung, aber sobald Sie loslassen, biegt sich der Pin wieder nach oben)." Der ursprüngliche Beitrag ist hier .
quelle