Wie ST-Link die MCU mithilfe des Reset-Pins ZURÜCKSETZEN? Wie verbinde ich den Boot0-Pin, wenn er nicht verwendet wird und die SWD-Schnittstelle verwendet wird?

Ich entwerfe eine kundenspezifische Leiterplatte basierend auf dem Mikrocontroller STM32F401RCT6 . Ich verwende die SWD-Schnittstelle und STlink, um den Mikrocontroller zu programmieren und zu debuggen.

Ich habe verstanden, dass der Reset-Pin zum ZURÜCKSETZEN der MCU verwendet wird, die alle Registeruhren usw. enthält. Wenn der Reset-Pin extern mit Masse verbunden ist, befindet er sich im Reset-Zustand, wenn er nicht mit Masse verbunden ist, befindet er sich nicht im Reset-Zustand.

Ich habe auch verstanden, dass der ST-LINK zurückgesetzt wird und dann das Programm über die SWD-Schnittstelle sendet.

Frage 1:

Meine Frage ist, wie ST-Link zurückgesetzt wird, da der Reset-Pin des Mikrocontrollers laut Datenblatt über einen Knopfschalter mit Masse verbunden sein sollte, damit wir durch Drücken manuell zurücksetzen können. Aber wenn ich mich auf die Schaltpläne beziehe, um den Reset-Pin mit der SWD-Schnittstelle zu verbinden, habe ich zwei Verbindungen gesehen: eine ist über den Knopfschalter mit Masse verbunden und eine andere ist direkt mit dem SWD-Anschluss verbunden . Dann war ich verwirrt, wie der Reset-Pin über den Knopfschalter mit Masse verbunden ist und wie STlink die MCU zurücksetzt, wenn der Reset-Pin direkt mit dem SWD-Anschluss verbunden ist, ohne ihn mit Masse zu verbinden.

Wenn wir also zurücksetzen möchten, müssen wir manuell zurücksetzen, indem wir die Taste drücken. Wenn es so ist, warum brauchen wir dann einen Reset-Pin für die SWD-Schnittstelle zum ST-Link?

Oder ist es so, als ob der Reset-Pin des Inside Stlink Programmer mit GND verbunden ist. Für das automatische Zurücksetzen über STlink verwenden wir also den RESET-Pin in der SWD-Schnittstelle und für das manuelle Zurücksetzen verwenden wir die Taste. Hab ich recht? Wenn ich falsch liege, korrigiert mich.

Geben Sie hier die Bildbeschreibung ein

Und meine andere Frage ist: Ich verwende die SWD-Schnittstelle zum Programmieren und Debuggen, da ich die SWD-Schnittstelle und nicht den Bootloader verwende, sollte ich den Boot0-Pin mit Masse verbinden. Oder wird der Boot0-Pin (Bootloader) beim Programmieren über die SWD-Schnittstelle verwendet?

Antworten (2)

Ich habe gerade eine Platine für einen STM32 (STM32F042) fertiggestellt. Das Design ist minimal:

  • BOOT0 ist mit Masse verbunden
  • NRST ist überhaupt nicht verbunden
  • Für Programmierung und Debugging stehen SWDIO und SWDCLK zur Verfügung

Der ST-Link kann die MCU mit einem Befehl über die SWD-Schnittstelle zurücksetzen. Wenn du NRST anschließen willst, gehe wie von Justme beschrieben vor .

Aktualisieren

Zur Klärung von Frage 2: BOOT0 wird nicht benötigt, wenn Sie SWD verwenden. Es wird benötigt, wenn Sie Firmware über UART hochladen möchten. Also einfach mit Masse verbinden.

Der Taster verbindet den Reset-Pin nur dann mit Masse, wenn er gedrückt wird. Es verhindert nicht, dass der ST-Link es auf Masse zieht, um es zurückzusetzen.

Wenn Sie keinen physischen Reset-Knopf wollen oder brauchen, dann zeichnen Sie ihn nicht.

Der ST-Link kann das Ziel über SWD oder mit dem physischen Reset-Pin zurücksetzen. Es benötigt keinen physischen Reset-Pin, er ist für Fälle vorhanden, in denen das Ziel SWD-Pins für etwas anderes verwendet, sodass ein Reset über SWD nicht verfügbar ist.

Wenn Sie den integrierten Bootloader nie ausführen möchten, verbinden Sie Boot0 mit Masse, um das Benutzerprogramm immer auszuführen.