Soy nuevo en STM32 y recientemente intenté hacer una placa personalizada con STM32F103RB. Pero estoy un poco confundido por los métodos disponibles para programar el chip. Digamos que uso ST-Link a través de SWD, ¿significa que no necesito grabar el gestor de arranque en el chip por mi cuenta? Es decir, ¿significa que puedo programar el flamante chip directamente con ST-Link sin ningún otro procedimiento adicional?
En caso afirmativo, ¿significa que no necesito usar los pines BOOT0 y BOOT1?
¿Qué pasa con el uso de USB a través de pines USBDP y USBDM en STM32?
¡Muchas gracias a todos!
El gestor de arranque está en ROM, no es modificable por el usuario (es decir, no puede "grabar" un nuevo gestor de arranque). Esta nota describe las características del cargador de arranque para diferentes partes de STM32.
En todas las partes de STM32 que he usado, tira de BOOT0 a tierra para omitir el gestor de arranque y arrancar desde flash (dirección 0x0800000 en la mayoría de STM32). Con BOOT0 bajado, el estado del pin de BOOT1 no importa. Normalmente bajo BOOT0 con una resistencia de 100 kOhm en las placas que diseño en el trabajo. No lo deje flotando, no se baja internamente, por lo que sucederán cosas divertidas si no lo baja.
Puede usar ST-Link SWD para actualizar su firmware al chip y depurar el código en ejecución. Cualquier IDE que admita STM32 debería saber cómo hacer esto de manera inmediata, yo personalmente uso Ac6 porque es gratis. Como mínimo, debe conectar las líneas SWDIO, SWCLK y GND al programador, pero también debe activar NRST siempre que sea posible porque la depuración sin una línea de reinicio de hardware puede ser una verdadera molestia.
En cuanto a su última pregunta, el gestor de arranque de la serie F103 no es compatible con USB, aunque algunas otras partes (como la serie F105) sí lo son. No recomendaría la programación a través de USB a menos que tenga una razón específica para hacerlo: SWD le permitirá programar y depurar, y es mucho más fácil de hacer funcionar.
pentrita
Sincrondino
siguió a Mónica a Codidact
Sincrondino
pentrita
Sincrondino
romano matveev