Kann ich etwas anderes an Programmierpins in STM32 (SWD) anschließen?

Wie im Thema: Kann ich etwas anderes an Programmierpins in STM32 (SWD) anschließen? Zum Beispiel eine einzelne LED mit Strombegrenzungswiderstand, die mit SWDIO- und SWCLK-Pins verbunden ist. Beeinflusst diese Last die Programmierung über diese Schnittstelle (SWD)? Sollte ich einen Puffer verwenden?

Ja, Sie können, und ja, es könnte. Das Erstellen eines Puffers für diese Art von Zeug ist oft schwieriger, als es scheint, hineinzugehen.
So ziemlich jedes moderne CMOS-Gatter wäre als Puffer geeignet, was Eingangsüberlegungen betrifft; es geht eher darum, was die gewünschte LED oder was auch immer ansteuern kann.

Antworten (1)

Ja, Sie können STM32 SWD-Pins als GPIO verwenden, und ja, Sie müssen über die Auswirkungen auf die SWD-Funktionalität nachdenken.

Wahrscheinlich möchten Sie, dass alles andere, was von diesen Leitungen angesteuert wird, hinter einem Puffer mit einem hochohmigen Eingang liegt, und Sie möchten, dass alles, was diese Leitungen ansteuern könnte , hinter einer bestimmten Freigabe liegt.

Es besteht jedoch auch das Risiko, diese Leitungen neu zu verwenden, insbesondere als GPIO-Ausgang. In diesem Fall können Sie keine SWD-Sonde an das laufende System anschließen.

Mit einem voll funktionsfähigen SWD-Adapter sollten Sie in der Lage sein, ein koordiniertes „Connect under Reset“ durchzuführen, bei dem der CPU-Kern zurückgesetzt wird und die SWD-Verbindung verwendet wird, um den Betrieb auszusetzen, bevor das Programm die Pins neu verwenden und SWD deaktivieren kann. Dies kann jedoch bei manchen Setups schwierig sein.

Wenn Sie also die Pins neu verwenden möchten, ist es im Allgemeinen am besten, wenn ein Programm beim Zurücksetzen ein oder zwei Sekunden Verzögerung bereitstellt, bevor Sie dies tun.

Wahrscheinlich möchten Sie dies auch überhaupt von einer Makrodefinition abhängig machen, vielleicht einer, die auf der Compiler-Kommandozeile übergeben wird. Wenn Sie sich entscheiden, einen Breakpoint-Debugger zu verwenden, können Sie den Code auf diese Weise mit alternativen Einstellungen erstellen, die die SWD-Pins nicht wiederverwenden (vielleicht so etwas wie arm-non-eabi-gcc -DNO_REPURPOSE_SWD), und sie daher im SWD-Modus arbeiten lassen, damit der Debugger dies zulässt Funktion.

Und was auch immer Sie an diese Pins anschließen, darf natürlich nicht problematisch funktionieren, wenn es SWD-Verkehr und nicht die beabsichtigten Signale sieht. Also Dinge wie Motorantriebe sind eine sehr schlechte Idee; aber Status-LEDs oder serielle Hinweismeldungsausgaben könnten in Ordnung sein.

Danke für die Antwort . Das ist eigentlich eine gute Idee, einen Teil des Codes zu deaktivieren, der diese Pins beim Debuggen der MCU verwendet. Später nach der Entwicklung können diese Pins als Standard-GPIO für weniger wichtige Dinge verwendet werden. Aber jetzt denke ich, dass es besser ist, eine MCU zu kaufen, die etwas mehr Pins hat (sie sind nicht so teuer), damit wir keine Puffer usw. verwenden müssen.