Konsens über die richtige Verkabelung für den 10-poligen Cortex M JTAG-Steckverbinder

In den letzten Wochen habe ich mit der neuen Überarbeitung meines ARM Cortex M4-Designs gearbeitet, die ich vor etwa einem Monat gepostet habe. Nochmals vielen Dank an alle, die mir dringend benötigte Anleitungen und Informationen gegeben haben! Wie auch immer, ich habe immer noch Probleme, meinen ARM über den JTAG-Programmierer zu programmieren. Ich verwende den NXP LPC4337JBD144 ARM Cortex M4, ich verwende deren LPCXpresso IDE und das LPC-Link JTAG/Debug-Modul. Bisher konnte ich nach vielen Versuchen die JTAG-Schnittstelle nicht dazu bringen, meinen Chip als programmierbares Ziel zu erkennen.

Bei der Erstellung dieses neuen Designs (das erste funktionierte nicht) habe ich sehr sorgfältig das Datenblatt überprüft und mich mit NXP-Vertretern vergewissert, dass die Hardwarekonfiguration absolut korrekt ist, bevor die Platine hergestellt wurde. Mein ursprüngliches Design litt unter einem falsch verdrahteten JTAG-Anschluss, fehlenden Bypass-Kappen an allen Spannungseingängen und dem Fehlen von Jumper-Pins an wichtigen JTAG-Konfigurationspins. Beim Einrichten der JTAG-Anschlussschaltung habe ich den NXP-Support und das Datenblatt für den Chip konsultiert. Das Datenblatt wies mich an, nur an zwei der Pins Pullups zu haben, ein NXP-Vertreter sagte mir, ich solle alle Pins mit 10-kOhm-Widerständen nach unten ziehen, und ein anderer sagte mir, ich solle alle Pins mit 10-kOhm-Widerständen hochziehen. Ungefähr zu dieser Zeit habe ich hier gepostet und mich mit Freunden beraten, die viel erfahrener sind als ich,

Über das Wochenende habe ich den Chip ausgetauscht, vielleicht weil ich dachte, dass ich den ersten beschädigt haben könnte, aber ich konnte ihn immer noch nicht zum Programmieren bringen, also habe ich das gesamte Datenblatt durchgesehen, aber ich konnte keine Lösung finden, als ich den Abschnitt über den gelesen habe JTAG-Schnittstelle. Mein nächster Gedanke war, mir die Evaluierungsboards anzusehen, die für denselben ARM hergestellt wurden, den ich verwende. Ich entdeckte, dass die Boards von Hitex und Keil eine einzigartige JTAG-Anschlussverkabelung hatten, die sich beide von den Anweisungen von NXP unterschieden. Diese Entdeckung war ziemlich verwirrend und ich würde wirklich gerne wissen, wie man sie richtig verkabelt? Gibt es ein standardisiertes Verdrahtungsschema für alle Cortex M ARM-basierten Mikros?

Hier ist ein schematisches Dokument, das ich erstellt habe und das die verschiedenen Konfigurationen sowie die Reset-Schaltung und die TRST / DBGEN-Jumper-Pins veranschaulicht.https://www.dropbox.com/s/ohpuhu3wsq9yfhj/ARM%20Cortex%20M%20JTAG%20Wiring.pdf

Antworten (3)

Dies ist das offizielle ARM Cortex JTAG/SWD-Anschlussdiagramm:

Cortex 10-Pin-Anschluss

Sie sollten das Datenblatt / Benutzerhandbuch zu allen erforderlichen Widerständen befolgen. SWD-Pins auf anderen LPC-Chips werden normalerweise intern hochgezogen.

Die LPCXpresso-IDE verwendet möglicherweise standardmäßig die SWD-Schnittstelle. Sie müssen die JTAG-Schnittstelle auswählen, die wahrscheinlich ursprünglich vom LPC4337 verwendet wird.

Dies scheint nicht wirklich eine Antwort auf die Frage zu sein, da die Frage selbst bereits weitaus recherchierter und detaillierter ist als das, was diese Antwort bietet. Die SWD-Beobachtung könnte jedoch einen guten Kommentar abgeben.
Ich habe eine neue Platine (ich habe 3 bei der Bestellung erhalten) mit der Pullup-Konfiguration bestückt, die im Datenblatt zu finden ist, und ich habe immer noch nichts. Ich denke, ich habe vielleicht eine andere Idee, warum mein Board nicht programmiert, der VBAT-Pin bleibt unverbunden und schwebend. Könnte das die Ursache dafür sein, dass der Chip vom JTAG-Programmierer nicht erkannt wird?

Erstmal vielen Dank, dass Sie sich meinen langen Beitrag angesehen und Ratschläge gegeben haben! Gerade habe ich die Wurzel meines Problems gefunden, die Reset-Taste war falsch verdrahtet und hielt den LPC4337 dauerhaft im Reset-Modus, dies machte es dem Chip unmöglich, zu starten, ich habe seitdem den Reset-Schalter entfernt und die Platine zum Laufen gebracht. Es zieht tatsächlich die richtige Strommenge und wird vom JTAG-Programmierer erkannt. Ich verwende die Pullup-Widerstandskonfiguration aus dem Datenblatt, bei der es sich um einen 10k-Pullup am TDO-Pin und einen am TCK-Pin handelt.

Danke für eure Hilfe an alle!

Ich habe mich auch mit dem Thema beschäftigt und festgestellt, dass ein Pull-up in TDO und TCK erwünscht ist, aber auch ein Pulldown von SWDCLK.

Weitere Informationen finden Sie unter dem folgenden Link

http://support.code-red-tech.com/CodeRedWiki/HardwareDebugConnections

Einige Mikros haben einen internen Pulldown auf SDWCLK. Ich habe nicht mit NXP gearbeitet, aber bei Freescale ist das der Fall.

Ja, das entspricht Folge 5 der ARM-Mikrocontroller-Bare-Chip-Tutorial-Serie ( Hackaday-Artikel ), 5. How to Connect the STM32 and ST-Link v2 for ARM Microcontrollers – Tutorial and First Circuit : SWCLK is pull down (to GND), and SWDIO wird hochgezogen (auf Vcc).