Layout eines 10-poligen JTAG/SWD-Steckverbinders auf einem endgültigen Design

Ich entwerfe ein Board mit einem ARM-Mikrocontroller darauf (LPC1347FBD48) und möchte einen 10-poligen jtag/swd-Anschluss , wie es Standard ist , für das In-Circuit-Debugging meines endgültigen Designs einschließen . Hier ist die Pinbelegung (Datenblatt pg9):

Geben Sie hier die Bildbeschreibung ein(Kümmern Sie sich nicht um den abgeschnittenen Text auf Pin 4, es hat kein wichtiges Signal darauf.) Relevante Signale sind: TDI (32), TMS (33), TDO (34), TRST# (35) , SWDIO (39), SWCLK (29), SWO (28).

Meine Sorge ist, dass die Spezifikation für den Standard-Header angibt, dass bestimmte Signale miteinander verbunden werden sollten (TMS/SWDIO, TCK/SWCLK, TDO/SWO) und diese Signale auf verschiedenen Pins liegen. Soll ich diese Signale einfach zusammenbinden und sie beide an die entsprechenden Pins auf dem Header weiterleiten?

Nehmen wir an, ich binde TMS und SWDIO im Header zusammen. Während des normalen Betriebs wären diese Pins mit GPIO-Signalen verbunden, und da sie miteinander verbunden sind, kann ich nicht beide gleichzeitig als Ausgänge verwenden, richtig? (es sei denn, ich lege eine Art Pufferschaltung dazwischen)

Hier gibt es eine Art Beispielimplementierung (es ist der Schaltplan für das LPC1347-lpcxpresso-Board), aber ich kann daraus weder Kopf noch Zahl machen. Es scheint, dass das LPCXpresso-Board auf der LPC1347-Seite die JTAG-Signale einfach unbeschaltet gelassen hat und nur die SWD-Leitungen verwendet (siehe Schaltplan S. 5). Ist dies eine akzeptable Implementierung, und wenn ja, sollte ich sie duplizieren (oder nicht?) Und warum?

Nachdem ich diese Frage gelesen habe, mache ich mir auch Sorgen darüber, welche Signale nach oben oder unten gezogen werden sollten. Wenn es also irgendwelche Kommentare dazu gibt, würde ich sie auch schätzen. Ich habe die von diesem Benutzer hinterlassene Fragenkette durchgesehen, konnte aber keine konkrete Antwort darauf finden, welche Klimmzüge/Pulldowns verwendet werden sollten (und was noch wichtiger ist, warum).

Ich hoffe, diese Frage wird nicht zu weit gefasst, aber wenn jemand Teilenummern für den in diesem ARM-Infocenter-Dokument gezeigten Anschluss oder etwas Ähnliches finden könnte, wäre dies ebenfalls wünschenswert. Ich habe auf digikey nach den umhüllten 10-Pin-Stiftleisten mit 0,05-Zoll-Pitch gesucht, aber keiner von ihnen scheint einen Polarisationsschlüssel zu haben. puu.sh/4l6RO/1500f550dc.png ist das, worauf ich mich beziehe.

Antworten (3)

Die typische Vorgehensweise bei Cortex-Teilen, die nur einen einzigen Prozessorkern haben, besteht darin, nur SWD zu verwenden. In diesem Fall müssen nur die Leitungen SWDCLK/SWDIO/SWO/!RESET/+3V3/GND auf den 10-Pin-Header geführt werden. Beachten Sie, dass !RESET der Mikrocontroller-Reset ist und nicht mit TRST identisch ist. Aus meiner Erfahrung ist der einzige Pin, der über einen Widerstand hochgezogen werden muss, !RESET, zumindest mit einem Ulink2/Ulink ME-Debug-Adapter. Bei den meisten Cortex-Prozessoren werden die JTAG- und SWD-Leitungen tatsächlich geteilt, zum Beispiel ist SWO derselbe Pin wie TDO, aber das scheint hier nicht der Fall zu sein. Wenn Ihre Tools sowohl JTAG als auch SWD unterstützen, können Sie das System auswählen, das am wenigsten mit Ihren anderen Peripherie-/Pinning-Anforderungen kollidiert. Wenn Sie die Debug-Pins mit anderer Hardware teilen müssen,

Im Allgemeinen benötigt SWD weniger Pins und kann SWV (Serial Wire Viewer) verwenden, das Ihnen eine Printf-Umleitung und andere Funktionen bietet, während JTAG die Verkettung (und den Zugriff auf beide Kerne bei Dual-Core-Teilen wie dem LPC4300) ermöglicht und das ist einzige Option für ältere Tools.

Die Teilenummer für den ummantelten Stecker ist FTSH-105-01-FDK, aber in der Praxis ist sie schwer zu finden, aber Sie können wahrscheinlich eine Anfrage bei Alibaba oder einer ähnlichen B2B-Site stellen.

Hier sind die 2x5 1,27 mm Stiftleisten, die wir verwenden (alle auf Lager bei digikey):

Harwin Teilenummer M50-3500542 (Es ist ein offener Header, dann schneiden wir Pin 7 ab, um ihn zu polarisieren.)

CNC Tech part # 3220-10-0100-00 (Es ist ein Boxed Header, so dass Sie Polarisation erhalten, ohne irgendwelche Stifte abzuschneiden. Eigentlich billiger als das Harwin-Teil, nimmt aber mehr Platz ein.)

Dann verwenden wir dieses Kabel zum Verbinden (auch auf Lager bei digikey): Samtec-Teilenummer FFSD-05-D-06.00-01-N

Zur Programmierung verwenden wir einen Segger J-Link mit einem Cortex M Adapter.

Hoffentlich hilft das,

Brock

PS Wir verbinden nur über SWD.

Die Frage bezieht sich auf das Anschließen von Signalen, nicht auf die Anschlüsse.
Ein Teil der Frage betrifft den Versuch, den richtigen physischen Anschluss zu finden ...

Für Ihre eigenen Zwecke erscheint es am einfachsten, nur SWD zu verwenden. Wenn Sie für Tests entwerfen, möchten Sie möglicherweise auch die JTAG-Leitungen an Testpunkten einschließen, um Boundary-Scan-Tests zu ermöglichen.