STM32 Arduino IDE

Para usar o Arduino IDE para programar o STM32, é necessário configurar o IDE para instalar o software para a placa, e pelo menos um dispositivo (hardware) para enviar o programa.

 

Software

A instalação do software só precisa de ser efectuada uma vez, e é composto por dois passos; no primeiro configura-se a um novo endereço de origem para gestores de placas adicionais, no segundo instala-se o software necessário para a placa.

Existem vários pacotes de software para programar o stm32 no Arduino IDE.

Pelo que percebi existem três, todos eles com o mesmo nome stm32duino e representados aqui pelos endereços de instalação :

  • https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
  • http://dan.drown.org/stm32duino/package_STM32duino_index.json
  • https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

Cada pacote tem as suas características, e nada garante que programas feitos para um pacote compile noutro pacote.

Hardware

Pelo que percebi existem pelo menos 2 formas de enviar os programas para o STM32F, conhecido por blue pill:

  • Com um interface USB para Serial FTDI232;
  • Com um interface ST-Link (v2);

Em ambos os casos deve-se usar cabos usb curtos, muito curtos. No meu caso experimentei vários cabos e nenhum funcionava bem.

Ao principio, com o Serial FTDI232 pensava até que um dos componentes não estava bem. Mas depois lá descobri um cabo relativamente curto que trabalhava de forma intermitente.

Acabei por fazer o meu próprio cabo. Curto qb. Deixei de ter problemas de upload dos programas com o Serial FTDI232. O problema acontece com  também ST-Link, também com a mesma solução.

Procedimentos para instalar o software no Arduino IDE.

No IDE clicar em File/Preferences; clicar no botão á direita de “Additional Boards Manager URLs”, e adicionar uma nova linha com o endereço para o novo gestor de placas (basta uma das duas):

  • https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
  • http://dan.drown.org/stm32duino/package_STM32duino_index.json

Após guardar , clicar em:Tools/Board/Board Manager, no tipo, selecionar “Contributed” e instalar “STM32 Core by STMicroelectronics”, para a primeira opção, e outra coisa semelhante para a segunda opção.

Existe também instruções semelhantes para a outra plataforam em:

https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

Até ao momento não percebi qual as vantagens de cada uma.

Enviar programas para o STM32F com um interface ST-Link

Para enviar os programas com o ST-Link é necessário instalar o driver (e o programador) para o ST-Link, que pelo que percebi vêm no mesmo ficheiro de instalação (en.stsw-link004.zip), disponível no seguinte endereço:

https://www.st.com/en/development-tools/stsw-link004.html

Ligações do ST-Link com o STM32

Para usar o ST-Link não pode existir outra alimentação do stm32 que não seja a que provem do ST-link.

O ST-link não permite aceder á porta serie, pelo que para obter outputs tem sempre que se usar uma interface Serial FTDI232.

Procedimentos de envio dos programas para o STM32 com o ST-Link

Para além de selecionar a placa, e as opções corretas para a placa não existe nenhum procedimento especial para além de clicar no botão no Arduino IDE.

Enviar programas para o STM32F com um interface USB para Serial FTDI232

Existem vários modelos de interface USB para Serial FTDI232, mas como o propósito é efectuar a ligação série, pelo que existem pelo menos três ligações obrigatórias:

FTDI pinos STM32

  • rx > A9
  • tx > A10
  • gnd > G
  • vcc > 3.5  (opcional, caso queiramos alimentar o micro-controlador)

Software de envio dos programas com o FTDI232

No caso de se usar a framework da ST (arduino core), então para enviar por Serial FTDI, é necessário instalar um programa para fazer o upload, que está disponível no seguinte link:

https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stm32cubeprog.html

Procedimentos de envio dos programas para o STM32 com o FTDI

Para programar, colocar o jumper boot0 para o lado do 1, e pressionar o botão reset;

Para reprogramar voltar a pressionar o botão reset;

Para passar ao modo de execução do programa, colocar o jumper boot0 para o lado do 0, e pressionar o botão reset;

 

Videos sobre enviar programas para o STM32F com FTDI232

 

STM32 Arduino IDE and FTDI232 (model 1)

STM32 Arduino IDE and FTDI232 (model 2)

 

 

Failed to read ACK byte stm32flash 0.4

 

Pinos STM32

Led interno: PC13

 

Referências

How to program a STM32 “Blue Pill” with Arduino

https://www.onetransistor.eu/2017/11/stm32-bluepill-arduino-ide.html

https://circuitdigest.com/microcontroller-projects/getting-started-with-stm32-development-board-stm32f103c8-using-arduino-ide

STM32 com IDE Arduino: Primeiros Passos

https://github.com/BLavery/STM32F103-Arduino