Il microcontrollore STM8S105C6 è una soluzione robusta, affidabile ed economica per la progettazione di sistemi embedded, che offre eccellenti prestazioni, flessibilità nel supporto periferico e basso consumo energetico. Che si tratti di applicazioni industriali, automobilistiche o di elettronica di consumo, questo microcontrollore fornisce tutte le funzionalità essenziali necessarie per sviluppare prodotti embedded di alta qualità. In questo articolo, introdurremo il microcontrollore STM8S105C6 e come programmarlo tramite UART.
Introduzione a STM8S105C6
L’STM8S105C6 è un membro della famiglia di microcontrollori STM8S, prodotto da STMicroelectronics. È basato sull’architettura del core STM8 ed è progettato per un’ampia gamma di applicazioni in sistemi embedded, come automotive, controllo industriale, automazione domestica ed elettronica di consumo. L’STM8S105C6 combina alte prestazioni, basso consumo energetico e una vasta gamma di periferiche, rendendolo una soluzione versatile ed economica per molte applicazioni embedded.
Caratteristiche principali di STM8S105C6
- Core: Core STM8 a 8 bit con elevate capacità di elaborazione.
- Velocità di clock: Il microcontrollore funziona a una frequenza massima di 16 MHz.
- Memoria:
- Memoria Flash: 32KB di memoria Flash programmabile in-system.
- RAM: 2KB di SRAM per l’archiviazione dei dati.
- Periferiche:
- Porte I/O: 16 pin I/O generici.
- Timer: 2 timer a 16 bit generici, 1 timer watchdog.
- Interfacce di comunicazione: UART (Universal Asynchronous Receiver-Transmitter) per la comunicazione seriale, SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit).
- Funzionalità analogiche: 1 ADC (Analog-to-Digital Converter) con 8 canali, risoluzione a 10 bit.
- PWM (Pulse Width Modulation): Capace di generare segnali PWM per il controllo di motori o LED.
- Intervallo di tensione: Funziona all’interno di un intervallo di tensione da 2,95V a 5,5V, rendendolo adatto a varie configurazioni di alimentazione.
- Basso consumo energetico: Ottimizzato per il funzionamento a basso consumo, con diverse modalità di risparmio energetico come Sleep, Wait e Halt.
- Strumenti di sviluppo: L’STM8S105C6 è supportato da una varietà di strumenti di sviluppo, tra cui STVD (STM8 Development Environment) di STMicroelectronics, IAR Embedded Workbench e altri IDE (Integrated Development Environments) di terze parti.
- Opzioni di confezionamento: L’STM8S105C6 è disponibile in un package LQFP (Low-profile Quad Flat Package) a 32 pin, che lo rende compatto e facile da integrare in un’ampia gamma di progetti.
Specifiche di 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 |
Schema dei pin STM8S105C6

Diagramma a blocchi STM8S105C6

Come programmare STM8 tramite UART
Oltre all’utilizzo del programmatore STLINK, il microcontrollore STM8S105C6 può essere programmato tramite la sua interfaccia UART con il software Flash Loader Demonstrator per scrivere programmi compilati nel microcontrollore.
Strumenti richiesti:
- STVD-STM8 (Versione: 42.0.0)
- IAR Embedded Workbench IDE (Versione: 9.40.2)
- Flash Loader Demonstrator (Versione: 2.8.0)
- Scheda di sviluppo STM8S105C6
Per una spiegazione dettagliata del processo di programmazione, lo abbiamo suddiviso in tre fasi:
1. Abilitazione del BootLoader
Prima della programmazione tramite UART, l’opzione “BootLoader Enable” deve essere attivata sul chip. Per impostazione predefinita, questa è abilitata sui chip nuovi. Tuttavia, una volta che un programma è stato caricato, viene disabilitata. Ci sono due metodi per abilitare il BootLoader:
- Utilizzo di ST LINK e del software STVP (ST Visual Programmer) per modificare l’OPTION BYTE del chip.
- Modifica dell’OPTION BYTE tramite un programma.
Utilizzo di ST LINK per modificare l'OPTION BYTE
Innanzitutto, collegare ST LINK, la scheda di sviluppo STM8 e il computer e aprire il software STVP (ST Visual Programmer). STVP viene installato automaticamente quando viene configurato l’ambiente di sviluppo STVD. È uno strumento di programmazione grafica completo utilizzato per programmare la memoria flash dei microcontrollori ST, consentendo di leggere, modificare e scrivere su FLASH, EEPROM e OPTION BYTE di STM8.

Successivamente, modificare l’OPTION BYTE per abilitare il BootLoader. Nel software STVP, andare alla scheda OPTION BYTE e individuare l’opzione BootLoader, di solito nella parte inferiore dell’elenco OPTION BYTE. Fare clic su “BootLoader Disable” e selezionare “BootLoader Enable” dal menu a tendina. Dopo aver impostato questo, fare clic su “Program Current Tab” o “Program All Tabs” nella barra degli strumenti per scrivere l’OPTION BYTE sul microcontrollore STM8, abilitando così il BootLoader.
Utilizzo di un programma per modificare l'OPTION BYTE
Per abilitare il BootLoader tramite un programma, compilare il seguente codice e caricarlo su STM8 utilizzando 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. Configurazione dell'ambiente di sviluppo
Ambiente di sviluppo STVD
Dopo la compilazione con il compilatore Cosmic in STVD, genererà un file *.s19 per impostazione predefinita. Questo file può essere caricato direttamente sul microcontrollore STM8 utilizzando il software Flash Loader Demonstrator. Il software supporta anche il caricamento di file *.hex e *.bin. Di seguito è riportato come configurare STVD per generare questi tre formati.
- Aprire il file di progetto STVD e andare a Proprietà del progetto.
- Selezionare la scheda Post-Build come mostrato di seguito.

Nella casella di testo Comandi, aggiungere i seguenti comandi dopo quello esistente:
chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8
Fare clic su OK per confermare. Dopo la compilazione, verranno generati tre diversi formati di file.
Ambiente di sviluppo IAR
L’ambiente di sviluppo IAR non utilizza il compilatore Cosmic, quindi non può generare file *.s19. Tuttavia, può generare gli altri due formati. Per configurare questo in IAR:
- Aprire il file di progetto IAR e andare a Proprietà del progetto.
- Selezionare la scheda Convertitore di output.

Successivamente, controlla l’opzione Genera output aggiuntivo. Nel menu a tendina Formato output, seleziona Intel esteso per generare un file *.hex o Binario per generare un file *.bin. Seleziona l’opzione Sovrascrivi predefinito e inserisci il nome file e il formato desiderati nella casella di testo. Clicca su OK per confermare. Dopo la compilazione, verrà generato il formato file scelto.
3. Programmazione con Flash Loader Demonstrator
Flash Loader Demonstrator è uno strumento di download ISP di ST, che può essere utilizzato per programmare i microcontrollori STM32 o STM8 tramite UART. Supporta il flashing di file *.s19, *.hex e *.bin. Di seguito è riportato come utilizzarlo per programmare il microcontrollore STM8:
- Collega la scheda di sviluppo STM8 al computer tramite UART e installa il software Flash Loader Demonstrator. Dopo l’installazione, apri il software e apparirà l’interfaccia principale.
- Seleziona la porta UART appropriata collegata alla scheda di sviluppo STM8 nel menu a tendina Nome porta.
- Nel menu a tendina Echo, seleziona Modalità Echo per STM8S o Disabilita per STM8L.

Successivamente, riavvia la scheda di sviluppo STM8 e fai clic rapidamente sul pulsante Avanti. Devi fare clic entro un secondo per assicurarti che Flash Loader Demonstrator possa ricevere dati dal BootLoader di STM8. Se ha successo, il software passerà alla schermata di selezione del dispositivo STM8.
Il tipo di dispositivo è determinato dal chip STM8 e dalla dimensione interna della sua FLASH. Per i microcontrollori STM8S, seleziona STM8_XXK dal menu a tendina. Per STM8L, seleziona STM8L_XXK. In base allo STM8S105C6 sulla nostra scheda di sviluppo, che ha 32KB di FLASH interna, scegli STM8_32K dal menu a tendina.

Quindi, fai clic su Avanti e il software ti chiederà di selezionare il file da flashare. Nella casella Scarica da file, individua il percorso del file del programma da flashare. Fai clic su Avanti e il file verrà scritto nella FLASH interna del microcontrollore STM8. Al termine del flashing, il software visualizzerà il messaggio “Operazione di download completata con successo.”
Infine, fai clic su Chiudi per uscire dal software Flash Loader Demonstrator. Riavvia la scheda di sviluppo STM8 e il microcontrollore eseguirà il programma in base al flusso definito. Tieni presente che il programma viene copiato nella memoria FLASH e devi riavviare il dispositivo affinché il puntatore salti al programma utente e inizi l’esecuzione. Se desideri che il programma venga eseguito automaticamente dopo il flashing, seleziona l’opzione Vai al programma utente.
Applicazioni tipiche
- Automotive: Unità di controllo, sensori e display.
- Industriale: Controllo di processo, sistemi di automazione e controllori di motori.
- Elettronica di consumo: Dispositivi intelligenti, telecomandi e piccoli elettrodomestici.
- Domotica: Sistemi di smart home, contatori di energia e sistemi di sicurezza.




