Pesquisar

Como Programar o STM32 BLUE PILL pelo Arduino IDE

Neste post iremos mostrar como utilizar e programar o STM32 Blue Pill com a IDE do Arduino. Para comprar esse produto em nossa loja, clique aqui.

Sumário

Informações gerais

  • O STM32 é uma placa de prototipagem eletrônica;
  • Ótima opção para aqueles que desejam uma via alternativa às placas Arduino;
  • O dispositivo apresenta um processador de 32 bits com arquitetura Cortex-M3 ARM;
  • Mais potente que as placas arduino;
  • Apresenta maior quantidade de portas analógicas;
  • Valor competitivo;
  • Interface de programação menos conhecida.

Especificações técnicas

  • CI: STM32F103C8T6;
  • Núcleo: ARM 32 Cortex-M3;
  • Modo de Depuração: SWD;
  • Frequência Máxima de Trabalho: 72MHz;
  • Tamanho da Memória de Programa: 64kB;
  • Tamanho RAM dos dados: 20kB;
  • Resolução ADC: 12bit;
  • Temperatura Operacional: -40ºC a +85ºC;
  • Tensão de Operação: 2VDC a 3.6VDC;
  • Interfaces: CAN, I2C, SPI, USART, USB;
  • Número de Canais ADC: 10;
  • Número de temporizadores/contadores: 3 Timers;
  • Dimensões: 53 x 22mm.

Comparação entre a placa Arduino e o STM32

Observe a tabela apresentada abaixo, onde foi montado uma breve comparação entre alguns dos modelos mais tradicionais de placas Arduino e os sistemas operacionais de um STM32:

Tabela de comparação entre placas de prototipagem eletrônica tradicionais

Diagrama de pinagem

Diagrama de pinagem do STM32

Como conectar o projeto

Para  realizar a programação desta placa, precisamos usar um módulo FTDI conversor USB para UART, e então podemos programá-lo diretamente via USB de um computador. Acompanhe o esquema das conexões:

Diagrama de conexão

Conexão dos pinos (STM32 ➞ FTDI)

  1. GND ➞ GND;
  2. VCC ➞ 5V;
  3. TXO ➞ A10;
  4. RXI ➞ A9.

Conexão dos Jumpers

Atente-se à conexão dos jumpers conforme mostrado abaixo para definir a placa no modo DFU (atualização do firmware do dispositivo). Para definir, pressione o botão Reset e aguarde.

Configuração dos jumpers (modo DFU)
Configuração dos jumpers (modo Normal)


Configurando o STM32 na IDE do Arduino

Instalação do Arduino IDE

O primeiro passo para começar a usar o STM32 com o ambiente de programação do Arduino é instalar o programa no computador. Caso já tenha a IDE do Arduino Instalada, pule para o próximo tópico.

  1. Vá até o site oficial de download da IDE do Arduino clicando aqui;
  2. Escolha o seu sistema operacional como mostrado na imagem abaixo e clique para efetuar o download;
  1. Clique em “Just Download” ;
  2. Após o arquivo ter baixado para o seu computador, efetue a instalação do programa. Caso tenha dificuldades, veja o vídeo abaixo.

Instalação dos Drivers

  1. Abra a IDE do Arduino, entre em Arquivos e vá até a opção Preferências:
Janela da ferramenta Arquivo
  1. Clique no ícone a direita de URLs Adicionais para Gerenciadores de Placas:
Janela de Preferências
  1. Adicione a seguinte URL e clique em OKhttp://dan.drown.org/stm32duino/package_STM32duino_index.json
Janela de adição de URLs
  1. Em seguida, vá em Ferramentas ➞ Placa➞ Gerenciador de Placas:
Janela de Ferramentas
  1. Na barra de pesquisa coloque STM32, quando surgir “STM32F1xx/GD32F1xx boards“,  clique em Instalar e aguarde o download.
Janela do Gerenciador de Placas
  1. Agora você pode ver o STM32 na lista de placas. Selecione “Generic STM32F103C series“.
Janela de escolha da placa STM32F103C
  1. Como será utilizado um módulo UART para realizar upload do código, deve-se selecionar o método de upload como serial. Para isso, vá novamente em Ferramentas ➞ Upload method ➞ Serial:
Janela da escolha do Modo de Upload
  1. Nesse momento o ambiente da IDE está pronto para ser utilizado. Para testar o seu funcionamento, podemos utilizar um programa exemplo “BLINK” do próprio Arduino, modificando apenas o pino do LED que no STM32 está no pino PC13.
				
					// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin PB1 as an output.
  pinMode(PC13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
				
			
  1. Copie o código, carregue ele no STM32 e veja o LED verde piscar em intervalos de 1 segundo.

Atenção: Depois de carregar o programa, você deve alterar os jumpers de volta para o modo Normal para que, na próxima vez que você iniciar a placa, o programa carregado comece a ser executado automaticamente.

Conclusão

Apesar de possuir especificações melhores que as do Arduino, o STM32 muitas vezes deixa de ser utilizado por conta da dificuldade de programação. Porém, através da interface Arduino IDE se torna uma tarefa simples programar o stm32, de forma a utilizar o melhor dos dois mundos com suas especificações avançadas e a interface acessível do Arduino IDE.