- Materiales necesarios
- Diagrama de circuito
- Carga del cargador de arranque Maple en la placa de desarrollo STM32
- Preparación del IDE de Arduino e instalación de los controladores
- Programación de STM32 (Blue Pill) directamente a través del puerto USB
La placa de desarrollo STM32 que aloja el microcontrolador STM32F103C8 se está volviendo cada vez más popular gracias a su arquitectura ARM Cortex M3, tiene una alta velocidad operativa y más opciones de periféricos. Además, dado que esta placa se puede programar fácilmente usando el IDE de Arduino, se ha convertido en una opción preferida para muchos aficionados e ingenieros para la creación rápida de prototipos.
En nuestro tutorial anterior aprendimos los conceptos básicos de la placa de desarrollo STM32 y también la programamos para que parpadee un LED. Pero tenía un gran inconveniente. Para programar la placa utilizamos un módulo programador FTDI y también tuvimos que alternar el puente de arranque 0 entre una posición y una posición mientras cargamos y probamos un código, lo que seguramente es una tarea desalentadora. Además, el puerto mini-USB en la placa de desarrollo se dejó totalmente sin usar. La razón para hacerlo es que cuando se compra la placa de desarrollo STM32 , no viene con un cargador de arranque listo para Arduino y, por lo tanto, su computadora no descubrirá la placa cuando se conecte a través del USB.
Sin embargo, con suerte, existe un cargador de arranque experimental desarrollado por LeafLabs para mini placas Maple. Este cargador de arranque se puede flashear en el STM32 una vez y, a partir de entonces, podemos usar directamente el puerto USB de la placa STM32 para cargar programas como cualquier otra placa Arduino. Sin embargo, este cargador de arranque aún se encuentra en etapa de desarrollo al momento de documentar este tutorial y no es recomendable para aplicaciones críticas. Antes de continuar con este tutorial, asegúrese de haber leído el tutorial anterior para comprender los conceptos básicos de esta placa, incluidos los detalles sobre las especificaciones y los pines.
Materiales necesarios
- STM32 - (BluePill) Placa de desarrollo (STM32F103C8)
- Programador FTDI
- Tablero de circuitos
- Cables de conexión
- Laptop con Internet
Diagrama de circuito
Para programar la placa STM32 Blue Pill directamente a través del puerto USB, primero debemos actualizar el cargador de arranque Maple en la MCU. Para hacer esto, necesitamos usar una placa FTDI serial. Esta placa está conectada al pin Rx y Tx del STM32 como se muestra a continuación.
El pin Vcc de la placa FTDI está conectado al pin STM32 5V de alimentación de la placa. El suelo está conectado al suelo de STM32. El pin Rx y Tx de la placa FTDI está conectado al pin A9 y A10 del STM32 respectivamente. Donde el A9 es el pin Tx de STM32 MCU y el A10 es el pin Rx.
Asegúrese de que el pin del puente de arranque 0 en la placa esté configurado en 1 (modo de programación) mientras carga el cargador de arranque. Una vez que se actualiza el cargador de arranque, este pin se puede cambiar a la posición inicial (modo de funcionamiento).
Carga del cargador de arranque Maple en la placa de desarrollo STM32
Una vez que hayamos realizado la conexión anterior, conecte la placa FTDI a su computadora y siga los pasos para actualizar el cargador de arranque en el STM32.
Paso 1: Tenemos que descargar los archivos binarios del programa del cargador de arranque (archivo bin) desde la página de github. Hay muchas versiones del archivo bin, para el tablero Blue Pill use este enlace de github y haga clic en el botón de descarga para descargar el archivo bin.
Paso 2: A continuación, tenemos que descargar e instalar el software STM Flash Loader para actualizar el archivo bin descargado en STM32. Haga clic en este enlace para ingresar al sitio web de ST, desplácese hasta la parte inferior y haga clic en obtener software
Paso 3: Para descargar el software, debe ingresar su dirección de correo electrónico y el enlace de descarga se enviará a su correo electrónico. Luego, siga el enlace de regreso al sitio web y haga clic en obtener software nuevamente y comenzará la descarga. Sí, es un poco frustrante, pero así es como se debe hacer. No olvide buscar el correo electrónico en su carpeta de correo no deseado; a veces, el correo electrónico tarda un par de minutos en llegar.
Paso 4: Una vez descargado, instale el software, asegúrese de que su placa STM32 esté conectada a su computadora a través de la placa FTDI y luego inicie el software. El software detectará automáticamente el puerto COM si no usa el Administrador de dispositivos y asegúrese de seleccionar el número de puerto COM correcto. En mi caso es COM4. Deje el resto del ajuste como se muestra a continuación.
Paso 5: Haga clic en el botón Siguiente dos veces y el software volverá a detectar automáticamente los detalles de la placa y se mostrará como se muestra a continuación. La placa que estamos usando es STM32F1 con memoria flash de 128K.
Paso 6: En el siguiente paso, seleccione Descargar al dispositivo y busque la ubicación donde descargamos nuestro archivo bin en el paso 1 y selecciónelo. Haga clic en siguiente.
Paso 7: El software descargará algunos archivos necesarios como se muestra a continuación y luego comenzará el proceso de actualización.
Paso 8: Una vez que el flasheo se complete con éxito, obtendremos la siguiente pantalla. Haga clic en cerrar y salir de la aplicación. Hemos flasheado la placa STM32 con el cargador de arranque Arduino con éxito. Ahora tenemos que preparar el IDE de Arduino e instalar los controladores antes de poder programar la placa STM32.
Preparación del IDE de Arduino e instalación de los controladores
Siga los pasos a continuación para descargar y preparar el IDE de Arduino para su uso con la placa de desarrollo STM 32.
Paso 1: - Si aún no ha instalado el IDE de Arduino, descárguelo e instálelo desde este enlace. Asegúrese de seleccionar su sistema operativo correcto.
Paso 2: - Después de instalar Arduino IDE, abra y descargue los paquetes necesarios para la placa STM32. Esto se puede hacer seleccionando Archivo -> Preferencias .
Paso 3: - Al hacer clic en Preferencias se abrirá el cuadro de diálogo que se muestra a continuación. En el cuadro de texto URL adicional de Boards Manager, pegue el siguiente enlace
dan.drown.org/stm32duino/package_STM32duino_index.json
y presione OK.
Paso 4: - Ahora vaya a Herramientas -> Tableros -> Administrador de tableros . Esto abrirá el cuadro de diálogo del administrador de tableros, busque "STM32F1" e instale el paquete que aparece.
Paso 5: Después de instalar el paquete, vaya a C: \ Archivos de programa (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win, donde encontrará install_drivers.bat e install_STM_COM_drivers.bat .
Paso 6: haga clic en ambos archivos bat e instale los controladores. Obtendrá una pantalla de DOS como se muestra a continuación.
Ahora el IDE de Arduino está preparado para programar la placa de desarrollo STM32 (Blue Pill) y los controladores también están instalados.
Programación de STM32 (Blue Pill) directamente a través del puerto USB
Retire la placa FTDI y todas las conexiones existentes de su STM32. Simplemente use el puerto micro-USB en la placa STM32 para conectarlo a la computadora como se muestra a continuación. Asegúrese de que el pin del puente 0 esté colocado nuevamente en 0 (modo de funcionamiento). De ahora en adelante ya no necesitamos alternar el puente para cargar y ejecutar los programas.
Tu computadora debería poder descubrir el tablero ahora. Espere un momento si ve que se instalan controladores adicionales. Luego ingrese al Administrador de dispositivos y verifique si su placa STM32 se encuentra en la sección COM y puerto como se muestra a continuación. El mío está conectado a COM8 con el nombre Maple Mini.
Vaya a Herramientas y desplácese hacia abajo para encontrar la serie Genérica STM32F103C como se muestra a continuación. Luego, asegúrese de que la variante sea del tipo Flash de 64k , la velocidad de la CPU sea de 72MHz y cambie el método de carga a STM32duino Bootloader . También seleccione el puerto COM correcto de acuerdo con el de su administrador de dispositivos.
Después de realizar todos los cambios, verifique la esquina inferior derecha del IDE de Arduino y debería notar que se establece la siguiente configuración. Mi placa STM32 está conectada a COM8 pero la suya puede diferir
Ahora el IDE de Arduino está listo para programar las placas de desarrollo STM 32 Blue Pill. Carguemos el programa Blink de muestra desde el IDE de Arduino al tablero STM32 Blue Pill para asegurarnos de que todo funcione correctamente. El programa de ejemplo se puede encontrar en
En el programa de ejemplo que se abre, tenemos que hacer un pequeño cambio. De forma predeterminada, el programa se escribirá para PB1, pero en nuestra placa el LED integrado está conectado a PC13, así que reemplace todo PB1 con PC13 y estamos listos para continuar. El programa de ejemplo completo que se ha modificado también se puede encontrar en la parte inferior de esta página.
El código dentro de la función de bucle solo se muestra a continuación, donde podemos notar que el pin PC13 se mantiene ALTO (encendido) durante 1000 milisegundos y luego se enciende en BAJO (apagado) durante otros 1000 milisegundos y esto se hace por infinitas veces ya que está en función de bucle . Por lo tanto, el LED parece parpadear con un intervalo de 1000 milisegundos.
escritura digital (PC13, ALTA); // enciende el LED (HIGH es el nivel de voltaje) delay (1000); // esperar una segunda escritura digital (PC13, LOW); // apaga el LED haciendo que el voltaje sea bajo delay (1000); // Espera un segundo
Presione el botón de carga en el IDE de Arduino y su programa debería compilarse y cargarse. Si todo ha funcionado como se esperaba, debería ver lo siguiente en su consola Arduino IDE.
Si el programa se ha cargado correctamente, debería ver el LED verde parpadeando en un intervalo de 1 segundo, como se muestra en el video a continuación. También puede jugar con el programa para aumentar o disminuir el retraso. Ahora puede comenzar a usar la placa de desarrollo STM32 (Blue Pill) como cualquier otra placa Arduino, es decir, ya no necesita cambiar la posición de los puentes ni usar hardware externo para cargar y probar programas.
Espero que haya entendido el tutorial y le haya resultado útil comenzar con la placa STM32. Si tienes algún problema déjalos en la sección de comentarios, también dime qué proyectos deberíamos probar con esta placa STM32 en el futuro.