Programación STM32: JTAG / SWD vs bootloader

2

Estoy haciendo un PCB para un proyecto personal usando el microcontrolador STM32L031K6T7. Parece que este uC tiene un gestor de arranque que se puede usar para reprogramar el programa flash mem 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 soy capaz de interactuar con SWD usando mi depurador j-link, pero ¿cómo podría interactuar con el método del cargador de arranque?

Mi conjetura es que necesitaría un dispositivo para interconectarse entre 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 poblado con otros dispositivos, y luego probé el método del cargador de arranque para programarlo. ¿No debería el dispositivo programador ser el maestro SPI para iniciar las comunicaciones con el uC como esclavo?

    
pregunta orngnr

2 respuestas

2

Sí. Muchos dispositivos STM32 vienen con un cargador de arranque incorporado. Consulte la documentación sobre cómo activarlo. Esto se hace a menudo atando un pin alto durante el encendido.

También deberá leer la hoja de datos sobre cómo usar el SPI y UART en el modo de cargador de arranque.

Entonces, sí, puedes programar el dispositivo usando el gestor de arranque o usando SWD.

SWD también se usa para depurar el dispositivo (por ejemplo, un paso a través del código, examinar la memoria), mientras que el cargador de arranque es solo para cargar un programa.

    
respondido por el Vince Patron
1

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 utilizando una línea de hardware (el procesador podría entrar en un modo en el que no podría reiniciar el procesador con un comando de depuración de software, en cuyo momento tendría que encender y apagar el ciclo it.) La interfaz JTAG también se puede ejecutar en un "modo" SWD donde solo se usan 2 cables para la comunicación.

Hay varias formas de programar un STM32, (Flash externo, USB, ROM externa) pero requieren que se ejecute un código en el procesador, por lo que inicialmente necesitará un cargador de arranque y programación. Necesitará el SWD o JTAG para la depuración de todos modos.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas