Microcontrôleur STM8S105C6 : présentation complète et guide de programmation

Le microcontrôleur STM8S105C6 est une solution robuste, fiable et économique pour la conception de systèmes embarqués. Il offre d'excellentes performances, une grande flexibilité en matière de prise en charge des périphériques et une faible consommation d'énergie. Que ce soit pour des applications industrielles, automobiles ou électroniques grand public, ce microcontrôleur offre toutes les fonctionnalités essentielles nécessaires au développement de produits embarqués de haute qualité. Dans cet article, nous vous présentons le microcontrôleur STM8S105C6 et vous expliquons comment le programmer via UART.

Introduction au STM8S105C6

Le STM8S105C6 fait partie de la famille de microcontrôleurs STM8S, fabriquée par STMicroelectronics. Il est basé sur l'architecture centrale STM8 et est conçu pour une large gamme d'applications dans les systèmes embarqués, tels que l'automobile, le contrôle industriel, la domotique et l'électronique grand public. Le STM8S105C6 combine hautes performances, faible consommation d'énergie et grande variété de périphériques, ce qui en fait une solution polyvalente et économique pour de nombreuses applications embarquées.

Principales caractéristiques du STM8S105C6

  • Cœur : cœur STM8 8 bits avec capacité de traitement haute vitesse.
  • Vitesse d'horloge : le microcontrôleur fonctionne à une fréquence maximale de 16 MHz.
  • Mémoire :
    • Mémoire flash : 32 Ko de mémoire flash programmable dans le système.
    • RAM : 2 Ko de SRAM pour le stockage des données.
  • Périphériques :
    • Ports E/S : 16 broches E/S à usage général.
    • Minuteries : 2 minuteries 16 bits à usage général, 1 minuterie de surveillance.
    • Interfaces de communication : UART (récepteur-émetteur asynchrone universel) pour la communication série, SPI (interface périphérique série), I2C (inter-circuit intégré).
    • Fonctions analogiques : 1 convertisseur analogique-numérique (ADC) à 8 canaux, résolution 10 bits.
    • PWM (modulation de largeur d'impulsion) : capable de générer des signaux PWM pour contrôler des moteurs ou des LED.
  • Plage de tension : fonctionne dans une plage de tension de 2,95 V à 5,5 V, ce qui le rend adapté à diverses configurations d'alimentation électrique.
  • Faible consommation d'énergie : optimisé pour un fonctionnement à faible consommation d'énergie, avec plusieurs modes d'économie d'énergie tels que Sleep, Wait et Halt.
  • Outils de développement : le STM8S105C6 est pris en charge par divers outils de développement, notamment STVD (STM8 Development Environment) de STMicroelectronics, IAR Embedded Workbench et d'autres IDE (environnements de développement intégrés) tiers.
  • Options de boîtier : le STM8S105C6 est disponible en boîtier LQFP (Low-profile Quad Flat Package) à 32 broches, ce qui le rend compact et facile à intégrer dans une large gamme de conceptions.

Spécifications STM8S105C6

FeatureSpecification
Core8-bit STM8 core
Clock SpeedUp to 16 MHz
Flash Memory32KB (in-system programmable)
SRAM2KB
Voltage Range2.95V to 5.5V
Timers2x 16-bit general-purpose timers
Watchdog TimerYes
Communication InterfacesUART, SPI, I2C
Analog Features8-channel, 10-bit ADC
PWM ChannelsYes
Operating Temperature Range-40°C to 125°C
Package Type32-pin LQFP

STM8S105C6 Brochage

STM8S105C6 SDIP32 pinout
STM8S105C6 SDIP32 pinout

Schéma fonctionnel du STM8S105C6

Block diagram of STM8S105C6
Block diagram of STM8S105C6

Comment programmer STM8 via UART

En plus d'utiliser le programmateur STLINK, le microcontrôleur STM8S105C6 peut être programmé via son interface UART avec le logiciel Flash Loader Demonstrator afin d'écrire des programmes compilés sur le microcontrôleur.

Outils requis :

  • STVD-STM8 (version : 42.0.0)
  • IAR Embedded Workbench IDE (version : 9.40.2)
  • Flash Loader Demonstrator (version : 2.8.0)
  • Carte de développement STM8S105C6

Pour une explication détaillée du processus de programmation, nous l'avons divisé en trois étapes :

1. Activation du BootLoader

Avant de programmer via UART, l'option « BootLoader Enable » doit être activée sur la puce. Par défaut, cette option est activée sur les nouvelles puces. Cependant, une fois qu'un programme est flashé, elle est désactivée. Il existe deux méthodes pour activer le BootLoader :

  1. Utiliser le logiciel ST LINK et STVP (ST Visual Programmer) pour modifier l'OPTION BYTE de la puce.
  2. Modifier l'OPTION BYTE à l'aide d'un programme.

Utilisation de ST LINK pour modifier l'OPTION BYTE

Commencez par connecter le ST LINK, la carte de développement STM8 et l'ordinateur, puis ouvrez le logiciel STVP (ST Visual Programmer). STVP s'installe automatiquement lors de la configuration de l'environnement de développement STVD. Il s'agit d'un outil de programmation graphique complet utilisé pour programmer la mémoire flash des microcontrôleurs ST, qui vous permet de lire, modifier et écrire dans la mémoire FLASH, EEPROM et OPTION BYTE du STM8.

BootLoader Enable under Option Byte of STVP
BootLoader Enable under Option Byte of STVP

Ensuite, modifiez l'OPTION BYTE pour activer le BootLoader. Dans le logiciel STVP, allez dans l'onglet OPTION BYTE et localisez l'option BootLoader, généralement en bas de la liste OPTION BYTE. Cliquez sur « BootLoader Disable » (Désactiver le BootLoader) et sélectionnez « BootLoader Enable » (Activer le BootLoader) dans le menu déroulant. Une fois ce paramètre défini, cliquez sur « Program Current Tab » (Programmer l'onglet actuel) ou « Program All Tabs » (Programmer tous les onglets) dans la barre d'outils pour écrire l'OPTION BYTE dans le microcontrôleur STM8, activant ainsi le BootLoader.

Utilisation d'un programme pour modifier OPTION BYTE

Pour activer le BootLoader via un programme, compilez le code suivant et gravez-le sur le STM8 à l'aide de 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. Configuration de l'environnement de développement

Environnement de développement STVD

Après compilation avec le compilateur Cosmic dans STVD, un fichier *.s19 est généré par défaut. Ce fichier peut être directement flashé dans le microcontrôleur STM8 à l'aide du logiciel Flash Loader Demonstrator. Le logiciel prend également en charge le flashage des fichiers *.hex et *.bin. Vous trouverez ci-dessous la procédure à suivre pour configurer STVD afin de générer ces trois formats.

  1. Ouvrez le fichier de projet STVD et accédez aux propriétés du projet.
  2. Sélectionnez l'onglet Post-Build comme indiqué ci-dessous.
Adding .hex and .bin Commands to STVD under the Project Settings Post Build
Adding .hex and .bin Commands to STVD under the Project Settings Post-Build

Dans la zone de texte Commandes, ajoutez les commandes suivantes après celles qui existent déjà :

				
					chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8

				
			

Cliquez sur OK pour confirmer. Après la compilation, trois formats de fichiers différents seront générés.

Environnement de développement IAR

L'environnement de développement IAR n'utilise pas le compilateur Cosmic, il ne peut donc pas générer de fichiers *.s19. Cependant, il peut générer les deux autres formats. Pour configurer cela dans IAR :

  1. Ouvrez le fichier de projet IAR et accédez aux propriétés du projet.
  2. Sélectionnez l'onglet Convertisseur de sortie.
Setting the Output Converter in IAR Embedded Workbench IDE
Setting the Output Converter in IAR Embedded Workbench IDE

Ensuite, cochez l'option Générer une sortie supplémentaire. Dans le menu déroulant Format de sortie, sélectionnez Intel étendu pour générer un fichier *.hex ou Binaire pour générer un fichier *.bin. Sélectionnez l'option Remplacer la valeur par défaut et saisissez le nom et le format de fichier souhaités dans la zone de texte. Cliquez sur OK pour confirmer. Après la compilation, le format de fichier choisi sera généré.

3. Programmation avec Flash Loader Demonstrator

Flash Loader Demonstrator est un outil de téléchargement ISP de ST qui peut être utilisé pour programmer des microcontrôleurs STM32 ou STM8 via UART. Il prend en charge le flashage de fichiers *.s19, *.hex et *.bin. Voici comment l'utiliser pour programmer le microcontrôleur STM8 :

  1. Connectez la carte de développement STM8 à l'ordinateur via UART et installez le logiciel Flash Loader Demonstrator. Après l'installation, ouvrez le logiciel et l'interface principale apparaîtra.
  2. Sélectionnez le port UART approprié connecté à la carte de développement STM8 dans le menu déroulant Port Name.
  3. Dans le menu déroulant Echo, sélectionnez Echo Mode pour STM8S ou Disable pour STM8L.
Select the communication port and device for STM8 development board
Select-the-communication-port-and-device-for-STM8-development-board

Ensuite, réinitialisez la carte de développement STM8 et cliquez rapidement sur le bouton Suivant. Vous devez cliquer dans un délai d'une seconde pour vous assurer que le Flash Loader Demonstrator peut recevoir les données du BootLoader du STM8. Si l'opération réussit, le logiciel passe à l'écran de sélection du dispositif STM8.

Le type d'appareil est déterminé par la puce STM8 et la taille de sa mémoire FLASH interne. Pour les microcontrôleurs STM8S, sélectionnez STM8_XXK dans le menu déroulant. Pour les STM8L, sélectionnez STM8L_XXK. Sur la base du STM8S105C6 de notre carte de développement, qui dispose d'une mémoire FLASH interne de 32 Ko, choisissez STM8_32K dans le menu déroulant.

Download Program to STM8 by Flash Loader Demonstrator
Download-Program-to-STM8-by-Flash-Loader-Demonstrator

Cliquez ensuite sur Suivant, et le logiciel vous invitera à sélectionner le fichier à flasher. Dans la zone Télécharger à partir du fichier, recherchez le chemin d'accès au fichier du programme à flasher. Cliquez sur Suivant, et le fichier sera écrit dans la mémoire FLASH interne du microcontrôleur STM8. Une fois le flashage terminé, le logiciel affichera le message « Téléchargement terminé avec succès ».

Enfin, cliquez sur Fermer pour quitter le logiciel Flash Loader Demonstrator. Réinitialisez la carte de développement STM8, et le microcontrôleur exécutera le programme selon le flux défini. Notez que le programme est copié dans la mémoire FLASH, et que vous devez réinitialiser le dispositif pour que le pointeur passe au programme utilisateur et commence l'exécution. Si vous souhaitez que le programme s'exécute automatiquement après le flashage, cochez l'option Passer au programme utilisateur.

Applications typiques

  • Automobile : unités de commande, capteurs et écrans.
  • Industrie : contrôle des processus, systèmes d'automatisation et contrôleurs de moteurs.
  • Électronique grand public : appareils intelligents, télécommandes et petits appareils électroménagers.
  • Domotique : systèmes domotiques, compteurs d'énergie et systèmes de sécurité.

Part à:

Retour en haut

Instant Quote