Ich habe diesen Mikrocontroller - S32K118 64 Pins.
Ich möchte meine Software-Datendatei mit dem unten genannten Debugger in den Mikrocontroller laden.
Ich verwende dieses J-LINK Segger BASE Debugger-Modell, um meinen Mikrocontroller zu programmieren.
Ich habe ein Windows-Betriebssystem und die Software-Datendatei, die ich auf den Mikrocontroller herunterladen möchte, hat die Erweiterung „.s28“.
Ich habe die JTAG-Schnittstellenleitungen auf meiner Platine, die mit dem Mikrocontroller verbunden ist. Und ich habe die JTAG-Leitungen vom Debugger mit der Platine verbunden. Es gibt keine Fehlanpassung wie TDI zu TDO (wie im UART-Protokoll). Ich habe eine TDI-Leitung auf dem Debugger mit der TDI-Leitung auf der Platine verbunden. So für alle JTAG-Verbindungen.
(PS Eigentlich habe ich 2 Mikrocontroller auf der Platine. Aber sie sind nicht verkettet. Jeder Mikrocontroller hat einen separaten Satz von JTAG-Schnittstellenleitungen.)
Bitte haben Sie Geduld mit meinen folgenden Fragen, da ich mich mit Software nicht so gut auskenne.
Meine Fragen :
Aber wie wird die JTAG- oder die SWD-Schnittstelle zum Programmieren des Mikrocontrollers ausgewählt? Wird diese Auswahl der Programmierschnittstelle im Softwarecode erwähnt oder sollte die Hardwareperson sie auswählen? Wenn die Hardware-Person es auswählen muss, wie sollte sie es dann tun?
Grundfrage - Wie wird die Programmierschnittstelle zwischen JTAG und SWD festgelegt? Wird es im Softwarecode erwähnt oder wie ist es?
Es wird erwähnt, dass die Softwaredatendatei das Format .hex, .mot, .srec oder .bin haben sollte.
Aber meine Software-Dateierweiterung ist .s28
Akzeptiert der Debugger diese Datei? Bei einer einfachen Google-Suche fand ich heraus, dass es sich bei den .s28- und .srec-Dateien um Motorola S-Record handelt, ein von Motorola erstelltes Dateiformat, das binäre Informationen als Hex-Werte in ASCII-Textform übermittelt. Dieses Dateiformat kann auch als SRECORD, SREC, S19, S28, S37 bekannt sein. Es wird erwähnt, dass .srec und .s28 gleich sind?
Also kann ich diese .s28-Datei mit diesem Debugger auf den Mikrocontroller laden?
Ich habe 2 Arten von Fehlern erhalten, wie unten gezeigt
Fehler 1:
Im obigen Bild können Sie sehen, dass ich meine richtige Mikrocontroller-Teilenummer und die erforderliche Softwaredatendatei ausgewählt habe (weiß nicht, ob diese Erweiterung .s28 vom Mikrocontroller unterstützt wird). Aber ich bekam den Fehler wie, CULD NOT CONNECT TO TARGET.
Warum kommt dieser Fehler? Ich habe die Hardwareverbindung überprüft, sie ist perfekt.
Ich habe versucht, die Schnittstelle von SWD auf JTAG zu ändern (wie im obigen Bild hervorgehoben. Aber ich habe die Geschwindigkeit nicht geändert. Beide waren bei 4000 kHz). Trotzdem das gleiche Ergebnis, das ich bekam. Keine Änderung
Fehler 2: Nach einiger Zeit, im selben Fenster, fing ich an, den Fehler zu bekommen wie – „FEHLER: Datei konnte nicht heruntergeladen werden“
Ich habe nichts an meinem Hardware-Setup oder irgendetwas geändert. Aber der Fehler war ein anderer.
Ich habe im Debugger-Handbuch recherchiert, ich konnte keine Lösung für diese Fehler finden. Ich bin auch in den Segger-Foren und den NXP-Community-Foren. Aber immer noch keine Ergebnisse.
Kann mir bitte jemand bei diesen Fehlern helfen und wie ich sie beheben kann?
Frage 3 :
Angenommen, der Debugger programmiert den Mikrocontroller. Wie hoch sollte der Spannungspegel am RESET-Pin in dem Moment oder dem Moment sein, in dem der Debugger die Softwaredatei auf den Mikrocontroller lädt? Sollte der RESET hoch sein oder sollte der RESET niedrig sein? Und wenn es LOW sein sollte, zieht der Debugger den RESET herunter?
BEARBEITEN :
Schema: Mikrocontroller - S32K118 64 Pin.
Das Reset-Signal an der Basis des unten gezeigten Transistors befindet sich im Zustand Always High. Es wird also kein Problem sein. Für die JTAG-Reset-Verbindung habe ich das RESET-Signal vom oberen Ende des C0103-Kondensators genommen.
Ich werde versuchen, die Fragen zu beantworten.
Frage 1: Standardmäßig initialisiert der Controller den Debugging-Port (nach dem Zurücksetzen) in den JTAG-Modus. Wenn Sie SWD verwenden möchten, müssen Sie den Befehl Sequence anwenden, der im Referenzhandbuch Kap. 56.3.1 auf p. 1968. Die Auswahl erfolgt also weder in der HW noch in der Programmierdatei. Sie sollten (vielleicht) in der Lage sein, den Programmiermodus in Ihrem Flashing-Tool auszuwählen.
Frage 2: J-Flash unterstützt die folgenden Motorola S-Dateiformate: .mot, .srec, .s, .s19, .s28, .s37 Daher sollten Sie in der Lage sein, Ihre von Ihrer Toolchain generierte Firmware zu flashen.
Frage 3: Debugging ist deaktiviert, wenn sich der Controller im Energiesparmodus befindet oder "Security" aktiviert ist (s. Kap. 56.15 auf S. 1978). Stellen Sie also sicher, dass beides nicht der Fall ist. Zum Flashen müssen Sie RESET für eine gewisse Zeit niedrig halten. Weitere Informationen finden Sie im folgenden Anwendungsmodus: https://www.nxp.com/docs/en/application-note/AN12130.pdf Aber Sie müssen dies nicht manuell tun. Dies wird von der J-LINK/J-Flash-Anwendung durchgeführt. Sie müssen jedoch sicherstellen, dass Ihr J-Link die Reset-Leitung kontrolliert (verbinden Sie den Reset-Pin mit dem entsprechenden Pin am JTAG/SWD-Anschluss).
Die Pinbelegung für den SWD/JTAG-Anschluss sollte wie folgt aussehen:
Die Verbindung auf dem Controller sollte wie folgt aussehen. Ich habe die relevanten Pins auf dem Schema für 32K118 hervorgehoben:
In obigem Beispiel sind nur die SWD-Leitungen am 32K118 angeschlossen. Du kannst aber natürlich auch die anderen 2 Leitungen für JTAG anbringen. Das Wichtigste, was vielleicht fehlt, ist die Reset-Leitung für den J-Link. Oder ist RESET_MC1
mit dem Debug Connector verbunden? Vielleicht könntest du den Schaltplan für den Debug Connector posten.
Speziell zum .s28
Format:
Ihre Binärdateien hier sind das gute alte Motorola S-Record- Format, ein Dateiformat, das Binärdateien mit Textdarstellung ausdrückt - Sie können es in notepad.exe öffnen und lesen. (Ein weiteres beliebtes und sehr ähnliches ist Intel Hex.)
S-Records bestehen aus verschiedenen Einträgen. Eine Zeile, die mit S1, S2 oder S3 beginnt, bedeutet, dass sie eine Adresse von 16, 24 bzw. 32 Bit enthält. Eine Zeile, die mit S7, S8 oder S9 beginnt, bedeutet, dass sie die Startadresse des Programms von entweder 16, 24 oder 32 Bit enthält.
Anscheinend wird Ihre Binärdatei mit 24-Bit-Adressen generiert, sodass Ihre Datei S2- und S8-Zeilen enthält. Daher das Format .s28
, das als Teilmenge von .srec
. Jedes Tool, das behauptet, es zu unterstützen, .srec
wird auch unterstützt .s19
, .s28
und .s37
da es sich wirklich um dasselbe Dateiformat handelt.
.mot
bezieht sich wahrscheinlich auch auf S-Records, obwohl ich nicht sagen kann, dass ich es oft verwendet gesehen habe.
Und ja, all dies wird von Segger gut unterstützt.
Chupacabras
Neuling
brhans
brhans
Neuling
Chris Stratton
Chris Stratton
Neuling
Neuling
Lundin