1 votos

¿Es un programador JTAG capaz de cualquier microcontrolador que soporte JTAG?

Perdona si mi pregunta es muy básica, pero no he podido encontrar la respuesta buscando en internet.

Quiero comprar un programador JTAG, pero en la hoja de datos de este programador hay una lista de "MCUs soportados". ¿Significa esto que este programador no puede programar otras MCUs que soporten JTAG?

Como ejemplo, ST Link V2 dice que es para STM8 y STM32 MCUs. ¿Significa esto que no se puede utilizar para programar otros MCUs?

¿Qué hay de los programadores JTAG que son para MCUs ARM? ¿Significa esto que no se pueden utilizar para MCUs que no sean ARM (aunque soporten JTAG)?

Si un programador JTAG puede ser utilizado para programar cualquier MCU que soporte JTAG, entonces ¿cuál es la diferencia entre estos programadores que los hace específicos para un microcontrolador específico?

Me preocupa principalmente la programación de la MCU, aunque tener capacidad de depuración sería un buen complemento.

Cualquier ayuda será bienvenida. Gracias de antemano.

1voto

user44635 Puntos 4308

JTAG es la interfaz, los voltajes, las velocidades máximas de reloj, que conforman la conexión física.

Para interactuar con un dispositivo concreto, el programador debe conocer sus comandos específicos, sus registros, es decir, la API (Application Programmer Interface) del dispositivo.

El JTAG se diseñó originalmente como un estándar de prueba, y sólo admite un pequeño conjunto de funciones relacionadas con la prueba como estándar, por ejemplo, el escaneo de límites. Sin embargo, la idea general de conectar un PC y un sistema de destino con una interfaz sencilla es tan atractiva que muchos proveedores han añadido sus propias extensiones, para la programación, los breakpoints y todo tipo de cosas útiles. Estas extensiones no están estandarizadas.

Mientras que JTAG puede ser 'bit-banged' desde un PC, esto es muy lento, y la mayoría de los 'programadores JTAG' incorporan un MCU local que acelera el proceso, conectado al objetivo por un cable JTAG corto, y comúnmente al PC por USB o ethernet. Las comunicaciones entre el PC y el programador suelen ser propietarias y es poco probable que estén disponibles para los aficionados. El programador tendrá un firmware integrado para controlar los protocolos de extensión JTAG del objetivo, puedes tener más suerte si encuentras estos disponibles públicamente de la talla de ARM, etc.

Esto significa que si quieres ir más allá de lo publicado "este programador funciona con este MCU", es más probable que puedas hackear el JTAG del objetivo directamente desde un PC, que hackear un programador comercial para que funcione con un objetivo que no dice funcionar con él. Obtén la API del fabricante del MCU objetivo, utiliza un Arduino como interfaz JTAG física, y escribe C o python o algo para controlar el Arduino a través de su interfaz USB, poniendo las tareas de bajo nivel en el Arduino y el control de alto nivel en el PC según sea necesario.

0voto

hacktastical Puntos 560

En teoría, sí. En la práctica, las extensiones JTAG para soportar la depuración son específicas de cada dispositivo, e incluso en algunos casos necesitan una aceleración de hardware local (como la traza rápida de ARM.)

Las plataformas MIPS utilizan desde hace tiempo una extensión estándar denominada E-JTAG. Algunos otros siguieron esa definición básica de E-JTAG como punto de partida para sus depuradores propietarios.

Una cosa a tener en cuenta: muchas soluciones JTAG utilizan un popular IC de interfaz USB, el FTDI FT232C. Este chip se utiliza en los adaptadores de Digilent, por ejemplo. Si tu cadena de herramientas soporta este IC es probable que puedas utilizar un adaptador de terceros, o incluso diseñar el chip directamente en tu placa (como hacen algunas placas FPGA).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X