- Selecionando as ferramentas de desenvolvimento de hardware e software
- Desenvolvimento STM8S103F3P6
- Programador STM8S103F3P6
- STM8S103F3P6 IDE e compilador
- STM8S com Arduino usando Sduino
- Baixando o software necessário
- Configurando o STVD e o Compilador Cosmic C
- Biblioteca Periférica Padrão para STM8S103F3P6
- Compilando o primeiro programa
- Carregando o código do STVD para a placa de desenvolvimento STM8S usando ST-Link V2
O STM8 é uma série de Microcontroladores de 8 bits da STMicroelectronics que se tornou uma escolha comum de Microcontrolador para desenvolvimento de produtos com custo reduzido. Eu já trabalhei com AVR, PIC e alguns outros microcontroladores ARM Cortex, mas certamente em algumas aplicações, eles se tornam exagerados e aumentam o custo de BOM consideravelmente. Recentemente, depois de demolir alguns produtos chineses baratos, descobri que a maioria deles tinha um microcontrolador STM8 dentro. O IC não é apenas barato, mas também vem com muitos recursos e opções, tornando-o adequado para ser usado em muitas aplicações diferentes. Por exemplo, o STM8S série de controladores (que aprenderemos nesta série de tutoriais) é um controlador de uso geral, mas existem outras séries como o STM8A para projetos automotivos e STM8L para projetos alimentados por bateria de baixa potência que estende a aplicação desses controladores.
Nesta série de tutoriais, aprenderemos como programar os microcontroladores STM8S, mais especificamente o STM8S103F3P6. A razão para começar com este número de peça específico é apenas seu preço para fator de desempenho. Gostar!! basta olhar para ele por apenas 0,25 $ (aprox. 20 rúpias), temos um microcontrolador de 8 bits com oscilador interno de 16 MHz, Flash de 8 kB, ADC de 10 bits, UART, SPI e I2C. Quem não ficaria intrigado? Além disso, o STM8S103F3P6 é amplamente popular e, portanto, como um iniciante, você encontrará suporte suficiente se precisar de ajuda fora dos tutoriais. A partir disso, teremos uma sequência de tutoriais, semelhantes aos Tutoriais de programação PIC, onde aprenderemos como programar este controlador desde um piscar básico até várias interfaces de display e sensor. Você também pode verificar o Tutorial STM32F103C8 e projetos se estiver interessado em microcontroladores STM de 32 bits.
Selecionando as ferramentas de desenvolvimento de hardware e software
Agora que temos o microcontrolador deicida, teremos que selecionar ferramentas de desenvolvimento de hardware e software para começar nosso processo de aprendizagem. Existem muitas opções, aqui eu selecionei aquelas que são de uso gratuito e facilmente acessíveis a todos.
Desenvolvimento STM8S103F3P6
A placa de desenvolvimento oficial para o microcontrolador de 8 bits da ST é chamada de kit STM8 Discovery, mas usaremos outra placa de desenvolvimento de baixo custo que você pode encontrar facilmente com um fornecedor local ou na loja online. A imagem da placa de desenvolvimento STM8S103F3P6 que usaremos neste tutorial é mostrada abaixo.
A placa consiste apenas nos componentes mínimos necessários para iniciar o desenvolvimento. É amigável para protoboard e adequado para aplicações compactas. O diagrama do circuito interno para a placa de desenvolvimento é mostrado abaixo.
Olhando mais de perto, você notará que, além do controlador STM8S103F3p6, temos um botão de reinicialização para reinicializar o controlador. Um LED de alimentação e um LED de teste conectado a PB5 (porta B pino 5) e um regulador de tensão AMS1117 que converte 5 V de uma porta USB em 3,3 V para o controlador. O controlador também pode ser feito para operar em 5 V, se necessário. As diferentes partes do controlador estão marcadas abaixo. Também temos 4 pinos de programador, a saber, 3,3 V, GND, SWIM e NRST, que podem ser usados para programar e depurar facilmente nosso microcontrolador.
Programador STM8S103F3P6
Para programar nosso controlador, usaremos o ST-LINK v2, que é barato e está facilmente disponível online. Existem muitas variantes (metal, plástico, ouro, rosa, placa nua) desta placa ST-LINK v2 e todas têm o mesmo propósito. O meu é mostrado abaixo, mas você pode usar qualquer tipo de programador ST-LINK, a pinagem será diferente, então apenas certifique-se de ler a pinagem na caixa corretamente. Há também o ST-LINK V3 da própria ST-Microelectronics que pode ser usado para depuração séria. Não vamos usar isso por enquanto, pois é um pouco caro, vamos guardá-lo para o futuro.
STM8S103F3P6 IDE e compilador
Selecionar o IDE e o compilador corretos para STM8S103F3P6 é desconcertante, simplesmente porque há muitas opções para escolher. As ferramentas oficiais disponíveis para o Microcontrolador STM8 são mostradas na imagem abaixo.
No lado da configuração, temos o STM8CubeMx, experimentei o software e foi uma completa decepção para mim. Ao contrário do STM32Cube, o STM8Cube não pode gerar código automaticamente. Ele só pode gerar mapeamento de pinos para fins de visualização e pode ser útil se você estiver portando seu código de um controlador para outro. Fora isso, eu não o usaria. Portanto, nesta série de tutoriais, não usaremos isso.
Para o IDE e o compilador, temos muitas opções para escolher. As duas principais opções para IDE são IAR workbench e ST Visual Develop (STVD), ambos os softwares parecem ser dos anos 90, mas depois de algum tempo brincando com eles, descobri que o STVD é uma boa escolha apenas porque é totalmente gratuito. Da mesma forma, para o Compilador, usaremos o Compilador Cosmic C, novamente apenas porque é totalmente gratuito. Outra razão para escolher este IDE e compilador é que, uma vez que nos familiarizemos com o ambiente, deve ser fácil usar qualquer outro microcontrolador de 8 bits da ST sem muito esforço. Veremos como instalar e configurar o STVD com o compilador Cosmic C posteriormente neste artigo.
Para Flashing, usaremos o ST Visual Programmer (STVP), esta ferramenta será instalada automaticamente quando instalarmos o STVD. Ele será integrado no próprio IDE, nos ajudando a programar e depurar rapidamente. O software final será STMStudio, que é um software de monitoramento STM8. O software pode ajudar na depuração em tempo real do STM8 e tem alguns recursos interessantes, como monitorar o valor da variável, desenhar o gráfico, etc. Eu não experimentei o suficiente com este software. E, pelo menos para os primeiros tutoriais, não usaremos este software, pois não precisaremos de grandes requisitos de depuração.
Biblioteca de periféricos padrão STM8S: ST Microelectronics fornece um conjunto de bibliotecas para tornar o desenvolvimento de código mais fácil para os microcontroladores STM8S, esta biblioteca é chamada de “ Biblioteca de periféricos padrão ” ou SPL. A biblioteca é legal, exceto que foi escrita tendo em mente todos os controladores possíveis na família STM8S / A de 8 bits e não apenas o controlador STM8S103F3P6 que iremos usar. Portanto, temos que fazer alguns ajustes aqui e ali para que funcione (que compartilharei mais tarde). Mesmo assim, acredito que vale a pena tentar porque pode tornar o desenvolvimento muito rápido e, portanto, vamos usá-lo em nosso tutorial.
Se você não quiser usar a biblioteca, terá que acessar diretamente os Registros do controlador ou fazer a programação de montagem bare metal. Ambos são divertidos, desde que você tenha tempo para aprender e usá-los. Minha ideia é usar a biblioteca SPL onde quer que funcione bem e também trabalhar no nível de registro e montagem, se necessário. Vamos tentar não reinventar a roda!
STM8S com Arduino usando Sduino
Discutir as opções de software nunca estará completo se eu não mencionar o suporte do IDE do Arduino STM8S. Sim, a mesma placa STM8S103F3P6 pode ser programada diretamente do IDE do Arduino usando Sduino, graças a Michael Mayer. Porém, o projeto ainda está em estágio de desenvolvimento e provavelmente levaria algum tempo e o suporte da comunidade para que o Sduino fornecesse suporte completo à plataforma. No entanto, poucos minutos depois de jogar com o Sduino, comecei a gostar dele e decidi também fazer um artigo separado sobre como programar o microcontrolador STM8S com o Arduino. Vou vincular o artigo aqui quando estiver pronto. Esse artigo discutirá por que e por que não você deve usar o IDE do Arduino para programar seus microcontroladores STM8S.
Portanto, essas são minhas escolhas para Software e Hardware, deixe-me saber na seção de comentários se você acha que algum outro software seria uma escolha melhor e por quê. Eu gostaria de explorar outras opções também.
Baixando o software necessário
Agora que decidimos sobre o software que usaremos neste tutorial, vamos prosseguir e fazer o download deles usando o link a seguir. Todo o software é gratuito para baixar e usar, você só precisa registrar uma conta gratuita no ST e Cosmic se ainda não o fez.
- ST Visual Develop (STVD)
- Cosmic C Compiler
- Biblioteca Periférica Padrão
- STM8Cube Mx (opcional)
- STMStudio para STM8 (opcional)
Configurando o STVD e o Compilador Cosmic C
Após fazer o download de ambos os softwares, basta seguir as instruções na tela para instalá-los. Eu recomendaria deixá-los nos diretórios padrão para evitar confusão posterior. O STVD IDE será instalado sem nenhum esforço. Para o compilador Cosmic C, você deve obter uma chave de licença gratuita durante os processos de instalação. Basta fornecer os dados da empresa com E-mail ID, se for estudante, basta mencionar. Os processos de obtenção da chave de licença são instantâneos e automáticos, embora as instruções de configuração digam que pode demorar um ou dois dias, recebi a chave de licença automaticamente em meu ID de e-mail assim que a enviei, apenas certifique-se de verifique o SPAM. Meu e-mail de confirmação é mostrado abaixo.
De acordo com as instruções do e-mail, apenas copie o arquivo license.lic e cole na subpasta “license” em sua pasta de instalação. Para mim, o caminho era “C: \ Arquivos de programas (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” . Basta colar o arquivo no local mostrado abaixo.
Biblioteca Periférica Padrão para STM8S103F3P6
Como dito anteriormente, a ST Microelectronics fornece bibliotecas chamadas SPL que podem ser usadas para todos os microcontroladores STM8S / A de 8 bits. Você pode baixar o SPL original da ST Microelectronics e fazer as alterações necessárias ou baixar minhas bibliotecas STM8S103F3P6 SPL e usá-las como tal. Eu recomendaria o último.
SPL original da ST Microelectronics
STM8S103F3P6 SPL
Enquanto você estiver lá, certifique-se de fazer o download do Manual do usuário SPL, que será muito útil ao programar o controlador.
Compilando o primeiro programa
Agora que tudo está pronto, vamos tentar compilar nosso primeiro programa para verificar se o IDE, o Compilador e a Biblioteca estão funcionando como deveriam. Você também pode verificar o vídeo na parte inferior da página para obter instruções detalhadas.
Comece abrindo STVD e selecione File -> WorkSpace, no pop-up, selecione “New Workspace” e digite o nome do projeto e o caminho onde o programa deve ser salvo. Estou nomeando meu programa como BareMinimum e salvando-o em uma pasta na área de trabalho. Clique em OK e você obterá a caixa de diálogo New Project conforme mostrado abaixo.
Estou nomeando o projeto como bareminimum novamente e no conjunto de ferramentas temos que especificar a raiz do conjunto de ferramentas para o caminho onde o compilador STM8 Cosmic está instalado. O endereço do caminho padrão é “C: \ Arquivos de programas (x86) COSMIC \ FSE_Compilers \ CXSTM8” . Depois disso, basta clicar em OK para obter a janela “Seleção de MCU”.
Pesquise STM8S103F3P, selecione-o e clique em OK. Isso abrirá um novo projeto para STM8S103F3P no STVD, as janelas devem ficar assim quando terminar.
Clique com o botão direito em “arquivo de origem” e selecione “Adicionar arquivos à pasta” para incluir todos os arquivos c de nossa biblioteca SPL, da mesma forma clique com o botão direito em Incluir arquivos para incluir todos os arquivos de cabeçalho. Se você tiver alguma dúvida, pode consultar o vídeo abaixo. Depois que todos os arquivos forem adicionados, clique em Construir -> reconstruir todos e, em seguida, em Compilar para verificar se o compilador e o SPL estão funcionando conforme o esperado. Se tudo correr bem, você deverá ver a tela a seguir com o resultado da compilação 0 erro e 0 aviso.
Feito isso, agora podemos ter certeza de que todas as nossas bibliotecas SPL estão trabalhando com o compilador Cosmic e STVD. Este é o procedimento padrão que seguiremos para cada novo projeto. Você também pode incluir apenas o cabeçalho e os arquivos de origem necessários para o projeto para reduzir o tempo de construção, se necessário.
Carregando o código do STVD para a placa de desenvolvimento STM8S usando ST-Link V2
Conecte o ST-Link V2 com a placa de desenvolvimento conforme mostrado abaixo.
As conexões são bastante diretas e a melhor parte é que você não precisa de componentes externos. Minha configuração de hardware para programação é mostrada abaixo, eu acabei de usar os fios do conector fêmea para fazer minha conexão. No entanto, observe que a pinagem de seu ST-Link pode ser diferente da minha, certifique-se de seguir a pinagem no dispositivo antes de fazer as conexões.
Faça a conexão e conecte o dispositivo ao seu computador, a instalação do driver deve começar automaticamente. Você pode usar o gerenciador de dispositivos para garantir que seu computador detectou o ST-LINK V2 corretamente. Você também notará o LED de teste na placa piscando se esta for a primeira vez que a placa será ligada. Assim que tivermos compilado com sucesso o código no STVD, obteremos um arquivo de extensão “S19” no diretório de depuração da pasta do projeto. Meu arquivo S19 é mostrado abaixo.
Este S19 é como o arquivo Hex que deve ser carregado no controlador. Para fazer o upload do programa, abra o ST Visual Programmer (STVP), que deve ter sido instalado junto com o STVD. Em seguida, na janela de configuração, selecione conforme mostrado na imagem abaixo e clique em OK.
Em seguida, clique em Arquivo-> Abrir e navegue até o arquivo S19 que mostramos anteriormente. Então, para atualizar o dispositivo, siga Programa -> Guia Atual . Se o flashing foi bem sucedido, você deve ver a seguinte saída.
Por padrão, quando você compra o STM8S, ele terá um programa blin que pisca o LED de teste. Agora, depois de enviar este código em branco, o LED não piscará mais.
Importante: descobri que meu ST-Link não reinicializou a placa automaticamente após a programação. Tive que desconectar e reconectar para verificar a saída do meu programa. Não tenho certeza se isso é um problema para todos, deixe-me saber na seção de comentários. Além disso, confira o vídeo na parte inferior que explica a solução para isso.
Com isso, vamos encerrar este tutorial, aprendemos o básico de hardware, configuramos o ambiente de desenvolvimento e aprendemos como compilar e fazer upload de código. Agora estamos prontos para progredir e usaremos isso em todos os nossos próximos tutoriais. Se você tiver alguma dúvida, poste-as em nossos fóruns e fique ligado para mais !!