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

7

He construido mi propia placa con STM32F7-45VGT6. Lo programé exitosamente con ST-LINK v2 (aunque no el original) y ahora ni siquiera puedo conectarme con MCU.

Uso la utilidad ST-Link de la interfaz ST y SWD. Puede ser que use pines SWD como salida y en mi código los establezco como salida GPIO. ¿Puede ser el caso?

Sin embargo, conecto mi pin de reinicio a GND y configuro la opción "Conectar bajo reinicio" en la utilidad ST-Link pero no funciona ... ¿Qué puedo hacer?

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

    
pregunta zupazt3

7 respuestas

11

Logré resolver ese problema. Si alguien encuentra un problema similar, esto es lo que he hecho:

Utilicé ST-Link v2 y la utilidad ST-Link. En la configuración, establezco "Conectar bajo reinicio" y la interfaz SWD (no estoy seguro de la frecuencia).
Luego presiono el botón de reinicio en mi tablero y presioné "Objetivo" - > "Borrar chip" y justo después de hacer clic, solté el botón: borré el chip y ahora puedo reprogramar mi MCU.


De todos modos, si necesita usar pines SWD como salida, agregue un poco de retraso al comienzo del programa o use algún puente para deshabilitar / habilitar la configuración de estos pines como salidas.

    
respondido por el zupazt3
4

Para que la conexión bajo reinicio funcione, el ST-Link debe tener control sobre el pin de reinicio, si lo atas a tierra, el ST-Link no tiene oportunidad de poner en marcha el objetivo y obtener acceso a él.

Si coloca el pin BOOT0 alto durante el encendido, la MCU se iniciará en el cargador de arranque interno y podrá acceder usando varios protocolos en serie (consulte el manual de referencia para obtener más detalles).

Dentro del gestor de arranque, los pines SWD deberían estar disponibles para obtener acceso, pero no estoy 100% seguro de esto.

El ST Demostrador del cargador Flash es una herramienta que le permite borrar / programar el micro utilizando la interfaz UART. Si no puede acceder a ninguno de los UART de su micro, esta solución no funcionará para usted.

    
respondido por el Arsenal
1

Si está utilizando stmcubemx, necesita configurar el cable en serie en la pestaña de pines del stmcube. en la pestaña de pines, haga clic en SYS y cambie la opción de depuración al cable serial. soluciona mi problema, y tal vez tu problema también.

    
respondido por el dili
0

Para volver a programar la MCU, mantenga presionado el botón de reinicio y elija conectar al dispositivo en la Utilidad ST-Link o presione descargar en su IDE (por ejemplo, Keil) y luego suelte el botón de reinicio.

    
respondido por el Misagh
0

Descargué algo de código a mi propia placa STM32F427. Entonces ya no puedo conectarme a mi placa utilizando la utilidad ST-LINK. Creo que mi código confunde las configuraciones del pin de puerto de depuración (? No puedo confirmar). Lo que hice es lo siguiente para realizar 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 tarjeta (en mi caso, uso un cable USB) y AL MISMO TIEMPO haga clic en "Conectar" desde la utilidad ST-LINK.

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

    
respondido por el Bob Liu
0

Como dijo dili:

  

Si está utilizando stmcubemx, necesita configurar el cable en serie en la pestaña de pines del stmcube. en la pestaña de pines, haga clic en SYS y cambie la opción de depuración al cable serial. soluciona mi problema, y tal vez tu problema también.

STM32CubeMx no configura el puerto de depuración de forma predeterminada, por lo tanto, ST-Link dejará de funcionar una vez que se actualice el código. Tienes que borrar el chip con la utilidad ST-link, por ejemplo. Para conectarme con la MCU tuve que tirar del pin BOOT0 alto durante el encendido para activar el cargador de arranque. Luego, vaya a menú de Tarjet y Borrar chip .

    
respondido por el Pablo Soria
-1

Los pines de arranque (bits en algunas versiones) pueden evitar que el depurador se inicie. Asegúrate de no implementar el patrón de arranque al inicio (cierto patrón binario en los pines boot0 y boot1), de lo contrario, tu MCU entrará en estado de arranque.

    
respondido por el Lior Bilia

Lea otras preguntas en las etiquetas