He construido mi propia placa con STM32F7-45VGT6. Lo programé con éxito 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 darse el caso de que use pines SWD como salida y en mi código los configure 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...
Logré resolver ese problema. Si alguien encuentra un problema similar, esto es lo que he hecho:
Usé ST-Link v2 y ST-Link Utility. En la configuración, configuré "Conectar bajo reinicio" y la interfaz SWD (no estoy seguro de la frecuencia).
Luego presiono el botón de reinicio en mi tablero y hago clic en "Objetivo" -> "Borrar chip" y justo después de hacer clic solté el botón - Borró el chip, así que ahora puedo reprogramar mi MCU.
De todos modos, si necesita usar los pines SWD como salida, agregue algo de retraso al comienzo del programa o use algún puente para deshabilitar/habilitar la configuración de estos pines como salidas.
Para que la conexión bajo reinicio funcione, el ST-Link debe tener control sobre el pin de reinicio, si lo conecta a tierra, el ST-Link no tiene posibilidad de hacer que el objetivo funcione 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á obtener acceso mediante varios protocolos en serie (consulte el manual de referencia para obtener más detalles).
Dentro del cargador de arranque, los pines SWD deberían estar disponibles para obtener acceso, pero no estoy 100% seguro de esto.
El ST Flash Loader Demonstrator es una herramienta que le permite borrar/programar el micro usando la interfaz UART. Si no puedes acceder a ninguna de las UART de tu micro, esta solución no te servirá.
Si está utilizando stmcubemx, debe configurar el cable serial en la pestaña de asignación de pines de stmcube. en la pestaña pinout, haga clic en SYS y cambie la opción de depuración a cable serie. soluciona mi problema, y tal vez su problema también.
Descargué un código en mi propia placa STM32F427. Entonces ya no puedo conectarme a mi placa usando la utilidad ST-LINK. Creo que mi código arruinó las configuraciones del pin del puerto de depuración (? No puedo confirmar). Lo que hice es lo siguiente para hacer la conexión y reprogramar mi placa:
Restauré 2 tableros con este truco. Espero que esto ayude. --Beto
Como dili dijo:
Si está utilizando stmcubemx, debe configurar el cable serial en la pestaña de asignación de pines de stmcube. en la pestaña pinout, haga clic en SYS y cambie la opción de depuración a cable serie. soluciona mi problema, y tal vez su problema también.
STM32CubeMx no configura el puerto de depuración de forma predeterminada, por lo que ST-Link dejará de funcionar una vez que actualice su código. Tienes que borrar el chip con ST-link Utility por ejemplo. Para conectarme con la MCU, tuve que subir el pin BOOT0 durante el encendido para activar el gestor de arranque. Luego vaya al menú Tarjet y Borrar chip .
Me encontré con el mismo problema en STM32F1xx. Específicamente, no pude conectarme al chip STM32 usando la interfaz SWD en mi placa personalizada, mientras que todo funcionó bien en STM32F7xx con el mismo firmware en una placa NUCLEO. En mi caso, hubo 2 razones para esto:
Solución a corto plazo: llevar la señal nRST del programador a la línea de reset usando el cable externo (en mi caso fue fácil, ya que tenía un botón de reset físico en mi placa). Luego lo mostré con la versión FW que tenía SWD especificado en la vista de distribución de pines. Después de eso, ya no hubo necesidad de conectar el nRST.
Solución a largo plazo: dirija la línea nRST a la interfaz SWD en la próxima revisión de la placa. Con este cambio, pude deshabilitar SWD de manera segura durante el inicio y reutilizar los pines
Para reprogramar la MCU, mantenga presionado el botón de reinicio y elija conectarse al dispositivo en la utilidad ST-Link o presione descargar en su IDE (por ejemplo, Keil) y luego suelte el botón de reinicio.
Los pines de arranque (bits en algunas versiones) pueden impedir que se inicie el depurador. Asegúrese de no implementar el patrón de inicio en el inicio (cierto patrón binario en los pines boot0 y boot1), de lo contrario, su MCU entrará en estado de inicio.
chris stratton