Programação da placa STM32F103C8 usando a porta USB

Tempo de leitura: 7 minutes

A placa de desenvolvimento STM32 que abriga o microcontrolador STM32F103C8 está se tornando cada vez mais popular graças à sua arquitetura ARM Cortex M3, tem alta velocidade operacional e mais opções de periféricos. Além disso, esta placa pode ser facilmente programada usando o IDE do Arduino, ela se tornou a escolha preferível para muitos amadores e engenheiros para uma prototipagem rápida.

Em nosso tutorial anterior, aprendemos os fundamentos da placa de desenvolvimento STM32 e também a programamos para piscar um LED. Mas havia uma grande desvantagem nisso. Para programar a placa, utilizamos um módulo de programador FTDI e também tivemos que alternar o jumper de inicialização 0 entre e 1 posição durante o upload e teste de um código, o que é certamente uma tarefa difícil. Além disso, a porta mini-USB na placa de desenvolvimento foi deixada totalmente sem uso. A razão para fazer isso é que, quando a placa de desenvolvimento STM32 é adquirida, ela não vem com um carregador de boot pronto para o Arduino e, portanto, a placa não será descoberta pelo seu computador quando conectada através do USB.

 

Materiais requisitados

  • STM32 – (BluePill) Placa de Desenvolvimento (STM32F103C8)
  • Programador FTDI
  • ProtoBoard
  • Fios de conexão
  • Laptop com Internet

 

Diagrama de circuito

Para programar a placa STM32 Blue Pill diretamente através da porta USB, precisamos primeiro fazer o flash do carregador de inicialização Maple no MCU. Para fazer isso, precisamos usar uma placa Serial FTDI. Esta placa é conectada aos pinos Rx e Tx do STM32 conforme mostrado abaixo.

O pino Vcc da placa FTDI é conectado ao pino STM32 5V de alimentação da placa. O aterramento é conectado ao aterramento do STM32. Os pinos Rx e Tx da placa FTDI são conectados aos pinos A9 e A10 do STM32, respectivamente. Onde o A9 é o pino Tx do STM32 MCU e o A10 é o pino Rx.

Certifique-se de que o pino do jumper de inicialização 0 na placa esteja definido como 1 (modo de programação) ao carregar o carregador de inicialização. Assim que o carregador de boot é ativado, este pino pode ser alterado de volta para a posição inicial (modo de operação).

 

Carregando o carregador de inicialização Maple para a placa de desenvolvimento STM32

Depois de fazer a conexão acima, conecte a placa FTDI ao seu computador e siga as etapas para fazer o flash do carregador de boot no STM32.

Etapa 1: Temos que baixar os binários do arquivo de programa do carregador de boot (arquivo bin) da página github. Existem muitas versões do arquivo bin, para a placa Blue Pill use este link do github e clique no botão de download para baixar o arquivo bin.

Etapa 2: Em seguida, temos que baixar e instalar o software STM32 Flash loader demostrator para fazer o flash do arquivo bin baixado no STM32. Clique neste link para entrar no site da ST, vá até a parte inferior e clique em obter software

Etapa 3: Para baixar o software, você deve inserir seu endereço de e-mail e o link de download será enviado para seu e-mail. Em seguida, siga o link para o site e clique em obter software novamente e o download começará. Sim, é um pouco frustrante, mas é assim que deve ser feito. Não se esqueça de verificar sua pasta de spam em busca do e-mail, às vezes leva alguns minutos para o e-mail chegar.

Etapa 4: Depois de fazer o download, instale o software, certifique-se de que a placa STM32 esteja conectada ao computador por meio da placa FTDI e, em seguida, inicie o software. O software detectará automaticamente a porta COM se não usar o gerenciador de dispositivos e certifique-se de selecionar o número da porta COM correto. No meu caso, é COM4. Deixe o resto da configuração como é mostrado abaixo.

Etapa 5: Clique no botão Avançar duas vezes e o software detectará novamente automaticamente os detalhes da placa e exibirá conforme mostrado abaixo. A placa que estamos usando é a STM32F1 com memória flash de 128K.

Etapa 6: na próxima etapa, selecione Baixar para o dispositivo e navegue até o local onde baixamos nosso arquivo bin na etapa 1 e selecione-o. Clique em Avançar.

Etapa 7: O software fará o download de alguns arquivos necessários conforme mostrado abaixo e, em seguida, iniciará o processo de atualização.

Etapa 8: Assim que o flashing for concluído com sucesso, obteremos a tela abaixo. Clique em fechar e saia do aplicativo. Atualizamos a placa STM32 com o carregador de boot Arduino com sucesso. Agora temos que preparar o IDE do Arduino e instalar os drivers antes de programar a placa STM32.

 

 

Preparando o IDE do Arduino e instalando os drivers

Siga as etapas abaixo para baixar e preparar o Arduino IDE para ser usado com a placa de desenvolvimento STM 32.

Etapa 1: – Se você ainda não instalou o IDE Arduino, faça o download e instale-o deste link. Certifique-se de selecionar o sistema operacional correto.

Etapa 2: – Após instalar o IDE do Arduino, abra e baixe os pacotes necessários para a placa STM32. Isso pode ser feito selecionando Arquivo -> Preferências.

Etapa 3: – Clicar em Preferências abrirá a caixa de diálogo mostrada abaixo. Na caixa de texto adicional do URL do Boards Manager, cole o link abaixo

http://dan.drown.org/stm32duino/package_STM32duino_index.json

e pressione OK.

Etapa 4: – Agora vá para Ferramentas -> Placas -> Gerenciador de Placa. Isso abrirá a caixa de diálogo do gerenciador de placas, procure por “STM32F1” e instale o pacote que aparece.

Etapa 5: após a instalação do pacote, navegue até C:\Arquivos de programas (x86)\Arduino\hardware\Arduino_STM32-master\drivers\win onde você encontrará install_drivers.bat e install_STM_COM_drivers.bat.

Etapa 6: Clique nos arquivos bat e instale os drivers. Você obterá uma tela do DOS conforme mostrado abaixo.

Agora o IDE do Arduino está preparado para programar a placa de desenvolvimento STM32 (Blue Pill) e os drivers também estão instalados.

 

 

Programando STM32 (comprimido azul) diretamente pela porta USB

Remova a placa FTDI e todas as conexões existentes de seu STM32. Basta usar a porta micro-USB na placa STM32 para conectá-la ao computador conforme mostrado abaixo. Certifique-se de que o pino do jumper 0 esteja posicionado novamente em 0 (modo operacional). Doravante, não precisamos mais alternar o jumper para carregar e executar os programas.

Seu computador deve ser capaz de descobrir a placa agora. Aguarde um pouco se você vir qualquer driver adicional sendo instalado. Em seguida, entre no gerenciador de dispositivos e verifique se sua placa STM32 foi descoberta na seção COM e porta conforme mostrado abaixo. O meu está conectado ao COM8 com o nome Maple Mini.

Vá para Ferramentas e role para baixo para encontrar a série STM32F103C Genérica conforme mostrado abaixo. Em seguida, certifique-se de que a variante é do tipo Flash de 64k, a velocidade da CPU é 72MHz e mude o método de upload para STM32duino Bootloader. Selecione também a porta COM correta de acordo com a do gerenciador de dispositivos.

Depois que todas as alterações forem feitas, verifique o canto inferior direito do IDE do Arduino e você deve observar a configuração a seguir. Minha placa STM32 está conectada a COM8, mas a sua pode ser diferente

Agora, o IDE Arduino está pronto para programar as placas de desenvolvimento STM 32 Blue Pill. Vamos fazer o upload do Programa Blink de amostra do IDE Arduino para a placa STM32 Blue Pill para ter certeza de que tudo está funcionando corretamente. O programa de exemplo pode ser encontrado em

No programa de exemplo que é aberto, temos que fazer uma pequena alteração. Por padrão, o programa será escrito para PB1, mas em nossa placa o LED integrado está conectado ao PC13, portanto, substitua todos os PB1 por PC13 e podemos prosseguir. O programa de exemplo completo modificado também pode ser encontrado no final desta página.

O código dentro da função de loop sozinho é mostrado abaixo, onde podemos notar que o pino PC13 é mantido HIGH (on) por 1000 milissegundos e então desligado (LOW) por mais 1000 milissegundos e isso é feito por infinitas vezes, uma vez que está em função de loop. Portanto, o LED parece estar piscando com um intervalo de 1000 milissegundos.

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

Pressione o botão de upload no IDE do Arduino e seu programa deve ser compilado e carregado. Se tudo funcionou conforme o esperado, você deverá ver o seguinte no console do Arduino IDE.

Se o programa foi carregado com sucesso, você deve ver o LED verde piscando em um intervalo de 1 segundo, conforme mostrado no vídeo abaixo. Você também pode mexer no programa para aumentar ou diminuir o atraso. Agora você pode começar a usar a placa de desenvolvimento STM32 (Blue Pill) como qualquer outra placa Arduino, ou seja, você não precisa mais alterar a posição dos jumpers ou usar hardware externo para fazer upload e testar programas.

Espero que você tenha entendido o tutorial e considerado útil para começar a usar a placa STM32. Se você tiver qualquer problema, deixe-os na seção de comentários, diga-me também quais projetos devemos tentar com esta placa STM32 no futuro.