Programación de un Microcontrolador - JTAG y SWD

Tengo este Microcontrolador - S32K118 64 pines.

Quiero cargar mi archivo de datos de software en el microcontrolador usando el depurador mencionado a continuación.

Estoy usando este modelo de depurador J-LINK Segger BASE para programar mi microcontrolador.

Tengo un sistema operativo Windows y el archivo de datos del software que me gustaría descargar al microcontrolador tiene una extensión: ".s28"

Tengo las líneas de interfaz JTAG en mi PCB que está conectada al microcontrolador. Y he conectado las Líneas JTAG del depurador a la PCB. No hay discrepancias como TDI a TDO (como en el protocolo UART). Me conecté como la línea TDI en el depurador a la línea TDI en la PCB. Así para todas las conexiones JTAG.

(PD En realidad, tengo 2 microcontroladores en la PCB. Pero no están conectados en cadena. Cada microcontrolador tiene un conjunto separado de líneas de interfaz JTAG)

Tenga paciencia con mis preguntas a continuación, ya que no estoy tan versado en software.

Mis preguntas :

  1. El depurador también tiene la opción de programar el microcontrolador usando la interfaz SWD. Leí el manual que dice que este depurador también puede usar la interfaz SWD usando solo las líneas TMS y TCK.

Pero, ¿cómo se selecciona la interfaz JTAG o SWD para programar el microcontrolador? ¿Se mencionará esta selección de la interfaz de programación en el código del software o la persona encargada del hardware debe seleccionarla? Si la persona del hardware tiene que seleccionarlo, ¿cómo debería hacerlo?

Pregunta básica: ¿cómo se determina la interfaz de programación entre JTAG y SWD? ¿Se menciona en el código del software o cómo es?

  1. En el Manual del depurador de Segger de J-Link , en la página 279, capítulo 13.3.3 Estructura del menú, se proporciona como

ingrese la descripción de la imagen aquí

se menciona que el archivo de datos del software debe tener formato .hex, .mot, .srec o .bin.

Pero la extensión de mi archivo de datos de software es .s28

Entonces, ¿el depurador aceptará este archivo? Tras una simple búsqueda en Google, encontré que los archivos .s28 y .srec son Motorola S-record es un formato de archivo, creado por Motorola, que transmite información binaria como valores hexadecimales en forma de texto ASCII. Este formato de archivo también puede conocerse como SRECORD, SREC, S19, S28, S37. ¿Menciona que .srec y .s28 son lo mismo?

Entonces, ¿puedo cargar este archivo .s28 en el microcontrolador con este depurador?

Recibí 2 tipos de errores como se muestra a continuación

Error 1:

ingrese la descripción de la imagen aquí

En la imagen de arriba, puede ver que seleccioné el número de pieza correcto de mi microcontrolador y seleccioné el archivo de datos de software requerido (no sé si esta extensión .s28 será compatible con el microcontrolador). Pero recibí el error como, NO SE PUEDE CONECTAR AL OBJETIVO.

¿Por qué viene este error? Revisé la conexión del hardware, está perfecta.

Traté de cambiar la interfaz de SWD a JTAG (como se destaca en la imagen de arriba. Pero no cambié la velocidad. Ambos estaban a 4000 kHz). Aún así, el mismo resultado que obtuve. Ningún cambio

Error 2: después de un tiempo, en la misma ventana, comencé a recibir el error como: "ERROR: no se pudo descargar el archivo"

No hice ningún cambio en la configuración de mi hardware ni nada en absoluto. Pero el error fue diferente.

Investigué en el manual del depurador, no pude encontrar ninguna solución para estos errores. También participo en los foros de Segger y en los foros de la comunidad de NXP. Pero todavía no hay resultados.

¿Puede alguien ayudarme con estos errores y cómo resolverlos?

Pregunta 3 :

Supongamos que el depurador programa el microcontrolador. En el momento o instante en que el depurador está cargando el archivo de datos del software en el microcontrolador, ¿cuál debería ser el nivel de voltaje en el pin RESET? ¿Debería el RESET ser alto o el RESET debería ser bajo? Y si debe ser BAJO, ¿el Depurador Despliega el REINICIO?

EDITAR :

Esquema: Microcontrolador - S32K118 64 pines.

La señal de reinicio en la base del transistor que se muestra a continuación está en estado Siempre alto. Por lo tanto, no será un problema. Para la conexión de reinicio JTAG, he tomado la señal de REINICIO del extremo superior del condensador C0103.

ingrese la descripción de la imagen aquí

¿Podrías agregar el esquema? Puede ayudar a alguien a darte una respuesta.
Sí, agregó el esquema.
Un archivo s28 es un archivo srec. Si el software Segger puede cargarlo, entonces el archivo está bien: el micro no sabe ni le importa si se trata de un srec, un contenedor, un hexágono o algo más.
¿Ha conectado 'RESET' o 'RESET_MC1' al J-Link (junto con todas las demás líneas 'JTAG_xxx'?
Sí, he conectado la línea RESET también al J-LINK.
JTAG vs SWD se selecciona mediante la configuración del software de la PC, por supuesto, el cableado y el objetivo deben respaldar su elección. Primero debe hablar con el chip, es probable que tenga malas conexiones, hardware/energía defectuosos o mala configuración. Hasta que esté en comunicación con el objetivo, nada sobre el archivo que desea cargar es relevante.
Por cierto, no se permiten preguntas de varios puntos.
Hice las preguntas ya que son parte del mismo problema, donde podría salir mal. Por lo tanto, la pregunta multipunto
alguien puede dar una respuesta
Esas resistencias pull-up en las líneas SWD no deberían ser necesarias.

Respuestas (2)

Intentaré responder a las preguntas.

Pregunta 1: De forma predeterminada, el controlador inicializará el puerto de depuración (después del reinicio) en el modo JTAG. Si desea utilizar SWD, deberá aplicar la Secuencia de comando mencionada en el Manual de referencia Cap. 56.3.1 en la pág. 1968. Entonces la Selección no se hace ni en HW ni en el archivo de programación. Usted (tal vez) debería poder seleccionar el modo de programación en su herramienta de flasheo.

Pregunta 2: J-Flash es compatible con los siguientes formatos de archivo de Motorola S: .mot, .srec, .s, .s19, .s28, .s37 Por lo tanto, debería poder actualizar su firmware generado por su cadena de herramientas.

Pregunta 3: La depuración está deshabilitada cuando el controlador está en modo de bajo consumo o la "Seguridad" está habilitada (consulte el Capítulo 56.15 en la página 1978). Así que asegúrese de que ambos no sean el caso. Para flashear tendrás que mantener el RESET bajo por un cierto tiempo. Se puede encontrar más información en el siguiente modo de aplicación: https://www.nxp.com/docs/en/application-note/AN12130.pdf Pero no es necesario que lo haga manualmente. Esto lo hará la aplicación J-LINK/J-Flash. Pero deberá asegurarse de que su J-Link tenga control sobre la línea de reinicio (conecte el pin de reinicio al pin apropiado en el conector JTAG/SWD).

La distribución de pines del conector SWD/JTAG debe tener el siguiente aspecto:ingrese la descripción de la imagen aquí

La conexión en el controlador debería tener el siguiente aspecto. He resaltado los Pines relevantes en el esquema para 32K118:ingrese la descripción de la imagen aquí

En el ejemplo anterior, solo las líneas SWD están conectadas al 32K118. Pero, por supuesto, también puede adjuntar las otras 2 líneas para JTAG. Lo importante que tal vez falte es la línea de reinicio para el J-Link. ¿ O está RESET_MC1conectado al conector de depuración? Tal vez podría publicar el esquema para el conector de depuración.

Gracias por la respuesta. Tengo una duda. Con respecto a la Pregunta 3, no lo tengo claro. Entonces, antes de que realmente suceda el parpadeo, la línea RESET del microcontrolador está en estado activo alto. Cuando lo conecto al depurador, el depurador solo debe tirar del restablecimiento activo alto a activo bajo, ¿verdad? ¿El contenido del firmware se transferirá cuando el reinicio esté en estado bajo o alto? ¿Podría decirme el nivel de reinicio durante la transferencia de contenido del depurador a Micro? ¿Y el depurador solo debe tirar de la línea de reinicio Low para parpadear?
No es necesario que interactúes con el PIN de reinicio por tu cuenta. Todo esto debe hacerse mediante la aplicación J-FLash/J-Link. Lo que debe hacer es conectar la línea de reinicio al pin apropiado en el conector JTAG/SWD en su PCB. Ver mi respuesta actualizada.

Con respecto al .s28formato específicamente:

Sus archivos binarios aquí son el buen y antiguo formato S-record de Motorola , que es un formato de archivo que expresa archivos binarios mediante representación de texto; puede abrirlo en notepad.exe y leerlo. (Otro popular y muy similar es Intel Hex).

Los registros S constan de varias entradas. Una línea que comienza con S1, S2 o S3 significa que contiene una dirección de 16, 24 o 32 bits respectivamente. Una línea que comienza con S7, S8 o S9 significa que contiene la dirección de inicio del programa de 16, 24 o 32 bits.

Aparentemente, su binario se genera con direcciones de 24 bits, por lo que su archivo contendrá líneas S2 y S8. De ahí el formato .s28, que puede considerarse como un subconjunto de .srec. Cualquier herramienta que afirme ser compatible .srectambién lo será .s19, .s28y .s37dado que en realidad es todo el mismo formato de archivo.

.motprobablemente también se refiere a los registros S, aunque no puedo decir que lo haya visto mucho.

Y sí, todos estos son compatibles con Segger.