¿Cómo se pueden modificar los estados de los pines mediante el uso de códigos de instrucción JTAG?

Hay varias instrucciones JTAG obligatorias para usar en el escaneo de límites. Aprendí que podemos cambiar los estados de los pines de MCU o CPU usando esas instrucciones. Sin embargo, no pude encontrar ninguna información detallada al respecto. ¿Cómo puedo cambiar los estados de los pines con JTAG? ¿Qué instrucciones debo usar? Quiero programar un flash externo usando esa propiedad.

Respuestas (1)

Los elementos del circuito JTAG están integrados en el diseño del chip que lo soporta. La función de escaneo de límites y la capacidad de JTAG para acceder a los pines es mediante el secuestro del control de la MCU y ser el intermediario entre este y el mundo exterior. Esto permite realizar pruebas de hardware completas con una MCU en blanco en un sistema digital grande, lo que es realmente genial para el control de calidad y los procesos de prueba antes de activar una MCU con firmware para la ronda de autoprueba de la MCU.

La interfaz JTAG, como dije, es una especie de módulo lógico integrado que se encuentra entre la MCU y cada uno de los pines/puertos externos.

Le sugiero que lea más sobre la interfaz JTAG y el conjunto de instrucciones. Lo bueno es que cualquier MCU o dispositivo que admita JTAG debe ser consistente y estándar en la forma en que interactúa con JTAG. ¡Lea la documentación y juegue con ella!

Gracias por su rápida respuesta. He leído documentos para JTAG. Supongo que las instrucciones Sample/Preload y Extest se usan para ese propósito. Sin embargo, no estoy seguro de que eso sea cierto. Quiero programar cualquier dispositivo cambiando los estados de los pines con una lógica determinada. Hay un software en el enlace pero no tiene ninguna lógica. Solo necesita información completa del pin. Cuando tengo un pestillo en mi circuito no puedo usar ese software. Así que debería desarrollar mi propio programador.
Utiliza la instrucción EXTEST para poder controlar los pines del dispositivo que luego le da acceso a dispositivos externos como ese FLASH en su caso. Hay herramientas comerciales disponibles para hacerlo.
Las herramientas comerciales que encontré solo quieren información de pinout. No pude ingresar una lógica para controlar el pestillo para usar los mismos pines para las entradas de dirección y datos. Así que necesito desarrollar mi propio software que pueda controlar los pines con una lógica dada.
Por lo general, estas herramientas se cargan en alguna forma de netlist y tienen definiciones/modelos para otros dispositivos que no son de exploración de límites, que luego permiten el manejo de búferes/lógica y también direcciones multiplexadas/buses de datos como usted describe. Busque en Google "Boundary Scan" y encontrará los cinco grandes. Pero prepárate porque son un poco más caros que el de $100 que vinculaste.
@MIrchhh: Hay una buena razón por la que las herramientas de los proveedores para programar chips flash complementarios generalmente lo hacen descargando software de ayuda en la MCU y ejecutándolo: el software que se ejecuta en la MCU puede lograr un rendimiento mucho mayor en las memorias externas que usar JTAG para control de exploración de límites de los mismos pines.