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 :)