Le microcontrôleur STM8S105K4, réputé pour son efficacité et sa polyvalence, est un choix solide pour les applications embarquées dans l'électronique grand public et les systèmes industriels. Cet article présente ses principales caractéristiques, la configuration des broches et le schéma fonctionnel, ainsi qu'un guide étape par étape pour configurer un projet dans IAR Embedded Workbench. Grâce à des exemples de code pour le contrôle GPIO de base et des instructions sur la programmation et le débogage, ce guide vous aidera à démarrer rapidement et efficacement avec le STM8S105K4.
Aperçu
Le STM8S105K4 est un microcontrôleur 8 bits de STMicroelectronics, qui fait partie de la famille STM8. Il est conçu pour une large gamme d'applications, offrant un équilibre entre performances, efficacité énergétique et prix abordable. Grâce à ses périphériques avancés et à son EEPROM intégré, le STM8S105K4 convient aux tâches de contrôle à usage général dans l'électronique grand public, les systèmes industriels, etc.
Caractéristiques et spécifications
- Cœur : cœur STM8 8 bits avec architecture Harvard, fonctionnant jusqu'à 16 MHz.
- Mémoire :
- Mémoire flash : 16 Ko
- RAM : 1 Ko
- EEPROM : 640 octets
- Minuteries :
- Minuterie de contrôle avancée 16 bits (TIM1)
- Minuterie polyvalente 16 bits (TIM2)
- Minuterie de base 8 bits (TIM4)
- Interfaces de communication :
- Interfaces UART, I²C et SPI pour une connectivité polyvalente.
- Caractéristiques analogiques :
- ADC 10 bits avec jusqu'à 5 canaux
- Référence de tension interne pour une précision analogique améliorée
- GPIO :
- Plusieurs broches d'E/S avec réglages programmables de pull-up, de type de sortie et de vitesse
- Jusqu'à 38 ports E/S (selon le boîtier)
- Tension de fonctionnement : 2,95 V à 5,5 V
- Plage de température : -40 °C à +85 °C (qualité industrielle)
- Boîtier : Disponible en LQFP32 et autres options de boîtiers compacts.
Pin Configuration
Le STM8S105K4 fournit jusqu'à 48 broches d'E/S selon le boîtier, qui peuvent être configurées pour plusieurs fonctions telles que l'entrée ADC, la sortie PWM, l'UART, le SPI, l'I²C et les E/S numériques à usage général. Les GPIO clés comprennent :
- Port A (PA0 à PA7) : configurable pour les E/S numériques et d'autres fonctions.
- Port B (PB0 à PB7) : principalement utilisé pour les E/S avec des broches spécifiques prenant en charge des fonctions alternatives.
- Ports C, D et E : prise en charge d'E/S supplémentaires, d'entrées analogiques et de fonctions de minuterie, y compris la génération PWM.

Chaque broche peut être configurée individuellement pour l'entrée ou la sortie, avec prise en charge des modes push-pull et open-drain. De plus, les broches sont protégées contre les décharges électrostatiques et capables de fournir des sorties à haute puissance pour les applications de commande de LED et de relais.
Schéma fonctionnel

Le schéma fonctionnel du STM8S105K4 comprend :
- Cœur : cœur STM8 avec contrôle d'horloge, compteur de programme et ALU pour le traitement 8 bits.
- Unités de mémoire :
- Mémoire flash pour le stockage du code
- EEPROM pour la conservation des données
- SRAM pour usage général
- Périphériques :
- ADC pour le traitement des signaux analogiques
- Minuteries (TIM1, TIM2 et TIM4) pour la synchronisation des événements, la modulation PWM et la génération de formes d'onde
- Interfaces de communication (UART, SPI et I²C) pour la connectivité avec les capteurs, les écrans et d'autres modules
- Contrôle du système :
- Unité de génération d'horloge avec sources d'horloge internes et externes
- Temporisateur de surveillance pour la fiabilité du système
- Unité de gestion de l'alimentation avec modes basse consommation
- Contrôle des E/S : Configuration et gestion des GPIO pour l'interfaçage avec des périphériques externes
Cette architecture modulaire offre une grande flexibilité pour traiter diverses tâches, du contrôle en temps réel à la communication série.
Applications
Le microcontrôleur STM8S105K4 est idéal pour une large gamme d'applications, notamment :
- Électronique grand public : appareils électroménagers, télécommandes et contrôle d'affichage
- Contrôle industriel : contrôle des moteurs, systèmes CVC et modules PLC
- Applications automobiles : interfaces de capteurs, contrôle du tableau de bord et systèmes d'éclairage
- Santé : appareils médicaux, systèmes de surveillance et équipements de santé portables
- Appareils IoT : capteurs intelligents, modules sans fil et comptage d'énergie
Grâce à ses fonctionnalités analogiques, numériques et de communication, le STM8S105K4 permet aux concepteurs de créer des systèmes embarqués efficaces, polyvalents et économiques dans divers secteurs industriels.
Création d'un projet IAR pour STM8S105K4
Dans cet exemple, nous allons créer un projet IAR pour allumer la LED à l'aide du microcontrôleur STM8S105K4.
Outils nécessaires
Composants matériels :
- Microcontrôleur STM8S105K4
- Débogueur et programmateur ST-LINK/V2
- Carte de développement STM8S105K4 (en option)
- LED et résistance (1 kΩ)
- Plaque d'essai et fils de raccordement
Outils logiciels :
- IAR Embedded Workbench pour STM8
- ST Visual Programmer (STVP)
Étapes pour créer le projet
Créer un dossier de projet :
- Créez un dossier nommé
test, et à l'intérieur de celui-ci, créez un autre dossier nomméuser.
- Créez un dossier nommé
Ouvrez IAR Embedded Workbench :
- Ouvrez IAR pour STM8 (version 9.40.2).
Créer un nouveau projet :
- Allez dans
Project->Create New Project. - Dans la boîte de dialogue, sélectionnez
STM8 Series->Empty project, puis cliquez surOK. - Enregistrer le
.ewpdans letest/userdossier et nommez-letest.
- Allez dans

Ajouter un groupe de projets :
- Cliquez sur le menu et sélectionnez
Project->Add Group. - Nommez le groupe
user, puis cliquez surOK.
- Cliquez sur le menu et sélectionnez

Créer un fichier principal :
- Allez dans
File->New->File, puis enregistrez-le sousmain.c. - Ajouter
main.cauusergroupe.
- Allez dans

Configuration de l'environnement IAR
Options du projet :
- Visez et cliquez
Project->Options.
- Visez et cliquez
Définir le périphérique cible :
- Dans
General Options->Target->Device, sélectionnezSTM8S105K4(ou le modèle spécifique de votre appareil).
- Dans

Configurer les chemins d'inclusion :
- Dans
C/C++ Compiler->Preprocessor, ajoutez le chemin"$PROJ_DIR$\..\user". - Cette syntaxe spécifie le chemin d'accès au fichier d'inclusion dans le répertoire du projet.
- Dans

Configuration du débogueur :
- Dans
Debugger->Setup, définissez leDriversurST-LINK. - Cliquez sur
OKpour enregistrer la configuration.
- Dans

Ajouter le code et compiler le projet :
- Dans
main.c, entrez le code suivant, puis allez dansProject->Rebuild All. - Si vous voyez
Total number of errors: 0etTotal number of warnings: 0, le projet est correctement configuré.
- Dans

Inclure le fichier d'en-tête :
- Assurez-vous que le fichier d'en-tête
IOSTM8S105K4.hest disponible dans le répertoire d'installation IAR :Software (E:) > IAR for STM8 > arm > inc > ST.
- Assurez-vous que le fichier d'en-tête

Écriture, téléchargement et débogage de code
Le code suivant active et désactive une LED connectée à la broche PE5 avec une boucle de délai pour faire clignoter la 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
}
}
}
}
Connexions matérielles
- PE5 → LED → Résistance 1K → Masse
Après avoir téléchargé le code et lancé le programme, vous devriez voir la LED sur PE5 clignoter, confirmant que la configuration du projet est terminée.
Piloter un bipeur passif avec le STM8S105K4
Dans cet exemple, la broche PD4 du microcontrôleur STM8S105K4 est utilisée pour piloter un avertisseur sonore passif. La fonction d'avertisseur sonore est une fonction alternative de PD4. En configurant le bit AFR7, nous pouvons activer la fonction alternative pour PD4, ce qui lui permet de piloter l'avertisseur sonore.
Exécution de code
/* 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
}
Programmation et configuration de la fonction de bip sonore PD4
- Flashage du programme à l'aide du logiciel ST-Link et STVP :
- Utilisez le programmateur ST-Link et le logiciel officiel STVP pour flasher le fichier hexadécimal sur le microcontrôleur.
- Étapes pour le flashage et la configuration dans STVP :
- Étape 1 : Ouvrez le logiciel STVP, sélectionnez l'option « PROGRAM MEMORY », allez dans
File -> Openet localisez le fichier hexadécimal enregistré. - Étape 2 : sélectionnez l'option « OPTION BYTE » et modifiez le bit AFR7 pour activer la fonction alternative pour PD4.
- Étape 3 : Dans le menu du logiciel, allez dans
Program -> All Tabspour flasher à la fois les octets de programme et d'option.
- Étape 1 : Ouvrez le logiciel STVP, sélectionnez l'option « PROGRAM MEMORY », allez dans





