Microcontrôleur STM8S105K4 : présentation, principales caractéristiques et applications pratiques

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.
STM8S105K4 LQFP48 pinout
STM8S105K4 LQFP48 pinout

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

STM8S105K4 block diagram
STM8S105K4 block diagram

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 :

  1. Électronique grand public : appareils électroménagers, télécommandes et contrôle d'affichage
  2. Contrôle industriel : contrôle des moteurs, systèmes CVC et modules PLC
  3. Applications automobiles : interfaces de capteurs, contrôle du tableau de bord et systèmes d'éclairage
  4. Santé : appareils médicaux, systèmes de surveillance et équipements de santé portables
  5. 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.

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 sur OK.
    • Enregistrer le .ewp dans le test/user dossier et nommez-le test.
Create a new project on IAR Embedded Workbench IDE
Create a new project on IAR Embedded Workbench IDE

Ajouter un groupe de projets :

    • Cliquez sur le menu et sélectionnez Project -> Add Group.
    • Nommez le groupe user, puis cliquez sur OK.
Add Project Group for STM8S105K4
Add Project Group for STM8S105K4

Créer un fichier principal :

    • Allez dans File -> New -> File, puis enregistrez-le sous main.c.
    • Ajouter main.c au user groupe.
Create a main.c file and add it to the user group
Create a main.c file and add it to the user group

Configuration de l'environnement IAR

Options du projet :

    • Visez et cliquez Project -> Options.

Définir le périphérique cible :

    • Dans General Options -> Target -> Device, sélectionnez STM8S105K4 (ou le modèle spécifique de votre appareil).
Set target device STM8S105K4 in project options
Set target device STM8S105K4 in project options

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.
Configure include path in CC Compiler Preprocessor
Configure include path in CC++ Compiler - Preprocessor

Configuration du débogueur :

    • Dans Debugger -> Setup, définissez le Driver sur ST-LINK.
    • Cliquez sur OK pour enregistrer la configuration.
Setup debugger driver as ST LINK
Setup debugger driver as ST-LINK

Ajouter le code et compiler le projet :

    • Dans main.c, entrez le code suivant, puis allez dans Project -> Rebuild All.
    • Si vous voyez Total number of errors: 0 et Total number of warnings: 0, le projet est correctement configuré.
Add LED blinking code to main.c file for STM8S105K4 project
Add LED blinking code to main.c file for STM8S105K4 project

Inclure le fichier d'en-tête :

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

É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

  • PE5LEDRésistance 1KMasse

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

  1. 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.
  2. É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 Tabs pour flasher à la fois les octets de programme et d'option.
Modify the AFR7 for PD4
Modify the AFR7 for PD4

Part à:

Retour en haut

Instant Quote