Verwendung von VCC- und GND-Pins auf Programmierköpfen

In einem kürzlich von mir durchgeführten Projekt mit einem ESP32 und einem CC1352 ist mir aufgefallen, dass es auf beiden Programmier-Headern 3V3- und GND-Pins gibt, die vermutlich dazu dienen, das Gerät mit Strom zu versorgen, wenn Sie es programmieren möchten, wenn es nicht mit irgendetwas verbunden ist .

In meinem Szenario werden jedoch beide MCUs von der Leiterplatte mit Strom versorgt, auf der sie sich befinden. Mir ist aufgefallen, dass ich den Flash-Prozess nicht zuverlässig zum Laufen bringen konnte, wenn ich die Chips von der Platine mit Strom versorgte und nur die Nicht-Stromversorgungsstifte anschloss, die für das ESP TX-RX-IO0-EN und für das CC1352 RX- sind. TX-JTAG. Wenn ich die Stromversorgung auf der Platine deaktiviere und auch die 3V3-GND-Pins verbinde, kann ich auf beiden MCUs jederzeit zuverlässig flashen.

Ist dies das erwartete Verhalten?

Ich finde es ziemlich seltsam, dass ein Kunde, wenn er eine MCU auf einem großen Board hat, die ganze Maschine ausschalten muss, nur um diesen bestimmten Chip zu flashen. Zum Beispiel gibt es oft JTAG-Anschlüsse auf Motherboards. Soll der Benutzer den PC ausschalten, um die JTAG-Schnittstelle zu verwenden?

BEARBEITEN

Ich habe vergessen zu erwähnen, dass am anderen Ende des Programmier-Headers, zum Beispiel für den CC1352, ein Debug-Probe vom CC1352 Launchpad kommt . Ich zögere, seinen VCC-GND mit meiner Platine zu verbinden, weil die PCB-Komponenten VCC-GND vom Spannungsregler nehmen und auf dem Launchpad vom USB kommen. Wenn ich die beiden überbrücke, würde ich den VCC von USB 2.0 mit dem VCC eines Spannungsreglers verbinden, dasselbe gilt für GND, ich bin mir nicht sicher, ob das sicher wäre. Ähnliche Situation auf dem ESP32.

Mein Segger ist auf der PC-Seite eingestellt, ob es Strom über den JTAG-Anschluss liefern soll oder nicht. Sie müssen jedoch den Erdungsstift anschließen ... Signalreferenz.
Natürlich braucht man den Boden. Wenn Sie mehrere Gleichstromquellen unterstützen müssen, die denselben Stromkreis versorgen, schützen Sie sie einfach mit einer Diode, damit sie sich nicht gegenseitig rückkoppeln können. Sie haben uns nicht gezeigt, wie Ihr Board aussieht. Wenn Sie Entwicklungsplatinen verwenden, verfügen diese möglicherweise bereits über diese Funktionen. Wenn Sie das Board gebaut haben, müssen Sie diese Funktionen hinzufügen.

Antworten (2)

Nun, Sie müssen auf jeden Fall den GND-Pin anschließen, damit der Programmierer und die MCU eine gemeinsame Masse haben.

Der 3V3-Pin ist nicht unbedingt dazu da, die MCU mit Strom zu versorgen. Einige Programmierer (z. B. J-Link von Segger) arbeiten mit MCUs mit unterschiedlichen Spannungen, und dieser Pin wird nur zum Erfassen des Spannungspegels für die Schnittstelle verwendet. Ohne ein Herstellerdatenblatt Ihres Debuggers können wir es so oder so nicht wissen.

Um die Antwort von @Elliot zu ergänzen, habe ich Debugger (SWD für STM32 oder NXP Cortex-M) gesehen, die einen Pegelumsetzer hatten - wobei die Leitungen zur MCU gingen, die von der VCC der Platine gespeist wurde.