Microcontrollore STM8S105K4: Panoramica, Caratteristiche Principali e Applicazioni Pratiche

Il microcontrollore STM8S105K4, noto per la sua efficienza e versatilità, è una scelta solida per applicazioni embedded in elettronica di consumo e sistemi industriali. Questo articolo fornisce una panoramica delle sue caratteristiche principali, della configurazione dei pin e del diagramma a blocchi, insieme a una guida passo passo per impostare un progetto in IAR Embedded Workbench. Con codice di esempio per il controllo GPIO di base e istruzioni sulla programmazione e il debug, questa guida ti aiuterà a iniziare con STM8S105K4 in modo rapido ed efficace.

Panoramica

L’STM8S105K4 è un microcontrollore a 8 bit di STMicroelectronics, parte della famiglia STM8. È progettato per un’ampia gamma di applicazioni, fornendo un equilibrio tra prestazioni, efficienza energetica e convenienza. Con le sue periferiche avanzate e la EEPROM integrata, l’STM8S105K4 è adatto per attività di controllo generiche in elettronica di consumo, sistemi industriali e altro ancora.

Caratteristiche e specifiche

  • Core: core STM8 a 8 bit con architettura Harvard, che opera fino a 16 MHz.
  • Memoria:
    • Memoria Flash: 16 KB
    • RAM: 1 KB
    • EEPROM: 640 byte
  • Timer:
    • Timer di controllo avanzato a 16 bit (TIM1)
    • Timer generico a 16 bit (TIM2)
    • Timer di base a 8 bit (TIM4)
  • Interfacce di comunicazione:
    • Interfacce UART, I²C e SPI per una connettività versatile.
  • Funzionalità analogiche:
    • ADC a 10 bit con fino a 5 canali
    • Riferimento di tensione interno per una maggiore precisione analogica
  • GPIO:
    • Pin I/O multipli con impostazioni programmabili pull-up, tipo di output e velocità
    • Fino a 38 porte I/O (a seconda del package)
  • Tensione di funzionamento: da 2,95 V a 5,5 V
  • Intervallo di temperatura: da -40°C a +85°C (grado industriale)
  • Packaging: disponibile in opzioni di package compatti come LQFP32 e altri.

Configurazione dei pin

L’STM8S105K4 fornisce fino a 48 pin I/O a seconda del package, che possono essere configurati per più funzioni come ingresso ADC, uscita PWM, UART, SPI, I²C e I/O digitale generico. I GPIO chiave includono:

  • Porta A (PA0 a PA7): configurabile per I/O digitale e funzioni alternative.
  • Porta B (PB0 a PB7): utilizzata principalmente per I/O con pin specifici che supportano funzioni alternative.
  • Porta C, D ed E: supporto per I/O aggiuntivi, ingresso analogico e funzioni timer, inclusa la generazione PWM.
STM8S105K4 LQFP48 pinout
STM8S105K4 LQFP48 pinout

Ogni pin può essere configurato individualmente per ingresso o uscita, con supporto per modalità push-pull e open-drain. Inoltre, i pin sono protetti da ESD e sono in grado di fornire uscite ad alta corrente per applicazioni di pilotaggio di LED e relè.

Diagramma a blocchi

STM8S105K4 block diagram
STM8S105K4 block diagram

Il diagramma a blocchi dell’STM8S105K4 include:

  • Core: core STM8 con controllo del clock, contatore di programma e ALU per l’elaborazione a 8 bit.
  • Unità di memoria:
    • Memoria Flash per l’archiviazione del codice
    • EEPROM per la conservazione dei dati
    • SRAM per uso generico
  • Periferiche:
    • ADC per l’elaborazione del segnale analogico
    • Timer (TIM1, TIM2 e TIM4) per la temporizzazione degli eventi, PWM e la generazione di forme d’onda
    • Interfacce di comunicazione (UART, SPI e I²C) per la connettività con sensori, display e altri moduli
  • Controllo di sistema:
    • Unità di generazione del clock con sorgenti di clock interne ed esterne
    • Watchdog timer per l’affidabilità del sistema
    • Unità di gestione dell’alimentazione con modalità a basso consumo
  • Controllo I/O: configurazione e gestione GPIO per l’interfacciamento con dispositivi esterni

Questa architettura modulare consente flessibilità nella gestione di una varietà di attività, dal controllo in tempo reale alla comunicazione seriale.

Applicazioni

Il microcontrollore STM8S105K4 è ideale per un’ampia gamma di applicazioni, tra cui:

  1. Elettronica di consumo: elettrodomestici, telecomandi e controllo del display
  2. Controllo industriale: controllo del motore, sistemi HVAC e moduli PLC
  3. Applicazioni automobilistiche: interfaccia del sensore, controllo del cruscotto e sistemi di illuminazione
  4. Assistenza sanitaria: dispositivi medici, sistemi di monitoraggio e apparecchiature sanitarie portatili
  5. Dispositivi IoT: sensori intelligenti, moduli wireless e misurazione dell’energia

Con il suo mix di funzionalità analogiche, digitali e di comunicazione, l’STM8S105K4 consente ai progettisti di creare sistemi embedded efficienti, versatili ed economici in vari settori.

Creazione di un progetto IAR per STM8S105K4

In questo esempio, creeremo un progetto IAR per accendere il led utilizzando il microcontrollore STM8S105K4.

Strumenti richiesti

Componenti hardware:

  • Microcontrollore STM8S105K4
  • Debugger e programmatore ST-LINK/V2
  • Scheda di sviluppo STM8S105K4 (opzionale)
  • LED e resistore (1KΩ)
  • Breadboard e cavi jumper

Strumenti software:

  • IAR Embedded Workbench per STM8
  • ST Visual Programmer (STVP)

Passaggi per creare il progetto

Crea cartella progetto:

    • Crea una cartella denominata test e al suo interno, crea un’altra cartella denominata user.

Apri IAR Embedded Workbench:

    • Apri IAR per STM8 (versione 9.40.2).

Crea un Nuovo Progetto:

    • Vai a Project -> Create New Project.
    • Nella finestra di dialogo, seleziona STM8 Series -> Empty project, e clicca OK.
    • Salva il file .ewp nella cartella test/user e chiamalo test.
Create a new project on IAR Embedded Workbench IDE
Create a new project on IAR Embedded Workbench IDE

Aggiungi Gruppo Progetto:

    • Seleziona il menu e clicca Project -> Add Group.
    • Nomina il gruppo user, e clicca OK.
Add Project Group for STM8S105K4
Add Project Group for STM8S105K4

Crea un File Principale:

    • Vai a File -> New -> File, poi salvalo come main.c.
    • Aggiungi main.c al gruppo user.
Create a main.c file and add it to the user group
Create a main.c file and add it to the user group

Configurazione dell'Ambiente IAR

Opzioni Progetto:

    • Seleziona e clicca Project -> Options.

Imposta Dispositivo Target:

    • In General Options -> Target -> Device, seleziona STM8S105K4 (o il tuo modello di dispositivo specifico).
Set target device STM8S105K4 in project options
Set target device STM8S105K4 in project options

Configura Percorsi di Inclusione:

    • In C/C++ Compiler -> Preprocessor, aggiungi il percorso "$PROJ_DIR$\\..\\user".
    • Questa sintassi specifica il percorso del file di inclusione all’interno della directory del progetto.
Configure include path in CC Compiler Preprocessor
Configure include path in CC++ Compiler - Preprocessor

Configura Debugger:

    • In Debugger -> Setup, imposta Driver su ST-LINK.
    • Clicca OK per salvare la configurazione.
Setup debugger driver as ST LINK
Setup debugger driver as ST-LINK

Aggiungi Codice e Compila il Progetto:

    • In main.c, inserisci il seguente codice, poi vai a Project -> Rebuild All.
    • Se vedi Total number of errors: 0 e Total number of warnings: 0, il progetto è configurato correttamente.
Add LED blinking code to main.c file for STM8S105K4 project
Add LED blinking code to main.c file for STM8S105K4 project

Includi File Header:

    • Assicurati che il file header IOSTM8S105K4.h sia disponibile nella directory di installazione di IAR:
      Software (E:) > IAR for STM8 > arm > inc > ST.
iostm8s105k4.h header file
iostm8s105k4.h header file

Scrittura, Download e Debug del Codice

Il seguente codice commuta un LED collegato al pin PE5 con un ciclo di ritardo per far lampeggiare il LED.

				
					#include "iostm8s105k4.h"  // Ensure this header file exists in your project

int main(void) {
    int i, j;  // Variables for delay loop

    // Configure PE5 as an output pin
    PE_DDR |= 0x20;   // Set bit 5 of PE_DDR (PE5) to 1 to configure as output
    PE_CR1 |= 0x20;   // Set bit 5 of PE_CR1 to 1 for push-pull mode
    PE_CR2 &= ~0x20;  // Set bit 5 of PE_CR2 to 0 for low speed

    // Main loop
    while (1) {
        PE_ODR ^= 0x20;  // Toggle PE5 (connected to LED)

        // Simple delay loop
        for (i = 0; i < 100; i++) {
            for (j = 0; j < 1000; j++) {
                // Empty loop for delay
            }
        }
    }
}

				
			

Connessioni Hardware

  • PE5LEDResistore da 1KTerra

Dopo aver caricato il codice e avviato il programma, dovresti vedere il LED su PE5 lampeggiare, confermando che la configurazione del progetto è completa.

Pilotare un Beeper Passivo con STM8S105K4

In questo esempio, il pin PD4 del microcontrollore STM8S105K4 viene utilizzato per pilotare un beeper passivo. La funzione beeper è una funzione alternativa di PD4. Configurando il bit AFR7, possiamo abilitare la funzione alternativa per PD4, che gli consente di pilotare il beeper.

Esecuzione del Codice

				
					/* Includes */
#include "user.h"

/* Function Prototypes */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre);

/* Main Function */
void main(void)
{
    /* Clock, LED, and Timer Initialization */
    HalCLK_Config();
    HalLed_Init();
    HalTimer1_Init();
    // HalUART2_Init(); // Uncomment if UART is required
    
    /* Buzzer Initialization */
    HalBeep_Init(BEEP_FREQUENCY_2KHZ); // Initialize the buzzer at 2kHz
    BEEP_Cmd(ENABLE); // Enable the buzzer
    enableInterrupts(); // Enable interrupts

    while (1)
    {
        // Main loop - insert additional code here if needed
    }
}

/* Buzzer Initialization Function */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre)
{
    BEEP_DeInit(); // Reset the BEEP registers to their default values
    BEEP_Init(beep_fre); // Initialize the BEEP with the specified frequency
}

				
			

Programmazione e Configurazione della Funzione Beeper PD4

  1. Flashare il Programma usando ST-Link e Software STVP:
    • Utilizzare il programmatore ST-Link e il software ufficiale STVP per flashare il file hex sul microcontrollore.
  2. Passaggi per il Flashing e la Configurazione in STVP:
    • Passo 1: Aprire il software STVP, selezionare l’opzione “PROGRAM MEMORY”, andare a File -> Open e individuare il file hex salvato.
    • Passo 2: Selezionare l’opzione “OPTION BYTE” e modificare il bit AFR7 per abilitare la funzione alternativa per PD4.
    • Passo 3: Nel menu del software, andare a Program -> All Tabs per flashare sia il programma che i byte di opzione.
Modify the AFR7 for PD4
Modify the AFR7 for PD4

Condividi con:

Torna in alto

Instant Quote