Este será el primer proyecto usando una tarjeta de desarrollo basada en el microcontrolador STM32F103C8T6 de 32 bits de la empresa STMicroelectronics, el cual posee un núcleo ARM Cortex-M3.

El microcontrolador STM32F101C8T6 cuenta con las siguientes características:

  • Empaquetado: LQFP
  • Número de pines: 48
  • Núcleo: 32-bit ARM Cortex M3.
  • Memoria Flash: 64 Kilobytes
  • Memoria SRAM: 20 Kilobytes
  • 8MHz de reloj de placa.
  • 72 MHz de frecuencia de operación.
  • 1 reloj de tiempo real (RTC)
  • 26 entradas y salidas digitales.
  • Interrupciones en todos los pines I/O.
  • ADC: 2 ADC de 12-bit, 10 entradas analógicas.
  • 7 temporizadores de propósito general de 16 bits.
  • 2 puertos I2C.
  • 2 puertos SPI.
  • 3 puertos RS232 USUARTs.
  • 1 puerto CAN.
  • Micro USB 2.0 (12 Mbit/s) para alimentación y comunicación de la placa.
  • Soporta DEBUG por JTAG y SWD
  • Tensión de funcionamiento entre 2 Vcc y 3.6 Vcc.
  • una unidad de calculo CRC (cyclic redundancy check).

Este microcontrolador permite cargar el firmware en la memoria SRAM como en la memoria FLASH, para lo cual cuenta con un pin llamado BOOT0 y dependiendo si está a gnd o vcc el firmware se carga en una memoria o en la otra, la tarjeta de desarrollo cuenta con dos Jumpers para esta función.

BOOT1 BOOT0 MODO
x0FLASH
01RAM
11Ext. SRAM
Jumpers selección de Boot.

La placa puede ser programada por dos métodos, mediante un adaptador USB-SERIE o con el adaptador ST-LINK este último es un programador específico para los microcontroladores de la familia STM32 y STM8 el cual permite realizar procesos de depuración a través de un puerto SWD.

Adaptador ST-LINK.
Conversor USB a serie.


Programación de la tarjeta

Como entorno de desarrollo usaremos Platformio en Visual estudio code, la primera parte consiste en instalar las Herramientas necesarias para manejar las placas STM32.

  1. Instalar la extensión de Platformio para Visual studio code
    Instalación extensión Platformio
  2. Instalar herramientas de desarrollo para las placas STM32
    Instalación plataforma STM32
  3. Crear un nuevo proyecto, seleccionando en board: STM32F103C8 (20k RAM. 64k Flash) (Generic) y FlameWork: Arduino.
    Configuración nuevo proyecto
  4. En el archivo platformio.ini .

    upload_protocol = stlink
    
    debug_tool = stlink
    
    platformio.ini

La tarjeta desarrollo cuenta con un led conectado al pin PC13, en la siguiente imagen se puede observar el diagrama de entradas y salidas de la tarjeta.

Pinout tarjeta de desarrollo

Código:

#include <Arduino.h>
void setup()
{
  pinMode(PC13, OUTPUT);
}
void loop()
{
  digitalWrite(PC13, HIGH);
  delay(1000);
  digitalWrite(PC13, LOW);
  delay(1000);
}

Subiendo el código

Conectamos la tarjeta con el programador ST-LINK V2, y con el botón de upload de platformio subimos el programa a la tarjeta.

Programación STM32F101C8T6

Referencias

Código