Programando a Bluepill via USB com Bootloader Arduino

Programando a Bluepill via USB com Bootloader Arduino 1

Em um post anterior, mostrei como fazer a programação de uma placa Bluepill com um gravador Stlink genérico. Neste post, irei mostrar como gravar um bootloader Arduino na placa Bluepill para que ela possa ser gravada através do conector micro USB, facilitando o processo de gravação de novos programas. A partir daí, não precisaremos mais do gravador SWD USB.

Material necessário

Projeto STM32duino

O projeto STM32duino tem por objetivo proporcionar a programação de placas baseadas nos processadores da ST Microelectronics, utilizando o framework Arduino. Isso facilita bastante para iniciantes que já estão acostumados com Arduino iniciarem uma migração e experimentarem outros microcontroladores.

Conexão SWD USB com Bluepill

Para gravar o bootloader Arduino em uma placa “zerada” ainda é necessário utilizar o gravador SWD USB. Realize a conexão entre o gravador SWD USB STlink e Bluepill da seguinte forma:

Programando a Bluepill via USB com Bootloader Arduino

Gravando o bootloader com STM32CubeProg

O STM32CubeProg é um programa para gravação de arquivos binários nas placas baseadas em microcontroladores da ST Microelectronics. É o caso da BluePill, que possui o microcontrolador STM32F103.

Para baixar o STM32CubeProg, vá até o site da ST e baixe o programa para seu sistema operacional Linux ou Windows. É necessário criar uma conta no site da ST para realizar downloads.

Programando a Bluepill via USB com Bootloader ArduinoProgramando a Bluepill via USB com Bootloader Arduino

Baixe também o binário do bootloader Arduino.

Após baixado o bootloader, abra o programa STM32CubeProg e clique em “open file”, para abrir o arquivo do bootloader.

Programando a Bluepill via USB com Bootloader ArduinoO programa deve mostrar vários endereços de memória do binário.

Programando a Bluepill via USB com Bootloader Arduino

Agora conecte ao computador o gravador SWD USB já interligado com a bluepill. Clique em conectar e verifique se a conexão é identificada no STM32CubeProg.

Programando a Bluepill via USB com Bootloader ArduinoEntre no menu Erasing & Programming e clique em “Start Programming” para carregar o binário na BluePill.

Programando a Bluepill via USB com Bootloader ArduinoProgramando a Bluepill via USB com Bootloader Arduino

Pronto! Agora sua placa já está capacitada para ser programada via USB pela IDE Arduino.

Se conectarmos a placa BluePill via micro USB em um sistema Linux, podemos ver a seguinte mensagem no terminal utilizando o comando dmsg.

Programando a Bluepill via USB com Bootloader Arduino

Gravando um programa pisca LED pela IDE Arduino e porta USB

Caso sua IDE Arduino ainda não esteja configurada com os pacotes para STM32, siga os passos para adicionar suporte para placas STM32.

Copie esta URL nas preferências da sua IDE Arduino. Vá em Arquivos -> preferências -> URLs adicionais para gerenciador de placas.

Programando a Bluepill via USB com Bootloader Arduino

Clique em OK e então vá para o menu do gerenciador de placas para instalar o pacote STM32.

Programando a Bluepill via USB com Bootloader Arduino

No menu Gerenciador de Placas, escolha as opções de acordo com a imagem abaixo.

Programando a Bluepill via USB com Bootloader Arduino

Copie o seguinte código no editor da IDE Arduino que faz piscar o LED presente na Bluepill no pino PC13.

void setup() {
  pinMode(PC13, OUTPUT);
}

void loop() {
  digitalWrite(PC13, HIGH);
  delay(1000);
  digitalWrite(PC13, LOW);
  delay(1000);
}

Agora só resta gravar a placa!

Habilitando a porta serial

Caso a placa não grave automaticamente, será necessário pressionar o botão reset e soltar quando a gravação estiver para iniciar. Para gravar automaticamente, veja os passos abaixo para habilitar a serial via USB.

Ainda é possível utilizar a porta micro USB como serial para enviar e receber mensagens do computador.

Para habilitar, selecione no menu Ferramentas a opção USB Support e USART Support como na imagem abaixo.

Grave um programa que escreve na porta serial e veja a saída no Monitor Serial da IDE.

Programando a Bluepill via USB com Bootloader Arduino

Conclusão

Neste tutorial, aprendemos como gravar um bootloader Arduino na placa BluePill que possui um microcontrolador STM32F103. Com o bootloader, é possível gravar a placa via USB possibilitando o uso fácil através da IDE Arduino, não sendo mais necessário o gravador SWD.

Coloque nos comentários o que você achou deste tutorial, suas dúvidas e sugestões.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Um Comentário

  1. Excelente artigo Giovanni, isso dá uma produtividade muito boa, será que esse bootloader funciona na blackpill também?