STM32L MCU - SWD-Pin auf der Karte stimmt nicht mit der Pinbelegung des Prozessors überein


7

Ich habe mein Hardware-Hack-Projekt auf einem Luftqualitätsüberwachungsgerät durchgeführt, das einen STM32L476Prozessor verwendet.

Airbox-Stifte Meine einzigen Erfahrungen mit Hardware-Hacking sind IPcams oder WLAN-Router mit verfügbaren UART-Konsolen. Aber nach einigem Nachforschen und Versuchen konnte ich keinen Weg finden, mit meiner Airbox zu interagieren.
(Die USART-Pins drucken beim Booten einfach eine UUID aus und dann passiert nichts mehr.)

Ich denke, meine nächstbeste Wette sind diese SWD-Pins. Ich gehe dann weiter, um das Datenblatt von zu erhalten STM32L476und bin auf dieses Problem gestoßen.

Laut Datenblatt SWDIOund SWCLKentspricht Pin PA13und PA14kein anderer Pin hat alternative Funktionen, um als SWDIO oder SWCLK zu arbeiten. Aber schauen Sie genau hin und sind nicht einmal mit den an Bord gekennzeichneten Stiften verbunden . und sind die einzigen, die Pinbelegungen haben, daher denke ich, dass sie sehr hohe Wahrscheinlichkeiten haben, von Entwicklern als Debugging-Ports verwendet zu werden. Aber soweit ich weiß, benötigen STM32-Chips nur zwei Pins, um mit SWD zu debuggen, und es sind 8 Pins an Bord! Diese Schaltung macht für mich einfach keinen Sinn: ((Pinbelegung STM32L476 STM32L476 Pin Definition


PA13PA14SWD1Geben Sie hier die Bildbeschreibung ein
SWD1USART

Ich bin sehr neu in der Hardware, daher weiß ich nicht, was Hardwareentwickler normalerweise tun. Ist es üblich, dass einige Pins an Bord als A markiert sind, aber wirklich als B funktionieren? Oder habe ich nur einige sehr dumme Fehler gemacht, als ich meine Nachforschungen angestellt habe?


Bearbeiten:

Nachdem ich alle Kommentare und Antworten gelesen hatte, führte ich einige Tests durch und listete einige Merkmale dieser Pins auf: Ich denke, ich bin gut, um mit dem nächsten Schritt fortzufahren? Es gibt einfach so viel zu lernen, während ich auf das Eintreffen meines ST-Links V2 warte. Vielen Dank an alle, die mir mit größter Freundlichkeit und Hilfe geholfen habenGeben Sie hier die Bildbeschreibung ein


2
Haben Sie gemessen, dass von keinem dieser Header-Pins eine Verbindung zu den SWD-Pins besteht, oder tun Sie dies nur, indem Sie dem Trace optisch folgen?
Arsenal

1
@Arsenal Nun ... nachdem ich Ihren Kommentar gelesen hatte, versuchte ich, mit meinem Multimeter einen Durchgangstest für diese Pins durchzuführen, und bekam wirklich zwei Pins in SWD1, die mit PA13 und PA14 kontinuierlich sind. Wie dumm bin ich, eine Schaltung nach ihrem Aussehen zu beurteilen. D: .... Wie auch immer, ich bin wirklich dankbar für Ihren freundlichen und schnellen Kommentar!
Jimmy.D

1
Sie müssten angeschlossen werden oder könnten es nicht programmieren. Sie können 8-Draht-JTAG oder SWD im selben Anschluss verwenden. SWD verwendet zwei Drähte und Sie benötigen auch Masse (es hilft auch, VCC zu haben)
Voltage Spike

@ Laptop2d Die beiden Drähte, die Sie erwähnt haben, sind SWDIO und SWCLK. Verstehe ich das richtig? Ich habe es geschafft, GND zu finden, bin mir aber nicht ganz sicher, welches Vcc ist. Mein einziges Wissen ist, dass Vcc in SWD als Pegelumsetzer verwendet wird, aber ich weiß nicht, wie ich sicherstellen soll, welcher es ist ..... Es gibt jedoch einen 5-V-Pin (diesen Pin an der rechten Ecke, der mit einem verbunden ist sehr dicker Draht) Ist es sicher anzunehmen, dass es sich um einen SWD Vcc-Stift handelt?
Jimmy.D

@ Jimmy.D Ohne einen Schaltplan Ihres Boards gibt es keine Möglichkeit zu wissen. Wenn Sie keinen Schaltplan haben, müssen Sie einen von Ihrer Leiterplatte zurückentwickeln.
Spannungsspitze

Antworten:


11

Verwenden Sie ein Multimeter. Sie werden wahrscheinlich feststellen , dass diese Stifte sind mit dem SWD Pins verbunden. Beachten Sie, dass PA14 eindeutig zu einer Durchkontaktierung führt, die dann entlang der Unterseite der Leiterplatte verläuft.

PA13 läuft höchstwahrscheinlich unter dem Mikro und in eine Durchkontaktierung und läuft auch durch die untere Schicht zum SWD-Header.

Nur weil man etwas von oben sehen und kann nicht sehen , eine Verbindung aufzubauen , bedeutet nicht , dass sie nicht da ist. Schauen Sie sich PA14 an. Können Sie eine logische Methode zum Ausführen einer Spur zu den SWD-Header-Pins auf der obersten Ebene erkennen? Nein, Sie müssten viele Spuren überqueren, was Sie einfach nicht können. Aus diesem Grund werden Durchkontaktierungen verwendet, damit die Spur auf der anderen Seite der Leiterplatte fortgesetzt werden kann.

Sie sollten niemals auf eine Leiterplatte schauen und davon ausgehen, dass sie nicht angeschlossen ist, da Sie auf der Oberseite einer Leiterplatte keine Spur sehen können. Holen Sie sich ein Multimeter und prüfen Sie den Durchgang. Ich vermute, Sie werden feststellen, dass dort eine Verbindung besteht.

Es gibt tatsächlich 6 SWD-Pins, die zum Programmieren verwendet werden (wenn Sie über SWD programmieren), nämlich V +, GND, RST, SWIO, SWCLK und SWO. Wenn diese Karte über SWD programmiert wurde, werden viele vorgefertigte Flachkabel für die Programmierung verwendet, wie zum Beispiel dieses:

Geben Sie hier die Bildbeschreibung ein

Und der Programmierer hat eine vorgefertigte Pinbelegung, der der Designer folgen muss. Dies ist die wahrscheinliche Erklärung für die zusätzlichen Stifte im Header. Es hängt normalerweise vom verwendeten Programmierer ab, welcher Header im Design verwendet wird.


Vielen Dank für Ihre ausführliche Antwort! Nachdem ich Ihre Antwort und den Kommentar von Arsenal gelesen habe, habe ich mein Multimeter verwendet und die Kontinuität dieser Stifte herausgefunden. Auch Ihr Einblick in die SWD-Programmierung beleuchtet meine Verwirrung! Ich danke dir sehr!
Jimmy.D

1
Froh, dass ich Helfen kann. Obwohl die Antwort von @ jeroen3 die SWD-Programmierseite besser beschreibt als meine.
MCG

4

Ihre Forschung ist richtig. SWD kann nicht neu zugeordnet werden, aber die Pins können anderweitig verwendet werden.

Der Stecker ist nicht Standard. Normalerweise wird für ARM JTAG / SWD der 10-polige SWD-Anschluss (häufig mit einem Abstand von 1,27 mm) verwendet.

Für die Kommunikation mit dem Chip benötigen Sie 4 Pins.
Ziel gnd und vcc sowie SWDIO, SWDCLK. Die Programmierer verwenden Ziel-Vcc für ihre Pegelumsetzer. Da viele ARM-Ziele eine Spannung von 1,8 bis 5 Volt betreiben können.

Der Reset-Pin ist nicht erforderlich, es sei denn, die Pins werden im Benutzercode anderweitig verwendet. B. intern vom Debug-Peripheriegerät getrennt.

Beliebte Programmierer sind die ST Link für STM32- und STM8-Chips. Oder Segger für verschiedene Marken.


Schätzen Sie Ihre zusätzlichen Informationen zu SWD! 😄😄 Ich würde gerne alle von Ihnen abstimmen, aber mein Vertreter reicht nicht aus. 😢 Alle, die sich über die Fähigkeit rühmen, SWD mit nur zwei Pins im Datenblatt zu verwenden, haben mich geblendet. Ich werde meine Recherchen in zukünftigen Arbeiten gründlicher durchführen
Jimmy.D
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.