Use un solo GPIO para múltiples usos (MCU TMS320F2803x)

3

Mi pregunta es sobre un pin (s) en una MCU, específicamente un TMS320F28035, que tiene múltiples funciones. Los pines 57-60 de la versión QFP de 80 pines de esta MCU son GPIO, pero también se doblan como pines JTAG TCK, TDO, TDI y TMS, respectivamente. De hecho, incluso el pin TCK también podría ser un XCLKIN, pero no es donde voy a tomar esta discusión. Aquí está la pregunta real:

Si JTAG solo se usa cuando programo inicialmente la MCU, o diagnostico problemas en unidades que se implementaron en el campo, ¿podría usar los pines como GPIO cuando no se esté usando para la función JTAG? ¿Es esta una mala práctica? Si puedo hacer esto, ¿hay una buena manera de hacerlo a través del firmware?

Pensando rápidamente en el enfoque del firmware, estaba pensando en usar un indicador en la entrada TRST, que es un pin dedicado, de esa manera si 1 (conectado a JTAG) usa los GPIO anteriores como pines JTAG, de lo contrario si 0 usa GPIOs para otras funciones.

¡Gracias de antemano por cualquier ayuda!

    
pregunta amccarterAP

1 respuesta

3

Esto normalmente está bien, y también se hace en la práctica.

Como ya se ha dado cuenta, y la buena documentación lo indica, necesita una forma de asegurarse de que cualquier circuito periférico que conecte a los pines afectados no cause caos cuando vea que sus entradas alternan al azar, y asegúrese de que que no manejen los pines a menos que se lo diga específicamente.

También debe mirar la fuerza de la unidad. Por ejemplo, puede tener una MCU que puede conducir un LED a 10 mA directamente desde un GPIO. Si bien al LED no le importaría una señal de prueba que lo conduzca, es probable que el adaptador JTAG no pueda conducir la carga adicional que exige el LED.

Otro problema es cuando estás parado en el campo para depurar algo y te das cuenta de que has conectado una funcionalidad esencial a uno de los pines de depuración, por lo que no pueden funcionar simultáneamente. Intenta tener funciones menos importantes aquí.

En resumen: está bien, pero no los utilice para funciones críticas ni los cargue.

    
respondido por el pipe

Lea otras preguntas en las etiquetas