Você já deve ter ouvido falar ou lido sobre usar a STM32 blue pill com Arduino. Essa pequena placa é baseada no microcontrolador STM32F103C8T6 da ST semicondutores, tendo as seguintes especificações:
- 12kBytes de memória de programa (Flash)
- 20kBytes de memória SRAM
- 3 Timers de uso geral
- 2x SPI, 2x I2C
- 3 USART, 1 CAN
- 1 USB
- 37 GPIO
- Conversor analógico-digital: 2x 10 canais
- Operação em 72MHz
- Tensão de alimentação entre 2V e 3,6V
Em termos de consumo e também recursos é um microcontrolador muito superior ao ATMEGA328 do Arduino. Seu preço o torna atraente para substituir diretamente microcontroladores similares, aliado ao fato que ele pode também ser programado via IDE do Arduino.
Como transforma-lo num Arduino?
O procedimento que eu segui veio deste link. Você vai precisar de um conversor USB-serial qualquer, além do software STM32CubeProgrammer, download aqui (tem que fazer um cadastro gratuito). Monte o circuito abaixo.
Antes de abrir o STM32CubeProgrammer, faça o download do binário “generic_boot20_pc13.bin” disponível aqui. Este é o bootloader, código que faz a STM32 blue pill poder ser programada via IDE do Arduino.
Ao Abri o STM32CubeProgrammer selecione “open file” e procure no computador pelo arquivo “generic_boot20_pc13.bin”. Á direita selecione “UART” e clique em “Connect”.
Então clique á direita em “Download” e aguarde a finalização da gravação.
Configurando a IDE do Arduino
Considerando que você já tem o software IDE do Arduino instalado, seguindo este procedimento, execute os passos abaixo. Copie o link disponibilizado abaixo e cole-o em “Arquivo > Preferências > URLs adicionais para Gerenciadores de placas:”
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Vá em “Ferramentas > Placa > Gerenciador de placas” e digite “STM32”, a biblioteca a ser instalada é esta:
É necessário instalar um driver USB, conforme mencionado neste link. Está disponível aqui. O penúltimo passo é configurar as opções da placa conectada, no menu “Ferramentas” conforme imagem abaixo.
As configurações mais importantes são: “Board: Generic STM32F1 series”, “U(S)ART support: enabled” e “Upload method: Maple DFU Bootloader 2.0”.
O último passo para que seja possível gravar códigos na placa é gravar um sketch que use a porta serial, pode ser o sketch abaixo. Descobri sobre isso neste link. Colocar o jumper BOOT1 em 1 e deixar o BOOT0 em 0. Neste momento você já pode remover o conversor USB-serial e conectar um cabo USB diretamente á blue pill.
// constants won't change. Used here to set a pin number:
const int ledPin = PC13;// the number of the LED pin
// Variables will change:
int ledState = LOW; // ledState used to set the LED
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated
// constants won't change:
const long interval = 500; // interval at which to blink (milliseconds)
void setup() {
// set the digital pin as output:
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
}
void loop() {
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the difference
// between the current time and last time you blinked the LED is bigger than
// the interval at which you want to blink the LED.
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
Serial.print("teste");
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}
É necessário fazer isso (gravar um código com a porta serial com o BOOT1 em 1) apenas uma vez. Após executar este procedimento, voltar o jumper BOOT1 para 0.
Finalmente com os dois jumpers da placa sempre em 0, é só escrever código na IDE do Arduino e apertar o botão “-> Carregar”. No gif abaixo estou rodando o famoso sketch “BlinkWithoutDelay”. Note que o nome do pino do LED onboard da blue pill é “PC13”.
Palavras finais
Quer adquirir uma Blue pill STM32F103? compre aqui. Esta placa tem um apelo muito interessante pelo seu alto poder e baixo custo, além de poder ser programada pela IDE do Arduino. No futuro trarei mais artigos sobre a mesma.
Deixe um comentário