¿Cómo ST-Link RESTABLECE la MCU usando el pin de reinicio? ¿Cómo conectar el pin Boot0 cuando no se usa y se usa la interfaz SWD?

Estoy diseñando una PCB personalizada basada en el microcontrolador STM32F401RCT6 . Estoy usando la interfaz SWD y STlink para programar y depurar el microcontrolador.

Comprendí que el pin de reinicio se usa para REINICIAR la MCU, que incluye todos los relojes de registros, etc. Cuando el pin de reinicio está conectado a tierra externamente, está en estado de reinicio cuando no está conectado a tierra, no está en estado de reinicio.

También entendí que el ST-LINK se reinicia y luego envía el programa a través de la interfaz SWD.

Pregunta 1:

Mi pregunta es cómo se restablece ST-Link porque, según la hoja de datos, el pin de restablecimiento del microcontrolador debe conectarse a tierra a través del interruptor de botón para que podamos restablecerlo manualmente presionándolo. Pero cuando me refiero a los esquemas para conectar el pin de reinicio a la interfaz SWD, vi dos conexiones: una es a través del interruptor de botón a tierra y otra está conectada directamente al conector SWD . Luego me confundí, ya que el pin de reinicio está conectado a tierra a través del interruptor de botón y cómo STlink reiniciará la MCU cuando el pin de reinicio esté conectado directamente al conector SWD sin conectarlo a tierra.

Entonces, cuando queremos reiniciar, debemos reiniciar manualmente presionando el botón. Si es así, ¿por qué necesitamos restablecer el pin para la interfaz SWD al enlace ST?

¿O es como si el pin de reinicio del programador Stlink interno estuviera conectado a GND? Entonces, para el reinicio automático a través de STlink, estamos usando el pin RESET en la interfaz SWD y para el reinicio manual estamos usando el botón. ¿Estoy en lo correcto? Si me equivoco corregirme.

ingrese la descripción de la imagen aquí

Y mi otra pregunta es: estoy usando la interfaz SWD para programar y depurar, ya que estoy usando la interfaz SWD y no uso el cargador de arranque, ¿debería conectar el pin Boot0 a tierra? ¿O hay algún uso del pin Boot0 (Bootloader) mientras se programa usando la interfaz SWD?

Respuestas (2)

Acabo de completar una PCB para un STM32 (STM32F042). El diseño es mínimo:

  • BOOT0 está conectado a tierra
  • NRST no está conectado en absoluto
  • SWDIO y SWDCLK están disponibles para programación y depuración

El ST-Link puede restablecer la MCU usando un comando a través de la interfaz SWD. Si desea conectar NRST, vaya como se describe en Justme .

Actualizar

Para aclarar la pregunta 2: BOOT0 no es necesario si usa SWD. Sería necesario si desea cargar el firmware a través de UART. Así que solo conéctalo a tierra.

El botón conecta el pin de reinicio a tierra solo cuando se presiona. No impide que el ST-Link lo tire a tierra para restablecerlo.

Si no quiere o necesita un botón de reinicio físico, no lo dibuje.

El ST-Link puede restablecer el objetivo a través de SWD o con el pin de restablecimiento físico. No necesita el pin de reinicio físico, está ahí para los casos en que el objetivo usa pines SWD para otra cosa, por lo que el reinicio a través de SWD no está disponible.

Si nunca desea ejecutar el gestor de arranque incorporado, conecte el Boot0 a tierra para ejecutar siempre el programa del usuario.