Microcontrollore STM8S903K3: Caratteristiche, Specifiche e Tutorial STVD STM8

Panoramica

STM8S903K3 è un microcontrollore a 8 bit prodotto da STMicroelectronics, parte della serie STM8S. Questa serie di microcontrollori è popolare sul mercato grazie alle sue elevate prestazioni, robustezza ed efficacia in termini di costi. L’STM8S903K3 è particolarmente adatto a una varietà di applicazioni di controllo industriale e di elettrodomestici perché aiuta a ridurre i costi del sistema e ad accorciare i cicli di sviluppo delle applicazioni.

Caratteristiche principali:

  • Alte prestazioni: Basato sul core STM8 di nuova generazione, offre funzionalità di elaborazione avanzate.
  • Basso consumo energetico: Dispone di diverse modalità a basso consumo, tra cui le modalità Wait, Active Stop e Stop, nonché la possibilità di disabilitare individualmente gli orologi periferici.
  • Elevata integrazione: Integra una vera EEPROM di dati con fino a 300.000 cicli di scrittura/cancellazione, un oscillatore a clock interno, un watchdog timer e una funzionalità di reset all’accensione.
  • Sistema di sicurezza del clock: Include un monitor del clock per garantire un funzionamento stabile del sistema.
  • Gestione degli interrupt: Dotato di un controller di interrupt nidificati, che supporta fino a 32 interrupt e 28 interrupt esterni.
  • Timer: Include timer di controllo avanzati, timer generici e timer di auto-wake-up.
  • Interfacce di comunicazione: Supporta vari protocolli di comunicazione come I2C, IrDA, bus LIN, SPI, UART/USART.
  • Tensione di funzionamento: da 2,95 a 5,5 V, che offre flessibilità per diversi ambienti di alimentazione.
  • Intervallo di temperatura: Intervallo di temperatura di funzionamento da -40°C a 85°C, che lo rende adatto a un’ampia gamma di condizioni ambientali.

Schema dei pin:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Diagramma a blocchi:

STM8S903K3 block diagram
STM8S903K3 block diagram

Esempi di applicazioni:

Grazie alle sue elevate prestazioni e al basso costo, l’STM8S903K3 è ampiamente utilizzato in vari settori. Ad esempio, nei progetti di controller per veicoli elettrici, funge da chip di controllo principale per i motori brushless DC senza sensori, riducendo così i costi del motore e migliorando la stabilità del controller.

Programmazione di STM8S903K3 con STVD e STVP

In questo esempio, introdurremo il tutorial di programmazione UART di STM8S903K3, basato su ST Visual Develop e ST Visual Programmer, dalla configurazione dell’ambiente e dalla creazione del progetto alla compilazione e al test.

Strumenti richiesti

Hardware:

  • Microcontrollore STM8S903K3
  • Debugger/Programmatore ST-Link
  • Scheda target (opzionale)
  • Interfaccia di comunicazione seriale UART (opzionale)

Software:

  • ST Visual Develop (STVD) (strumento IDE per la scrittura, la compilazione e il debug)
  • ST Visual Programmer (STVP) (strumento di programmazione)
  • Driver USB ST-Link
  • STM8 Cosmic Compiler Toolchain (compila il progetto e genera il file HEX)
  • Software emulatore di terminale (opzionale)

Processo passo dopo passo

1. Crea un nuovo spazio di lavoro su ST Visual Develop

Apri ST Visual Develop e crea un nuovo spazio di lavoro. Questo sarà il contenitore per i tuoi file di progetto e le tue configurazioni.

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

2. Crea un nuovo spazio di lavoro e un nuovo progetto

All’interno dello spazio di lavoro, crea un nuovo progetto. Questo servirà come ambiente di sviluppo principale in cui scriverai e compilerai il tuo codice.

Create new workspace and project
Create new workspace and project

3. Imposta il nome del file e la posizione dello spazio di lavoro

Specifica il nome del file e la posizione in cui verrà salvato lo spazio di lavoro. Scegli una directory appropriata sul tuo computer per archiviare i file di progetto.

Setting workspace filename and location
Setting workspace filename and location

4. Nuovo Toolchain di Progetto STM8 Cosmic

Seleziona il toolchain STM8 Cosmic per il progetto. Il toolchain Cosmic viene utilizzato per compilare il codice e generare il file eseguibile per il microcontrollore 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. Seleziona MCU STM8S903K3

Nelle impostazioni del progetto, scegli il microcontrollore (MCU) STM8S903K3 come dispositivo di destinazione. Ciò garantisce che il progetto sia configurato correttamente per l’hardware specifico con cui stai lavorando.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

6. Aggiunta del Codice UART al File main.c

Nel file main.c del tuo progetto, aggiungi il codice UART sottostante per abilitare la comunicazione seriale. Ciò include la configurazione delle impostazioni UART e delle funzioni per la trasmissione e la ricezione dei dati.

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
Codice dettagliato come 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
    }
}

				
			

Dopo aver aggiunto il codice main.c, possiamo aggiungere il file di intestazione stm8s903k3.h nella cartella “File di inclusione” del progetto. Questo file contiene le definizioni e le configurazioni necessarie per l’MCU STM8S903K3, consentendo al compilatore di riconoscere i registri e le funzioni specifici del dispositivo.

7. Compila il Progetto

Una volta scritto il codice, compila il progetto per compilare il codice sorgente in codice macchina che l’STM8S903K3 possa comprendere. Questo passaggio verificherà la presenza di errori e genererà un file di output (in genere un file .hex).

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

8. Debug Target Swim ST-Link

Configura l’ambiente di debug selezionando il debugger ST-Link per la comunicazione con l’MCU di destinazione. L’ST-Link è un programmatore/debugger basato su USB utilizzato per caricare il codice sul microcontrollore STM8 e per eseguire il debug.

Debug Target Swim ST Link
Debug Target Swim ST-Link

9. Modifica le Impostazioni del Progetto Comandi in Post-Build

Nelle impostazioni del progetto, modifica i comandi post-build per automatizzare eventuali passaggi necessari che devono verificarsi dopo la build, come la copia del file di output o l’esecuzione di un’ulteriore elaborazione.

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

10. Salva il File di Testo e Ricompila il Progetto

Salva il progetto e tutti i file di testo contenenti configurazioni o comandi di build. Dopo aver salvato, ricompila il progetto per assicurarti che tutte le impostazioni siano applicate correttamente e che il file di output sia generato.

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

11. Configura STM8S903K3 ST-LINK per ST Visual Programmer STM8

Configura l’ST-Link con il microcontrollore STM8S903K3 per la programmazione. L’ST-Link deve essere collegato sia al computer che all’STM8S903K3 per facilitare la programmazione e il debug.

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

12. Programmazione Tramite ST Visual Programmer

Utilizza il software ST Visual Programmer per aprire il file uart.HEX generato dal processo di build. Questo file contiene il codice compilato per il tuo microcontrollore STM8S903K3. Seleziona le opzioni di programmazione appropriate in ST Visual Programmer e programma il microcontrollore con il file .hex generato.

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

Condividi con:

Torna in alto

Instant Quote