¿Puedo conectar algo más a los pines de programación en STM32 (SWD)?

Como en el tema: ¿Puedo conectar algo más a los pines de programación en STM32 (SWD)? Por ejemplo, un solo LED con resistencia limitadora de corriente conectada a los pines SWDIO y SWCLK. ¿Esta carga afectará la programación a través de esta interfaz (SWD)? ¿Debo usar un búfer?

Sí se puede, y sí, podría. Crear un búfer para este tipo de cosas suele ser más complicado de lo que parece.
Casi cualquier puerta CMOS moderna sería adecuada como búfer en lo que respecta a las consideraciones de entrada; es más una cuestión de qué puede impulsar el LED deseado o lo que sea.

Respuestas (1)

Sí, puede usar pines STM32 SWD como GPIO, y sí, debe pensar en el impacto de hacerlo en la funcionalidad SWD.

Es probable que desee que cualquier otra cosa impulsada por esas líneas esté detrás de un búfer con una entrada de alta impedancia, y desee que cualquier cosa que pueda impulsar esas líneas esté detrás de una habilitación específica.

Pero también existe el riesgo de reutilizar esas líneas, especialmente como salida GPIO. Si lo hace, no podrá conectar una sonda SWD al sistema en ejecución.

Con un adaptador SWD de capacidad completa, debería poder realizar una "conexión bajo reinicio" coordinada donde el núcleo de la CPU se reinicia y la conexión SWD se usa para suspender la operación antes de que el programa pueda reutilizar los pines y deshabilitar SWD. Sin embargo, esto puede ser difícil con algunas configuraciones.

Entonces, en general, si va a reutilizar los pines, es mejor que un programa proporcione uno o dos segundos de retraso al reiniciar antes de hacerlo.

Probablemente también desee que hacerlo dependa en absoluto de una definición de macro, tal vez una pasada en la línea de comando del compilador. De esa manera, si decide que desea usar un depurador de punto de interrupción, puede compilar el código con configuraciones alternativas que no reutilicen los pines SWD (tal vez algo como arm-non-eabi-gcc -DNO_REPURPOSE_SWD), y así dejarlos funcionando en modo SWD para permitir que el depurador función.

Y, por supuesto, lo que sea que conecte a esos pines no debe funcionar incorrectamente si ve tráfico SWD en lugar de las señales previstas. Entonces, cosas como los motores son una muy mala idea; pero los LED de estado o las salidas de mensajes de aviso en serie pueden estar bien.

Gracias por su respuesta . En realidad, es una buena idea deshabilitar parte del código que usa esos pines al depurar MCU. Más tarde, después del desarrollo, estos pines se pueden usar como GPIO estándar para cosas menos importantes. Pero ahora creo que es mejor comprar MCU que tenga un poco más de pines (no son tan caros) para que no tengamos que usar buffers, etc.