Introdução ao STM32CubeProgrammer

STM32CubeProgrammer é a ferramenta de desenvolvimento atual, gratuita e multiplataforma da STMicroelectronics para ler, apagar, programar e verificar memórias STM32. Suporta ST-LINK por SWD/JTAG e, quando implementado pelo bootloader do dispositivo, UART, USB DFU, I²C, SPI ou CAN.

Use o manual atual e a documentação da peça exata: interfaces, pinos de boot, mapa de memória, option bytes e segurança variam conforme o STM32 e a versão.

Interface do usuário do STM32CubeProgrammer

O STM32CubeProgrammer oferece interfaces gráficas e de linha de comando. Além disso, também oferece uma API C++, e os usuários podem integrar as funções do STM32CubeProgrammer nos aplicativos para PC que desenvolvem.

Overview of STM32CubeProgrammer
Overview of STM32CubeProgrammer

Conforme mostrado na figura acima, na área de configuração à direita, os usuários podem optar por se conectar ao microcontrolador STM32 através da interface de depuração STLink ou interfaces de comunicação como USB e UART. Após conectar-se ao microcontrolador STM32, você pode ver o modelo atual do MCU, a versão e o tamanho do Flash na área "Informações do dispositivo". Se uma placa de desenvolvimento ST oficial estiver conectada, o nome da placa de desenvolvimento também será exibido.

Funções do STM32CubeProgrammer

O STM32CubeProgrammer suporta a exclusão e leitura/gravação da memória integrada dos MCUs STM32 através da interface de depuração SWD/JTAG do STLink ou através de interfaces de comunicação como UART, USB, I2C, SPI e CAN, utilizando o bootloader do sistema programado de fábrica armazenado dentro do chip.

Aqui estão as principais funções do STM32CubeProgrammer:

Apagando e programando

O STM32CubeProgrammer suporta o apagamento por setor e o apagamento completo do chip da memória Flash. Ele pode importar vários formatos de arquivo para programação, incluindo arquivos binários (.bin), elf (.elf, .axf, .out), hexadecimais (.hex) e Motorola S-record (.srec).

Erasing and Programming of STM32CubeProgrammer
Erasing and Programming of STM32CubeProgrammer

Operação de apagamento

Depois de estabelecer uma conexão com o MCU de destino através do STLink, você pode apagar setores Flash na página "Apagando e Programando" por setor ou realizar um apagamento completo do chip selecionando o botão "Apagar chip completo".

Operação de programação

Na página "Apagar e programar", você pode clicar no botão "Procurar" para importar um arquivo executável e, em seguida, clicar em "Iniciar programação" para iniciar o processo de programação.

Como alternativa, na página "Memória e edição de arquivos", você pode abrir o arquivo executável que deseja programar e clicar em "Download" para iniciar a programação.

Na página "Memória e edição de arquivos", em "Memória do dispositivo", você também pode ler os valores da memória do MCU em um intervalo de endereços especificado e salvar o conteúdo lido como arquivos binários (.bin), hexadecimais (.hex) ou S-record (.srec) usando o menu "Salvar como".

Além de programar o arquivo executável inteiro, você pode modificar diretamente o valor em um endereço específico na página "Memory & File Edition" (Edição de memória e arquivo) em "Device Memory" (Memória do dispositivo). Após pressionar "Enter", o STM32CubeProg irá automaticamente ler, modificar, apagar e gravar novamente. Este método pode ser usado para programar bytes programáveis uma única vez (OTP).

Byte de opção Leitura/Gravação

Na página OB (Byte de Opção), você pode visualizar as configurações atuais dos bytes de opção para o MCU conectado. Você também pode modificar os valores dos bytes de opção aqui. Para obter explicações detalhadas sobre os bytes de opção, consulte o manual de referência do MCU específico.

Option bytes Reading and Writing of STM32CubeProgrammer
Option bytes Reading and Writing of STM32CubeProgrammer

Programação "Dois em Um"

Usando o modo de programação "Dois em Um" na página "Apagando e Programando", você pode programar tanto a memória FLASH quanto os bytes opcionais em uma única operação. A configuração dos bytes opcionais é feita usando a "linha de comando STM32CubeProgrammer" com o comando "-ob". Por exemplo, para definir a proteção contra leitura no nível 1 após programar a FLASH, siga estas etapas:

  • Defina o caminho para o arquivo executável a ser baixado.
  • Marque "Full chip erase" (Apagar chip completo) e "Download file" (Baixar arquivo) em "Automatic Mode" (Modo automático).
  • Na caixa de entrada "Comandos de bytes de opção", digite "-ob rdp=0xBB".
  • Clique em "Iniciar modo automático" e o STM32CubeProgrammer executará as operações especificadas em sequência, exibindo o progresso na janela de log.
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer

Para obter detalhes sobre o formato do comando "-ob", consulte a seção 3.2.15 do UM2237 (Manual do Usuário da Ferramenta de Software STM32CubeProgrammer). As definições do campo OptByte no comando "-ob" não são explicadas no UM2237, mas você pode encontrá-las inspecionando a guia "Option bytes" na interface gráfica do STM32CubeProgrammer, pois as definições no comando "-ob" correspondem às encontradas aqui. Como alternativa, você pode usar o comando "-ob displ" para exibir a configuração atual de todos os bytes de opção, permitindo que você entenda as definições de cada campo OptByte.

Leitura/gravação de memória externa

Se você deseja ler/gravar em uma memória externa conectada ao STM32 por meio de interfaces como SPI, FMC, QSPI, será necessário um carregador externo. O CubeProgrammer fornece carregadores externos padrão correspondentes à memória externa integrada às placas de desenvolvimento STM32. Se você estiver usando um modelo de memória diferente, poderá criar seus próprios arquivos de carregador externo (*.stldr). Consulte a seção 2.3.3 do UM2237 para obter instruções detalhadas.

External Memory Programming of STM32CubeProgrammer
External Memory Programming of STM32CubeProgrammer

Antes de realizar operações na memória externa, você deve selecionar o carregador externo correspondente na página "Carregador externo". Esse carregador externo será usado nas operações subsequentes de apagamento e programação na memória externa nas páginas "Apagamento e programação" e "Edição de memória e arquivo".

Carregador de inicialização

Muitos STM32 contêm bootloader de fábrica na memória do sistema. Periférico, pinos, padrão de boot e relógio são específicos do dispositivo e devem ser conferidos na AN2606. ST-LINK não é necessário para essa conexão e sua geração V2/V3 não define a interface do bootloader do MCU.

Bootloader of STM32CubeProgrammer
Bootloader of STM32CubeProgrammer

Há dois caminhos distintos: sonda de debug por SWD/JTAG ou bootloader da memória de sistema por uma interface suportada pela peça exata. Não deduza UART/USB/I²C/SPI/CAN da versão do ST-LINK; consulte AN2606 antes da ligação.

Janela de entrada de informações SWO

Durante o desenvolvimento, muitas vezes é necessário gerar informações de depuração. Um método comum é redirecionar a saída printf para uma porta serial, o que consome uma porta serial. Outro método é redirecionar a saída printf para o pino SWO (Serial Wire Output) através da interface de depuração SWD, permitindo que as informações de depuração sejam enviadas através do SWO. A janela SWV (Serial Wire Viewer) do STM32CubeProgrammer pode exibir informações de depuração enviadas através do SWO e salvar todas as informações recebidas em um arquivo ".log" especificado.

Serial Wire Viewer of STM32CubeProgrammer
Serial Wire Viewer of STM32CubeProgrammer

Interface de linha de comando

O STM32CubeProgrammer fornece uma interface de linha de comando que permite executar a maioria das suas funções através da execução de comandos. O ficheiro executável "STM32_Programmer_CLI.exe" pode ser encontrado na pasta "bin" do diretório de instalação do STM32CubeProgrammer. Ao executar o "STM32_Programmer_CLI.exe", será exibida uma lista dos comandos suportados e dos seus parâmetros.

Command Writing of STM32CubeProgrammer
Command Writing of STM32CubeProgrammer

A interface de linha de comando também oferece algumas funcionalidades que não estão disponíveis na interface gráfica, como a criação de pacotes confiáveis, programação segura, cálculo de valores CRC e muito mais. Para obter instruções detalhadas, consulte UM2237. O exemplo na figura demonstra a conexão com o chip de destino por meio da interface SWD e a configuração do nível de proteção de leitura 1 usando instruções de linha de comando. O comando completo é "STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB".

Atualização do firmware STLink

Depois de conectar o depurador STLink ao seu computador, abra o STM32CubeProgrammer e atualize a conexão STLink para visualizar a versão atual do firmware STLink. Clique no botão "Atualização do firmware" e abra a ferramenta STLinkUpgrade para atualizar a versão do firmware STLink.

Firmware Upgrade of ST-LINK of STM32CubePorgrammer
Firmware Upgrade of ST-LINK of STM32CubePorgrammer

Como usar o STM32CubeProgrammer?

O STM32CubeProg é uma ferramenta de programação abrangente que inclui operações típicas, como leitura, gravação (download/programação), apagamento e programação de bytes opcionais.

Ambiente de instalação

As versões atuais suportam as versões documentadas de Windows, Linux e macOS. Desde o STM32CubeProgrammer 2.6.0, o pacote inclui a própria JRE; não é preciso instalar Java separadamente. As imagens abaixo usam a versão antiga 2.5.0b.

Conectando chips e STM32CubeProg

Ao usar o STM32CubeProgrammer para conectar-se à placa de destino via STLINK, pode haver casos em que a conexão falhe. Isso pode ser devido a uma versão baixa do firmware dentro do STLINK. Para resolver isso, clique no botão "Atualização do firmware" para realizar uma atualização do firmware. Durante o processo de atualização, pode ser necessário conectar e desconectar várias vezes. Após a conclusão da atualização, desconecte e reconecte uma vez para que o STM32CubeProgrammer reconheça o STLINK.

Programação e depuração de chips

Após concluir a depuração do programa, você precisa programar o chip com seu código. Normalmente, você tem três opções:

  1. Use a interface de depuração JTAG/SWD para programar o chip, o que geralmente requer o software STLink Utility ou STVP.
  2. Programar o chip através da interface UART, usando o software demonstrador STM32 Flash loader no PC.
  3. Programar o chip pela interface USB, utilizando o software USB DfuSe.

Programação com ST-LINK

Programming with ST-LINK _ STM32CubeProgrammer
Programming with ST-LINK _ STM32CubeProgrammer

Programação com UART

Programming with UART_ STM32CubeProgrammer
Programming with UART_ STM32CubeProgrammer

Programação com USB

Programming with USB_ STM32CubeProgrammer
Programming with USB_ STM32CubeProgrammer

Para USB DFU, selecione o modo de memória do sistema exigido pelo MCU exato, use o pacote atual e verifique a enumeração com o driver documentado. Remover ferramentas DFU antigas ou executar STM32Bootloader.bat não é requisito universal.

CLI do STM32CubeProgrammer e verificação controlada

A CLI é útil em desenvolvimento, validação e serviço repetíveis, mas exige entradas controladas e evidências salvas.

  • Registre versão, Device ID exato, interface, hash da imagem, endereço de carga, option bytes e resultado da verificação por leitura. Um BIN bruto não contém endereço de carga.
  • A FAQ e a licença atuais da ST definem STM32CubeProgrammer como ferramenta de desenvolvimento, não de programação de produção. Use solução de produção aprovada na fabricação.

Compartilhar em:

Rolar para cima

Instant Quote

Cotação instantânea