Introducción a STM32CubeProgrammer
STM32CubeProgrammer es una potente herramienta de programación STM32 lanzada por STMicroelectronics. Integra en gran medida las funciones de las siguientes herramientas:
- STVP o STLinkUtility (herramienta de programación JTAG/SWD)
- STMFlashLoaderDemo (herramienta de programación UART)
- DfuSeDemo (herramienta de grabación USB)
- ST-LinkUpgrade (herramienta de actualización del firmware del programador Stlink)
Interfaz de usuario de STM32CubeProgrammer
STM32CubeProgrammer ofrece interfaces de usuario tanto gráficas como de línea de comandos. Además, también proporciona una API C++, y los usuarios pueden integrar las funciones de STM32CubeProgrammer en las aplicaciones para PC que desarrollen.
Como se muestra en la figura anterior, en el área de configuración de la derecha, los usuarios pueden elegir conectarse al microcontrolador STM32 a través de la interfaz de depuración STLink o de interfaces de comunicación como USB y UART. Después de conectarse al microcontrolador STM32, puede ver el modelo actual de MCU, la versión y el tamaño de la memoria Flash en el área «Información del dispositivo». Si se conecta una placa de desarrollo ST oficial, también se mostrará el nombre de la placa de desarrollo.
Funciones de STM32CubeProgrammer
STM32CubeProgrammer admite el borrado y la lectura/escritura de la memoria integrada de los MCU STM32 a través de la interfaz de depuración SWD/JTAG de STLink o mediante interfaces de comunicación como UART, USB, I2C, SPI y CAN, utilizando el gestor de arranque del sistema programado de fábrica almacenado dentro del chip.
Estas son las funciones clave de STM32CubeProgrammer:
Borrado y programación
STM32CubeProgrammer admite el borrado por sectores y el borrado completo del chip de la memoria Flash. Puede importar varios formatos de archivo para la programación, incluidos archivos binarios (.bin), elf (.elf, .axf, .out), hexadecimales (.hex) y Motorola S-record (.srec).
Operación de borrado
Después de establecer una conexión con la MCU de destino a través de STLink, puede borrar sectores Flash en la página «Borrado y programación» por sector o realizar un borrado completo del chip seleccionando el botón «Borrado completo del chip».
Operación de programación
En la página «Borrar y programar», puede hacer clic en el botón «Examinar» para importar un archivo ejecutable y, a continuación, hacer clic en «Iniciar programación» para iniciar el proceso de programación.
Alternativamente, en la página «Memoria y edición de archivos», puede abrir el archivo ejecutable que desea programar y, a continuación, hacer clic en «Descargar» para iniciar la programación.
En la página «Memory & File Edition» (Edición de memoria y archivos), en «Device Memory» (Memoria del dispositivo), también puede leer los valores de la memoria MCU en un rango de direcciones específico y guardar el contenido leído como archivos binarios (.bin), hexadecimales (.hex) o S-record (.srec) utilizando el menú «Save As» (Guardar como).
Además de programar todo el archivo ejecutable, puede modificar directamente el valor en una dirección específica en la página «Memory & File Edition» (Edición de memoria y archivos), en «Device Memory» (Memoria del dispositivo). Después de pulsar «Enter», STM32CubeProg leerá, modificará, borrará y volverá a escribir automáticamente. Este método se puede utilizar para programar bytes programables una sola vez (OTP).
Byte de opción Lectura/Escritura
En la página OB (Byte de opción), puede ver la configuración actual de los bytes de opción para la MCU conectada. También puede modificar los valores de los bytes de opción aquí. Para obtener explicaciones detalladas sobre los bytes de opción, consulte el manual de referencia de la MCU específica.
Programación «dos en uno»
Mediante el modo de programación «Dos en uno» de la página «Borrado y programación», puede programar tanto la memoria FLASH como los bytes opcionales en una sola operación. La configuración de los bytes opcionales se realiza mediante la «línea de comandos STM32CubeProgrammer» con el comando «-ob». Por ejemplo, para establecer la protección de lectura en el nivel 1 después de programar la memoria FLASH, siga estos pasos:
- Establezca la ruta al archivo ejecutable que se va a descargar.
- Marque «Borrado completo del chip» y «Descargar archivo» en «Modo automático».
- En el cuadro de entrada «Comandos de bytes de opción», introduzca «-ob rdp=0xBB».
- Haga clic en «Iniciar modo automático» y STM32CubeProgrammer ejecutará las operaciones especificadas en secuencia, mostrando el progreso en la ventana de registro.
Para obtener más información sobre el formato del comando «-ob», consulte la sección 3.2.15 de UM2237 (Manual del usuario de la herramienta de software STM32CubeProgrammer). Las definiciones de los campos OptByte dentro del comando «-ob» no se explican en UM2237, pero puede encontrarlas inspeccionando la pestaña «Option bytes» (Bytes de opción) en la interfaz gráfica de STM32CubeProgrammer, ya que las definiciones del comando «-ob» coinciden con las que se encuentran aquí. También puede utilizar el comando «-ob displ» para mostrar la configuración actual de todos los bytes de opción, lo que le permitirá comprender las definiciones de cada campo OptByte.
Lectura/escritura de memoria externa
Si desea leer/escribir en una memoria externa conectada a STM32 a través de interfaces como SPI, FMC, QSPI, necesitará un cargador externo. CubeProgrammer proporciona cargadores externos predeterminados correspondientes a la memoria externa integrada en las placas de desarrollo STM32. Si utiliza un modelo de memoria diferente, puede crear sus propios archivos de cargador externo (*.stldr). Consulte la sección 2.3.3 de UM2237 para obtener instrucciones detalladas.
Antes de realizar operaciones en la memoria externa, debe seleccionar el cargador externo correspondiente en la página «Cargador externo». Este cargador externo se utilizará en las operaciones posteriores de borrado y programación de la memoria externa en las páginas «Borrado y programación» y «Edición de memoria y archivos».
Gestor de arranque
De fábrica, los MCU STM32 vienen con una memoria interna del sistema que contiene un gestor de arranque, lo que permite actualizar la memoria Flash integrada a través de interfaces como USART, USB, I2C, SPI y CAN. La interfaz del gestor de arranque compatible varía en función del modelo de MCU STM32. Puede encontrar información específica al respecto en la nota de aplicación AN2606. STLink v2 y STLink v3 proporcionan interfaces puente desde los protocolos de comunicación USART, USB, I2C, SPI y CAN a USB, lo que permite conectar las MCU STM32 a un PC.
STM32CubeProgrammer proporciona una interfaz para PC que permite borrar y programar la memoria Flash integrada en el chip a través del gestor de arranque. STLink v2 solo admite interfaces de comunicación USART y USB, mientras que STLink v3 añade compatibilidad con interfaces de comunicación I2C, SPI y CAN. ST ofrecía anteriormente dos herramientas de software independientes para PC: «STM32 Flash loader demonstrator» y «Dfuse Demo», cada una de las cuales era compatible con el gestor de arranque USART y la funcionalidad USB DFU. Ahora, puede utilizar STM32CubeProgrammer, una única herramienta de software, para dar soporte a todas estas interfaces de comunicación.
Ventana de entrada de información SWO
Durante el desarrollo, a menudo es necesario generar información de depuración. Un método habitual consiste en redirigir la salida de printf a un puerto serie, lo que consume un puerto serie. Otro método consiste en redirigir la salida de printf al pin SWO (Serial Wire Output) a través de la interfaz de depuración SWD, lo que permite enviar la información de depuración a través de SWO. La ventana SWV (Serial Wire Viewer) de STM32CubeProgrammer puede mostrar la información de depuración enviada a través de SWO y guardar toda la información recibida en un archivo «.log» especificado.
Interfaz de línea de comandos
STM32CubeProgrammer proporciona una interfaz de línea de comandos que le permite realizar la mayoría de sus funciones mediante la ejecución de comandos. El archivo ejecutable «STM32_Programmer_CLI.exe» se encuentra en la carpeta «bin» del directorio de instalación de STM32CubeProgrammer. Al ejecutar «STM32_Programmer_CLI.exe» se mostrará una lista de los comandos compatibles y sus parámetros.
La interfaz de línea de comandos también ofrece algunas funciones que no están disponibles en la interfaz gráfica, como la creación de paquetes de confianza, la programación segura, el cálculo de valores CRC y mucho más. Para obtener instrucciones detalladas, consulte UM2237. El ejemplo de la figura muestra cómo conectarse al chip de destino a través de la interfaz SWD y configurar el nivel de protección de lectura 1 mediante instrucciones de línea de comandos. El comando completo es «STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB».
Actualización del firmware STLink
Después de conectar el depurador STLink a su ordenador, abra STM32CubeProgrammer y actualice la conexión STLink para ver la versión actual del firmware STLink. Haga clic en el botón «Actualización del firmware» y abra la herramienta STLinkUpgrade para actualizar la versión del firmware STLink.
¿Cómo se utiliza STM32CubeProgrammer?
STM32CubeProg es una herramienta de programación completa que incluye operaciones típicas como lectura, escritura (descarga/programación), borrado y programación de bytes opcionales.
Descargar STM32CubeProg
Sitio web oficial: https://www.st.com/en/development-tools/stm32cubeprog.html
Entorno de instalación
STM32CubeProg es compatible con los sistemas operativos Windows, Linux y macOS. Dado que está basado en JAVA, es necesario instalar Java Runtime Environment (JRE) en el ordenador. El proceso de instalación se muestra en la imagen siguiente (versión 2.5.0b):
Conexión de chips y STM32CubeProg
Al utilizar STM32CubeProgrammer para conectarse a la placa de destino a través de STLINK, puede haber casos en los que la conexión falle. Esto podría deberse a una versión baja del firmware dentro del STLINK. Para solucionarlo, haga clic en el botón «Actualización del firmware» para realizar una actualización del firmware. Durante el proceso de actualización, es posible que tenga que enchufar y desenchufar varias veces. Una vez completada la actualización, desenchufe y vuelva a enchufar una vez para que STM32CubeProgrammer reconozca el STLINK.
Programación y depuración de chips
Después de completar la depuración del programa, debe programar el chip con su código. Por lo general, tiene tres opciones:
- Utilizar la interfaz de depuración JTAG/SWD para programar el chip, lo que a menudo requiere el software STLink Utility o STVP.
- Programar el chip a través de la interfaz UART, utilizando el software demostrador STM32 Flash loader en el PC.
- Programar el chip a través de la interfaz USB, utilizando el software USB DfuSe.




