Consenso sobre el cableado adecuado para el conector JTAG Cortex M de 10 pines

Durante las últimas semanas he estado trabajando con la nueva revisión de mi diseño ARM Cortex M4 que publiqué hace aproximadamente un mes, ¡gracias nuevamente a todos los que me brindaron la orientación e información que tanto necesitaba! De todos modos, todavía tengo problemas para programar mi ARM a través del programador JTAG. Estoy usando NXP LPC4337JBD144 ARM Cortex M4, estoy usando su módulo LPCXpresso IDE y LPC-Link JTAG/Debug. Hasta ahora, después de muchos intentos, no he podido lograr que la interfaz JTAG reconozca mi chip como un objetivo programable.

Al crear este nuevo diseño (el primero no funcionó), tuve mucho cuidado de verificar la hoja de datos y con los representantes de NXP para asegurarme de que la configuración del hardware fuera absolutamente correcta antes de fabricar la placa. Mi diseño original sufría de un conector JTAG cableado incorrectamente, la falta de tapas de derivación en todas las entradas de voltaje y la falta de pines de puente en los pines de configuración cruciales de JTAG. Al configurar el circuito del conector JTAG, consulté el soporte de NXP y la hoja de datos del chip. La hoja de datos me indicó que solo tuviera pullups en dos de los pines, un representante de NXP me dijo que bajara todos los pines con resistencias de 10k ohm, y otro me dijo que tirara de todos los pines hacia arriba con resistencias de 10k ohm. Alrededor de ese tiempo publiqué aquí y consulté con amigos mucho más experimentados que yo,

Durante el fin de semana cambié el chip tal vez pensando que podría haber dañado el primero, pero todavía no pude programarlo, así que revisé toda la hoja de datos pero no pude encontrar una solución al leer la sección en el Interfaz JTAG. Mi siguiente pensamiento fue mirar las placas de evaluación hechas para el mismo ARM que estoy usando. Descubrí que las placas de Hitex y Keil tenían un cableado de conector JTAG único, ambos diferentes de lo que NXP me indicó que hiciera. Este descubrimiento ha sido bastante confuso y lo que realmente me gustaría saber es cuál es la forma correcta de conectarlo. ¿Existe un esquema de cableado estandarizado para todos los micro basados ​​en Cortex M ARM?

Aquí hay un documento esquemático que hice que ilustra las diferentes configuraciones, así como el circuito de reinicio y los pines de puente TRST/DBGEN.https://www.dropbox.com/s/ohpuhu3wsq9yfhj/ARM%20Cortex%20M%20JTAG%20Wiring.pdf

Respuestas (3)

Este es el diagrama del conector oficial ARM Cortex JTAG/SWD:

Conector Cortex de 10 pines

Debe seguir la hoja de datos/manual de usuario sobre las resistencias que se requieren. Los pines SWD en otros chips LPC generalmente se levantan internamente.

El IDE de LPCXpresso podría estar predeterminado en la interfaz SWD. Debe seleccionar la interfaz JTAG, que es probablemente la que usa inicialmente el LPC4337.

Esto realmente no parece una respuesta a la pregunta, ya que la pregunta en sí ya está mucho más investigada y detallada que lo que ofrece esta respuesta. Sin embargo, la observación de SWD podría ser un buen comentario.
Llené una nueva PCB (recibí 3 cuando ordené) con la configuración pullup que se encuentra en la hoja de datos y todavía no tengo nada. Creo que podría tener otra idea de por qué mi placa no está programando, el pin VBAT se deja desconectado y flotando, ¿podría ser esa la causa de que el programador JTAG no reconozca el chip?

En primer lugar, ¡gracias por mirar mi larga publicación y ofrecer consejos! Justo ahora encontré la raíz de mi problema, el botón de reinicio estaba cableado incorrectamente manteniendo el LPC4337 permanentemente en modo de reinicio, esto hizo imposible que el chip se iniciara, desde entonces quité el interruptor de reinicio y puse la placa en funcionamiento. En realidad, consume la cantidad correcta de corriente y el programador JTAG lo reconoce. Estoy usando la configuración de resistencia pullup que se encuentra en la hoja de datos, que es un pullup de 10k en el pin TDO y uno en el pin TCK.

¡Gracias a todos por vuestra ayuda!

También estuve investigando el tema y descubrí que se desea un pull-up en TDO y TCK, pero también un pulldown de SWDCLK.

Consulte el siguiente enlace para obtener más información.

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

Algunos micros tienen menú desplegable interno en SDWCLK. No he trabajado con NXP, pero para Freescale ese es el caso.