Microcontrolador STM8S903K3: Características, especificações e tutorial STVD STM8

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.

Pinagem:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Diagrama de blocos:

STM8S903K3 block diagram
STM8S903K3 block diagram

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.

Create new workspace on ST Visual Develop
Create new workspace on ST Visual Develop

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.

Create new workspace and project
Create new workspace and project

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.

Setting workspace filename and location
Setting workspace filename and location

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.

New project toolchain STM8 Cosmic
New project toolchain STM8 Cosmic
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers

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.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

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.

Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Detalhes do código como segue:
				
					#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).

Build the project by ST Visual Develop
Build the project by ST Visual Develop

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.

Debug Target Swim ST Link
Debug Target Swim ST-Link

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.

Project settings commands edit of Post Build
Project settings commands edit of Post-Build

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.

Save text file and build the project again
Save text file and build the project again

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.

Configure STM8S903K3 ST LINK for ST Visual Programmer STM8
Configure STM8S903K3 ST-LINK for ST Visual Programmer STM8

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 .

Open the uart.HEX file in ST Visual Programmer and Program all tabs
Open the uart.HEX file in ST Visual Programmer and Program all tabs

Compartilhar em:

Rolar para cima

Instant Quote