O microcontrolador STM8S105C6 é uma solução robusta, confiável e econômica para projetos de sistemas embarcados, oferecendo excelente desempenho, flexibilidade no suporte a periféricos e baixo consumo de energia. Seja para aplicações industriais, automotivas ou de eletrônicos de consumo, este microcontrolador oferece todos os recursos essenciais necessários para desenvolver produtos embarcados de alta qualidade. Neste artigo, apresentaremos o microcontrolador STM8S105C6 e como programá-lo por UART.
Introdução ao STM8S105C6
O STM8S105C6 é um membro da família de microcontroladores STM8S, fabricada pela STMicroelectronics. É baseado na arquitetura do núcleo STM8 e foi projetado para uma ampla gama de aplicações em sistemas embarcados, como automotivo, controle industrial, automação residencial e eletrônicos de consumo. O STM8S105C6 combina alto desempenho, baixo consumo de energia e uma ampla variedade de periféricos, tornando-o uma solução versátil e econômica para muitas aplicações embarcadas.
Principais características do STM8S105C6
- Núcleo: Núcleo STM8 de 8 bits com capacidade de processamento de alta velocidade.
- Velocidade do clock: O microcontrolador opera a uma frequência máxima de 16 MHz.
- Memória:
- Memória Flash: 32 KB de memória Flash programável no sistema.
- RAM: 2 KB de SRAM para armazenamento de dados.
- Periféricos:
- Portas de E/S: 16 pinos de E/S de uso geral.
- Temporizadores: 2 temporizadores de 16 bits de uso geral, 1 temporizador watchdog.
- Interfaces de comunicação: UART (Universal Asynchronous Receiver-Transmitter) para comunicação serial, SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit).
- Recursos analógicos: 1 ADC (conversor analógico-digital) com 8 canais, resolução de 10 bits.
- PWM (modulação por largura de pulso): capaz de gerar sinais PWM para controlar motores ou LEDs.
- Faixa de tensão: Opera dentro de uma faixa de tensão de 2,95 V a 5,5 V, tornando-o adequado para várias configurações de fonte de alimentação.
- Baixo consumo de energia: Otimizado para operação com baixo consumo de energia, com vários modos de economia de energia, como Sleep, Wait e Halt.
- Ferramentas de desenvolvimento: O STM8S105C6 é compatível com uma variedade de ferramentas de desenvolvimento, incluindo STVD (STM8 Development Environment) da STMicroelectronics, IAR Embedded Workbench e outros IDEs (Integrated Development Environments) de terceiros.
- Opções de pacote: O STM8S105C6 está disponível em um LQFP (Low-profile Quad Flat Package) de 32 pinos, tornando-o compacto e fácil de integrar em uma ampla gama de projetos.
Especificações do STM8S105C6
| Feature | Specification |
|---|---|
| Core | 8-bit STM8 core |
| Clock Speed | Up to 16 MHz |
| Flash Memory | 32KB (in-system programmable) |
| SRAM | 2KB |
| Voltage Range | 2.95V to 5.5V |
| Timers | 2x 16-bit general-purpose timers |
| Watchdog Timer | Yes |
| Communication Interfaces | UART, SPI, I2C |
| Analog Features | 8-channel, 10-bit ADC |
| PWM Channels | Yes |
| Operating Temperature Range | -40°C to 125°C |
| Package Type | 32-pin LQFP |
Pinagem do STM8S105C6

Diagrama de blocos do STM8S105C6

Como programar o STM8 via UART
Além de usar o programador STLINK, o microcontrolador STM8S105C6 pode ser programado através da sua interface UART com o software Flash Loader Demonstrator para gravar programas compilados no microcontrolador.
Ferramentas necessárias:
- STVD-STM8 (Versão: 42.0.0)
- IAR Embedded Workbench IDE (Versão: 9.40.2)
- Flash Loader Demonstrator (Versão: 2.8.0)
- Placa de desenvolvimento STM8S105C6
Para uma explicação detalhada do processo de programação, dividimos em três etapas:
1. Ativando o BootLoader
Antes de programar via UART, a opção "BootLoader Enable" precisa ser ativada no chip. Por padrão, ela está ativada em chips novos. No entanto, depois que um programa é gravado, ela é desativada. Existem dois métodos para ativar o BootLoader:
- Usando o software ST LINK e STVP (ST Visual Programmer) para modificar o OPTION BYTE do chip.
- Modificar o OPTION BYTE por meio de um programa.
Usando ST LINK para modificar OPTION BYTE
Primeiro, conecte o ST LINK, a placa de desenvolvimento STM8 e o computador, e abra o software STVP (ST Visual Programmer). O STVP é instalado automaticamente quando o ambiente de desenvolvimento STVD é configurado. É uma ferramenta de programação gráfica completa usada para programar a memória flash dos microcontroladores ST, permitindo que você leia, edite e grave na FLASH, EEPROM e OPTION BYTE do STM8.

Em seguida, modifique o OPTION BYTE para ativar o BootLoader. No software STVP, vá para a guia OPTION BYTE e localize a opção BootLoader, geralmente na parte inferior da lista OPTION BYTE. Clique em "BootLoader Disable" e selecione "BootLoader Enable" no menu suspenso. Após definir isso, clique em "Program Current Tab" ou "Program All Tabs" na barra de ferramentas para gravar o OPTION BYTE no microcontrolador STM8, ativando assim o BootLoader.
Usando um programa para modificar o OPTION BYTE
Para ativar o BootLoader através de um programa, compile o código a seguir e grave-o no STM8 usando o ST LINK:
FLASH_DeInit(); // Restore FLASH registers to default values
FLASH_Unlock(FLASH_MEMTYPE_DATA); // Unlock data EEPROM
// Program OPTION BYTE
FLASH_ProgramOptionByte(0x487e, 0x55);
FLASH_ProgramOptionByte(0x487f, 0xAA);
2. Configuração do ambiente de desenvolvimento
Ambiente de desenvolvimento STVD
Após a compilação com o compilador Cosmic no STVD, ele irá gerar um arquivo *.s19 por padrão. Este arquivo pode ser diretamente gravado no microcontrolador STM8 usando o software Flash Loader Demonstrator. O software também suporta a gravação de arquivos *.hex e *.bin. Abaixo está como configurar o STVD para gerar esses três formatos.
- Abra o arquivo do projeto STVD e vá para Propriedades do projeto.
- Selecione a guia Pós-compilação, conforme mostrado abaixo.

Na caixa de texto Comandos, adicione os seguintes comandos após o comando existente:
chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8
Clique em OK para confirmar. Após a compilação, serão gerados três formatos de arquivo diferentes.
Ambiente de desenvolvimento IAR
O ambiente de desenvolvimento IAR não utiliza o compilador Cosmic, pelo que não pode gerar ficheiros *.s19. No entanto, pode gerar os outros dois formatos. Para configurar isto no IAR:
- Abra o arquivo do projeto IAR e vá para Propriedades do projeto.
- Selecione a guia Conversor de saída.

Em seguida, marque a opção Gerar saída adicional. No menu suspenso Formato de saída, selecione Intel estendido para gerar um arquivo *.hex ou Binário para gerar um arquivo *.bin. Selecione a opção Substituir padrão e insira o nome e o formato do arquivo desejado na caixa de texto. Clique em OK para confirmar. Após a compilação, o formato de arquivo escolhido será gerado.
3. Programação com o Flash Loader Demonstrator
O Flash Loader Demonstrator é uma ferramenta de download ISP da ST, que pode ser usada para programar microcontroladores STM32 ou STM8 através de UART. Ele suporta a gravação de arquivos *.s19, *.hex e *.bin. Abaixo está como usá-lo para programar o microcontrolador STM8:
- Conecte a placa de desenvolvimento STM8 ao computador via UART e instale o software Flash Loader Demonstrator. Após a instalação, abra o software e a interface principal será exibida.
- Selecione a porta UART apropriada conectada à placa de desenvolvimento STM8 no menu suspenso Port Name (Nome da porta).
- No menu suspenso Echo, selecione Echo Mode para STM8S ou Disable para STM8L.

Em seguida, reinicie a placa de desenvolvimento STM8 e clique rapidamente no botão Avançar. Você deve clicar em menos de um segundo para garantir que o Flash Loader Demonstrator possa receber dados do BootLoader do STM8. Se for bem-sucedido, o software irá para a tela de seleção do dispositivo STM8.
O tipo de dispositivo é determinado pelo chip STM8 e pelo tamanho da sua memória FLASH interna. Para microcontroladores STM8S, selecione STM8_XXK no menu suspenso. Para STM8L, selecione STM8L_XXK. Com base no STM8S105C6 da nossa placa de desenvolvimento, que tem 32 KB de memória FLASH interna, escolha STM8_32K no menu suspenso.

Em seguida, clique em Avançar e o software solicitará que você selecione o arquivo a ser gravado. Na caixa Baixar do arquivo, navegue até o caminho do arquivo do programa a ser gravado. Clique em Avançar e o arquivo será gravado na memória FLASH interna do microcontrolador STM8. Após a gravação bem-sucedida, o software exibirá a mensagem "Operação de download concluída com sucesso".
Por fim, clique em Fechar para sair do software Flash Loader Demonstrator. Reinicie a placa de desenvolvimento STM8 e o microcontrolador executará o programa de acordo com o fluxo definido. Observe que o programa é copiado para a memória FLASH e você precisa reiniciar o dispositivo para que o ponteiro salte para o programa do usuário e comece a execução. Se você deseja que o programa seja executado automaticamente após o flash, marque a opção Saltar para o programa do usuário.
Aplicações típicas
- Automotivo: Unidades de controle, sensores e displays.
- Industrial: Controle de processos, sistemas de automação e controladores de motores.
- Eletrônicos de consumo: dispositivos inteligentes, controles remotos e pequenos eletrodomésticos.
- Automação residencial: Sistemas domésticos inteligentes, medidores de energia e sistemas de segurança.




