Como gravar um binário (.s19 / .srec) no STM8 usando o STVP (Windows)


Introdução

Para gravar suas placas com o binário gerado pela IDE (.s19 com o COSMIC ou .srec com o IAR), vamos usar o ST-LINK. Ele é o gravador presente em placas como a STM8SVLDISCOVERY, ou a STM8S-DISCOVERY, ou até mesmo no gravador ST-LINK/V2. E vamos usar também o software programador chamado ST Visual Programmer (STVP). Esse roteiro funciona somente para máquinas Windows. Se você usa Linux, siga esse artigo.

Conexões

Se estiver usando as placas Discovery, será necessário dessoldar os resistores de 0R (curto) em sinalizados como SB2 e SB1 na placa:


Feito isso, é necessário conectar os 4 fios do gravador da barra de pinos CN7 na placa com o STM8 que se quer gravar, são eles:


1. VDD - Alimentação
2. SWIM - Pino de dados
3. GND - Terra ou referência
4. RESET - Pino de reset do MCU

Pegando os arquivos binários

No COSMIC

O arquivo binário gerado pelo código desenvolvido na IDE STVD com o compilador COSMIC (roteiro de instalação aqui) é um arquivo de extenção .s19, e fica localizado na pasta \Debug dentro da pasta do projeto e é criado após o projeto ser compilado sem erros.

No IAR

Já o arquivo binário gerado pelo código desenvolvido na IDE IAR / EWSTM8 (roteiro de instalação aqui) é um arquivo de extenção .srec, e fica localizado na pasta \Debug\Exe dentro da pasta do projeto e é criado após o projeto ser compilado sem erros.

OBS: Se não estiver lá, é necessário abrir o IAR, ir no cabeçalho em Project >> Options..., ir na categoria Output Converter, dar um check em Generate additional output, e escolher o formato Motorola (.srec).

Usando o ST Visual Programmer (STVP)

Para gravar os arquivos binários vamos usar um software programador ST Visual Programmer (STVP). Para instalação dele, siga os passos 2 e 3 desse roteiro de instalação do STVD, já que o STVP é instalado junto com ele.

Configuração e escolhendo o STM8

Com o programa instalado, abra o STVP. Vá em Configure >> Configure ST Visual Programmer, e escolha o gravador ST-LINK, o Programming mode SWIM e o microcontrolador a ser gravado:



Abrindo o binário

Vá em File >> Open… e navegue até o diretório onde tem o binário salvo. Altere o Tipo de arquivo na busca para All Files (“.”) e selecione o arquivo:



Gravando o STM8

Então, com a placa conectada, vá em Program e escolha:
  • Current Tab: se quiser programar a Tab ativa. Se estiver na PROGRAM MEMORY, vai programar somente a memória de programa do MCU com o binário escolhido (forma mais simples e rápida)
  • All Tabs: Programar todas as tabs, ou seja o programa na PROGRAM MEMORY, algum dado de usuário na DATA MEMORY (se tiver) e as configurações de Option Bytes em OPTION BYTE (como por exemplo o ROP que protege a memória contra leitura).
E pronto!


[EXTRA] Protegendo a memória do STM8 contra leitura

Para proteger a memória do STM8 contra leitura, é necessário mexer no option byte ROP (read-out protection). Se ele for ligado, não será mais possível ler a memória do MCU até que esse option byte seja desligado, o que fará com que a memória do MCU seja apagada totalmente, impedindo que qualquer um tenha acesso ao código que estava gravado. Para fazer isso:
  • Vá na aba/tab OPTION BYTE e coloque o ROP em ON:

  • Vá em Program >> Current Tab para programar somente a aba de OPTION BYTE, e escolha o Sim no aviso.


  • Agora o MCU está protegido contra leitura. Se tentar ler, vai ver um aviso que a proteção está ativa.


Para desproteger a memória e poder voltar a gravar o MCU:
  • Vá na aba/tab OPTION BYTE e coloque o ROP em OFF
  • Vá em Program >> Current Tab para programar somente a aba de OPTION BYTE
  • Assim que concluir, o microcontrolador estará com a memória apagada, desprotegida e pronto para ser gravado de novo

Para mais informações, consulte a documentação do STVP.


Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License. 

Comentários