21 votos

STM32 y ST-LINK - No se puede conectar a MCU después de la programación exitosa

He construido mi propia placa con STM32F7-45VGT6. He programado con éxito con ST-LINK v2 (no el original sin embargo) y ahora ni siquiera puedo conectar con MCU.

Utilizo ST-Link Utility de ST y la interfaz SWD. Puede darse el caso de que utilice los pines SWD como salida y en mi código los configure como salida GPIO. ¿Puede ser el caso?

No obstante, conecto mi pin de reset a GND y configuro la opción "Conectar bajo reset" en ST-Link Utility pero no funciona... ¿Qué puedo hacer?

En Internet, he encontrado algo sobre el uso de BOOT0 Pin, pero no sé exactamente ...

31voto

zupazt3 Puntos 88

He conseguido resolver ese problema. Si alguien se encuentra con un problema similar, esto es lo que he hecho:

He utilizado ST-Link v2 y ST-Link Utility. En la configuración, me puse "Conectar bajo reset" y la interfaz SWD (no estoy seguro acerca de la frecuencia).
Entonces pulsé el botón de reinicio en mi placa y pulsé "Target" -> "Erase chip" y justo después de pulsar solté el botón - Se borró el chip así que ya puedo reprogramar mi MCU.

De todas formas, si necesitas usar los pines SWD como salida, entonces añade algún retardo al principio del programa o usa algún jumper para deshabilitar/habilitar la configuración de estos pines como salidas.

8voto

Stefan Arentz Puntos 151

Para que la conexión bajo reset funcione el ST-Link debe tener control sobre el pin de reset, si lo conectas a masa el ST-Link no tiene posibilidad de hacer funcionar el objetivo y acceder a él.


Si pones el pin BOOT0 alto durante el encendido, el MCU arrancará en el gestor de arranque interno y podrás acceder usando varios protocolos serie (ver el manual de referencia para más detalles).

Dentro del bootloader los pines SWD deberían estar disponibles para acceder, pero no estoy 100% seguro de esto.

El ST Demostrador de Flash Loader es una herramienta que te permite borrar / programar el micro usando la interfaz UART. Si no puedes acceder a ninguna de las UARTs de tu micro, esta solución no te funcionará.

5voto

PrismWiz4rd Puntos 6

Si estas usando stmcubemx, necesitas configurar el cable serie en la pestaña pinout de stmcube. en la pestaña pinout, haz click en SYS y cambia la opcion debug a serial wire. soluciona mi problema, y quizas el tuyo tambien.

1voto

Vitaliy Puntos 26

He descargado algo de código en mi propia placa STM32F427. Entonces ya no puedo conectarme a mi placa usando ST-LINK Utility. Creo que mi código messup el puerto de depuración pin configuraciones (? no se puede confirmar). Lo que hice fue lo siguiente para hacer la conexión y reprogramar mi placa:

  1. Abra la Utilidad ST-LINK y prepárese para "Conectar" en el menú Destino.
  2. Encienda su placa (en mi caso, utilizo un cable USB) y AL MISMO TIEMPO haga clic en el botón "Conectar" de la utilidad ST-LINK.

He restaurado 2 tablas con este truco. Espero que esto ayude. --Bob

1voto

mrtimdog Puntos 31

Como dijo Dili:

si estas usando stmcubemx, necesitas configurar el cable serie en la pestaña pinout de stmcube. en la pestaña pinout, haz click en SYS y cambia la opcion debug a serial wire. soluciona mi problema, y quizas el tuyo tambien.

STM32CubeMx no configura el puerto de depuración por defecto, en consecuencia ST-Link dejará de funcionar una vez que flashees tu código. Tienes que borrar el chip con ST-link Utility por ejemplo. Para conectar con el MCU he tenido que tirar del pin BOOT0 alto durante el encendido para activar el bootloader. Luego ir a Menú Tarjet y Borrar chip .

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