Estoy haciendo un PCB para un proyecto personal usando el microcontrolador STM32L031K6T7. Parece que este uC tiene un cargador de arranque que se puede usar para reprogramar la memoria del programa flash a través de UART o SPI. También tiene pines SWD.
Entonces, ¿eso significa que tengo dos métodos completamente separados pero igualmente válidos para programar este uC si quiero? Entiendo que puedo interactuar con SWD usando mi depurador j-link, pero ¿cómo me conectaría con el método del cargador de arranque?
Supongo que necesitaría un dispositivo para conectar el USB de mi computadora y el bus UART o SPI de la uC, pero no estoy 100% seguro. Y luego me pregunto si tengo que preocuparme por lo que sucedería si tuviera el bus SPI ocupado con otros dispositivos, y luego probé el método del cargador de arranque para programarlo. ¿No tendría que ser el dispositivo del programador el maestro SPI para iniciar las comunicaciones con el uC como esclavo?
Sí. Muchos dispositivos STM32 vienen con un gestor de arranque integrado. Consulte la documentación sobre cómo activarlo. Esto a menudo se hace atando un alfiler alto durante el encendido.
También deberá leer la hoja de datos sobre cómo usar SPI y UART en el modo de cargador de arranque.
Entonces, sí, puede programar el dispositivo usando el cargador de arranque o usando SWD.
SWD también se utiliza para depurar el dispositivo (por ejemplo, un solo paso a través del código, examinar la memoria), mientras que el cargador de arranque es solo para cargar un programa.
SWD es una interfaz JTAG de 4 hilos sin reinicio de hardware. JTAG tiene más cables, pero también tiene una línea de reinicio para reiniciar el procesador usando una línea de hardware (el procesador podría entrar en un modo en el que es posible que no pueda reiniciar el procesador con un comando de depuración de software, momento en el que tendría que apagar y encender). ) La interfaz JTAG también se puede ejecutar en un "modo" SWD donde solo usa 2 cables para la comunicación.
Hay varias formas de programar un STM32 (Flash externo, USB, ROM externo), pero requieren que el código se ejecute en el procesador, por lo que inicialmente necesitará un gestor de arranque y programación. Necesitará SWD o JTAG para la depuración de todos modos.
Sé que es viejo pero estoy viendo cosas que pueden confundir a un novato.
La "biblia" para manejar los diversos cargadores de arranque integrados STM32 es AN-2606 de ST-Micro, "modo de arranque de memoria del sistema de microcontrolador STM32", se actualiza a medida que se lanza una nueva serie. Al momento de escribir este artículo, se actualizó por última vez en octubre de 2019 (es decir, el mes pasado).
A continuación, TODOS los chips STM32 tienen, como mínimo, un cargador de arranque en serie integrado. Es ROM de fábrica y no se puede borrar. Esto significa que no se requiere una interfaz externa (JTAG/SWD) para programar un STM32at en la mayoría de los casos. Tenga cuidado con posibles desajustes en el voltaje.
AN-2605 describe los diversos métodos para invocar un cargador de arranque del sistema. La cantidad de interfaces disponibles varía desde una sola interfaz USART en algunas de las primeras series STM32F1 hasta las H7, que son monstruos, con un total de 12 interfaces, 3 USART, 3 I2C, 4 SPI, 1 USB (DFU) y 1 FDCAN .
Por supuesto, puede ignorar todo esto y usar un adaptador JTAG/SWD para programar la MCU. Estos tienen la ventaja adicional de permitirle también depurar su trabajo.
Gesto de desaprobación
orngnr