En esta oportunidad vamos a ver como programar STM32 con el IDE de Arduino, para lo cual usaremos los dos modelos de tarjeta STM32F103C8T6 denominadas Blue pill y black pill
Para esto lo primero es preparar IDE de Arduino, para lo cual vamos a agregar tarjeta stm32 para que lo reconozca el IDE de Arduino
Lo primero que debemos hacer es abrir el IDE de Arduino, nos dirigimos al gestor de placas(herramientas /Placa /gestor de tarjetas), y añadimos el soporte para placas SAMD
Lo siguiente será ir a menú archivo, preferencias y en el Gestor de URLs adicionales de Tarjetas copiamos la siguiente dirección.
http://dan.drown.org/stm32duino/package_STM32duino_index.json
Volvemos al gestor de placas, y tendremos disponibles las placas STM32. Instalamos las que necesitemos. En particular, para la (STM32F103C8T6) vamos a necesitar las STM32F1X.
luego para las conexiones veremos la disposición de los pines de los dos modelos del stm32
PROGRAMACION CON EL CONVERSOR USB-TTL
Con el bootloader por defecto el STM32 tiene dos modos de arranque que dependen del estado del pin BOOT0.
BOOT 0 | MODO |
LOW | Arranque normal ejecutara el ultimo programa cargado. |
HIGH | modo de programación, espera un programa por UART (3.3v) cuando lo recibe lo graba en la memoria flash. |
Colocamos el jumper en la posición HIGH o sea modo de programación UART-TTL, luego pasamos a configurar el ejemplo en el IDE de Arduino
y luego conectamos el conversor USB-TTL al ordenador y seleccionamos la placa.
NOTA: es importante recalcar que el conversor USB-TTL debe estar configurado para trabajar con 3.3v además de haber instalado los drivers del conversor para que la computadora lo reconozca.
y luego configuramos los diguien tes parametros
Además en puerto hay que seleccionar el puerto COM generado por el conversor USB-TTL
para probar en el IDE de Arduino podemos copiar el siguiente ejemplo y subirlo ala tarjeta,
los pines donde esta el led en las dos tarjetas es diferente por lo cual dependiendo de que tarjeta estén usando deberan modificar la ´primera linea del código
//const int ledPIN = PB12; // para la tarjeta black pill(tarjeta de color negro) const int ledPIN = PC13; // para la tarjeta blue pill(tarjeta de color azul) void setup() { pinMode(ledPIN, OUTPUT); } void loop() { digitalWrite(ledPIN, HIGH); delay(1000); digitalWrite(ledPIN, LOW); delay(1000); }
NOTA: es importante que para que comience a funcionar después de cargar el programa debemos poner el el jumper de BOOT 0 a la posición LOW y con eso estaría listo para funcionar.
PROGRAMAR USANDO EL PROGRAMADOR ST-LINK(clon)
lo primero es descargar el driver de la pagina de ST e instalarlo, luego lo conectamosy nos aseguramos que el sistema lo reconoce correctamente
st-link | stm32 |
SWDIO | DIO |
SWCLK | CLK |
3.3V | 3.3 |
GND | GND |
La configuración de los pines puede cambiar dependiendo del modelo por lo cual en necesario que lo verifique.
Luego en Arduino configuramos lo siguiente
Respecto al jumper boot0 no es necesario cambiarlo al programar (BOOT0:LOW)´por lo que puede estar en la misma posición