Visão geral
O STM8S903K3 é um microcontrolador de 8 bits produzido pela STMicroelectronics, parte da série STM8S. Esta série de microcontroladores é popular no mercado devido ao seu alto desempenho, robustez e relação custo-benefício. O STM8S903K3 é especialmente adequado para uma variedade de aplicações de controle industrial e eletrodomésticos, pois ajuda a reduzir os custos do sistema e encurtar os ciclos de desenvolvimento de aplicações.
Principais características:
- Alto desempenho: Baseado no núcleo STM8 de última geração, oferece recursos avançados de processamento.
- Baixo consumo de energia: Possui vários modos de baixo consumo de energia, incluindo os modos Wait, Active Stop e Stop, bem como a capacidade de desativar individualmente os relógios periféricos.
- Alta integração: integra uma EEPROM de dados verdadeira com até 300 mil ciclos de gravação/apagamento, um oscilador de relógio interno, um temporizador watchdog e funcionalidade de reinicialização ao ligar.
- Sistema de segurança do relógio: Inclui um monitor de relógio para garantir o funcionamento estável do sistema.
- Gerenciamento de interrupções: Equipado com um controlador de interrupções aninhadas, suportando até 32 interrupções e 28 interrupções externas.
- Temporizadores: Inclui temporizadores de controle avançado, temporizadores de uso geral e temporizadores de ativação automática.
- Interfaces de comunicação: Suporta vários protocolos de comunicação, como I2C, IrDA, barramento LIN, SPI, UART/USART.
- Tensão de operação: 2,95 a 5,5 V, proporcionando flexibilidade para diferentes ambientes de energia.
- Faixa de temperatura: Faixa de temperatura operacional de -40 °C a 85 °C, tornando-o adequado para uma ampla gama de condições ambientais.
Exemplos de aplicação:
Devido ao seu alto desempenho e baixo custo, o STM8S903K3 é amplamente utilizado em vários campos. Por exemplo, em projetos de controladores de veículos elétricos, ele atua como o principal chip de controle para acionar motores CC sem escovas e sem sensores, reduzindo assim os custos do motor e aumentando a estabilidade do controlador.
Programação do STM8S903K3 com STVD e STVP
Neste exemplo, apresentaremos o tutorial de programação UART do STM8S903K3, baseado no ST Visual Develop e no ST Visual Programmer, desde a configuração do ambiente e a criação do projeto até a compilação e os testes.
Ferramentas necessárias
Hardware:
- Microcontrolador STM8S903K3
- Depurador/programador ST-Link
- Placa de destino (opcional)
- Interface de comunicação serial UART (opcional)
Software:
- ST Visual Develop (STVD) (ferramenta IDE para escrita, compilação e depuração)
- ST Visual Programmer (STVP) (ferramenta de programação)
- Driver USB ST-Link
- STM8 Cosmic Compiler Toolchain (compila o projeto e gera o arquivo HEX)
- Software emulador de terminal (opcional)
Processo passo a passo
1. Criar novo espaço de trabalho no ST Visual Develop
Abra o ST Visual Develop e crie um novo espaço de trabalho. Este será o local onde serão armazenados os arquivos e configurações do seu projeto.
2. Criar novo espaço de trabalho e projeto
Dentro da área de trabalho, crie um novo projeto. Ele servirá como o principal ambiente de desenvolvimento, onde você escreverá e compilará seu código.
3. Definir o nome e a localização do arquivo do espaço de trabalho
Especifique o nome do arquivo e o local onde a área de trabalho será salva. Escolha um diretório apropriado no seu computador para armazenar os arquivos do projeto.
4. Nova cadeia de ferramentas de projeto STM8 Cosmic
Selecione a cadeia de ferramentas STM8 Cosmic para o projeto. A cadeia de ferramentas Cosmic é usada para compilar o código e gerar o arquivo executável para o microcontrolador STM8.
5. Selecione o MCU STM8S903K3
Nas configurações do projeto, escolha o microcontrolador (MCU) STM8S903K3 como dispositivo de destino. Isso garante que o projeto esteja configurado corretamente para o hardware específico com o qual você está trabalhando.
6. Adicionando código UART ao arquivo main.c
No arquivo main.c do seu projeto, adicione o código UART abaixo para habilitar a comunicação serial. Isso inclui configurar as definições e funções UART para transmitir e receber dados.
#include "stm8s903k3.h"
#include "stdio.h"
#define _COSMIC_
/*
Since different compilers (RAISONANCE, COSMIC, IAR) have slightly different parameter and return value conventions for putchar and getchar,
we use macros to define them accordingly. These macros are automatically added by the compiler.
*/
#ifdef _RAISONANCE_
#define PUTCHAR_PROTOTYPE int putchar (char c)
#define GETCHAR_PROTOTYPE int getchar (void)
#elif defined (_COSMIC_)
#define PUTCHAR_PROTOTYPE char putchar (char c)
#define GETCHAR_PROTOTYPE char getchar (void)
#else /* _IAR_ */
#define PUTCHAR_PROTOTYPE int putchar (int c)
#define GETCHAR_PROTOTYPE int getchar (void)
#endif /* _RAISONANCE_ */
// Function to send a character to UART1
PUTCHAR_PROTOTYPE
{
UART1_DR = c; // Send a character 'c' to UART1 data register
while (!(UART1_SR & 0x40)); // Wait for transmission to complete (TXE flag)
return (c);
}
// Function to receive a character from UART1
GETCHAR_PROTOTYPE
{
#ifdef _COSMIC_
char c = 0;
#else
int c = 0;
#endif
// Wait for new data to be received (RXNE flag)
while (!(UART1_SR & 0x20));
// Read received data
c = UART1_DR;
return (c);
}
// Clock initialization function
void CLK_Init(void)
{
// Enable the internal high-speed oscillator (HSI)
CLK_ICKR |= 0x01;
CLK_CKDIVR = 0x00; // No clock division (16MHz)
while (!(CLK_ICKR & 0x02)); // Wait for HSI to be ready
CLK_SWR = 0xE1; // Use HSI as the system clock source
}
// UART1 initialization function
void UART1_Init(void)
{
UART1_CR3 = 0x00; // Disable LIN mode, one stop bit, no SCK
UART1_CR2 = 0x00; // Disable TX interrupt, RX interrupt, and others
UART1_CR3 = 0x00; // Disable interrupts, no break frames
UART1_BRR2 = 0x02; // Set baud rate (9600)
UART1_BRR1 = 0x68; // Set baud rate (9600)
UART1_CR2 = 0x0C; // Enable TX and RX
}
// Simple delay function (not very accurate, could be improved with a timer)
void delay(unsigned int x)
{
unsigned int i, j;
for (i = x; i > 0; i--)
for (j = 300; j > 0; j--);
}
void main()
{
unsigned char c;
CLK_Init(); // Initialize system clock
UART1_Init(); // Initialize UART1
while(1)
{
printf("\n\rPlease enter a key: ");
while (!(UART1_SR & 0x20)); // Wait for data to be received (RXNE flag)
c = UART1_DR; // Read received character
printf("\n\rYou entered: %c.", c); // Send the received character back to the user
}
}
Depois de adicionar o código main.c, podemos adicionar o arquivo de cabeçalho stm8s903k3.h na pasta "Include Files" do projeto. Esse arquivo contém as definições e configurações necessárias para o MCU STM8S903K3, permitindo que o compilador reconheça os registros e funções específicos do dispositivo.
7. Construa o projeto
Depois de escrever o código, compile o projeto para converter o código-fonte em código de máquina que o STM8S903K3 possa entender. Essa etapa verificará se há erros e gerará um arquivo de saída (normalmente um arquivo .hex).
8. Depurar alvo Swim ST-Link
Configure o ambiente de depuração selecionando o depurador ST-Link para comunicação com o MCU de destino. O ST-Link é um programador/depurador baseado em USB usado para carregar código no microcontrolador STM8 e depurá-lo.
9. Editar comandos de configurações do projeto na pós-compilação
Nas configurações do projeto, edite os comandos pós-compilação para automatizar quaisquer etapas necessárias que devam ocorrer após a compilação, como copiar o arquivo de saída ou realizar processamentos adicionais.
10. Salve o arquivo de texto e compile o projeto novamente
Salve o projeto e todos os arquivos de texto que contenham configurações ou comandos de compilação. Após salvar, recompile o projeto para garantir que todas as configurações sejam aplicadas corretamente e que o arquivo de saída seja gerado.
11. Configurar STM8S903K3 ST-LINK para ST Visual Programmer STM8
Configure o ST-Link com o microcontrolador STM8S903K3 para programação. O ST-Link deve ser conectado ao computador e ao STM8S903K3 para facilitar a programação e a depuração.
12. Programação através do ST Visual Programmer
Use o software ST Visual Programmer para abrir o uart.HEX arquivo gerado pelo processo de compilação. Esse arquivo contém o código compilado para o microcontrolador STM8S903K3. Selecione as opções de programação adequadas no ST Visual Programmer e programe o microcontrolador com o arquivo gerado .hex .




