Microcontrôleur STM8S903K3 : caractéristiques, spécifications et tutoriel STVD STM8

Aperçu

Le STM8S903K3 est un microcontrôleur 8 bits produit par STMicroelectronics, qui fait partie de la série STM8S. Cette série de microcontrôleurs est très appréciée sur le marché en raison de ses performances élevées, de sa robustesse et de son rapport qualité-prix. Le STM8S903K3 est particulièrement adapté à une grande variété d'applications de contrôle industriel et d'appareils électroménagers, car il permet de réduire les coûts du système et de raccourcir les cycles de développement des applications.

Caractéristiques principales :

  • Haute performance : basé sur le cœur STM8 de nouvelle génération, il offre des capacités de traitement avancées.
  • Faible consommation d'énergie : dispose de plusieurs modes à faible consommation, notamment les modes Attente, Arrêt actif et Arrêt, ainsi que la possibilité de désactiver individuellement les horloges périphériques.
  • Haute intégration : intègre une véritable EEPROM de données avec jusqu'à 300 000 cycles d'écriture/effacement, un oscillateur d'horloge interne, un temporisateur de surveillance et une fonctionnalité de réinitialisation à la mise sous tension.
  • Système de sécurité d'horloge : comprend un moniteur d'horloge pour garantir le fonctionnement stable du système.
  • Gestion des interruptions : équipé d'un contrôleur d'interruptions imbriquées, prenant en charge jusqu'à 32 interruptions et 28 interruptions externes.
  • Minuteries : comprend des minuteries de contrôle avancées, des minuteries à usage général et des minuteries de réveil automatique.
  • Interfaces de communication : prend en charge divers protocoles de communication tels que I2C, IrDA, bus LIN, SPI, UART/USART.
  • Tension de fonctionnement : 2,95 à 5,5 V, offrant une grande flexibilité pour différents environnements d'alimentation.
  • Plage de température : plage de température de fonctionnement de -40 °C à 85 °C, ce qui le rend adapté à un large éventail de conditions environnementales.

Brochage :

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Schéma fonctionnel :

STM8S903K3 block diagram
STM8S903K3 block diagram

Exemples d'application :

En raison de ses performances élevées et de son faible coût, le STM8S903K3 est largement utilisé dans divers domaines. Par exemple, dans la conception de contrôleurs pour véhicules électriques, il sert de puce de commande principale pour piloter des moteurs à courant continu sans balais et sans capteur, ce qui réduit le coût des moteurs et améliore la stabilité du contrôleur.

Programmation du STM8S903K3 avec STVD et STVP

Dans cet exemple, nous présenterons le tutoriel de programmation UART STM8S903K3, basé sur ST Visual Develop et ST Visual Programmer, depuis la configuration de l'environnement et la création du projet jusqu'à la compilation et les tests.

Outils requis

Matériel :

  • Microcontrôleur STM8S903K3
  • Débogueur/programmeur ST-Link
  • Carte cible (en option)
  • Interface de communication série UART (en option)

Logiciel :

  • ST Visual Develop (STVD) (outil IDE pour l'écriture, la compilation et le débogage)
  • ST Visual Programmer (STVP) (outil de programmation)
  • Pilote USB ST-Link
  •  Chaîne d'outils de compilation STM8 Cosmic (construction du projet et génération du fichier HEX)
  • Logiciel d'émulation de terminal (facultatif)

Processus étape par étape

1. Créer un nouvel espace de travail dans ST Visual Develop

Ouvrez ST Visual Develop et créez un nouvel espace de travail. Celui-ci servira de conteneur pour vos fichiers de projet et vos configurations.

Create new workspace on ST Visual Develop
Create new workspace on ST Visual Develop

2. Créer un nouvel espace de travail et un nouveau projet

Dans l'espace de travail, créez un nouveau projet. Celui-ci servira d'environnement de développement principal dans lequel vous écrirez et compilerez votre code.

Create new workspace and project
Create new workspace and project

3. Définition du nom et de l'emplacement du fichier de l'espace de travail

Spécifiez le nom du fichier et l'emplacement où l'espace de travail sera enregistré. Choisissez un répertoire approprié sur votre ordinateur pour stocker les fichiers du projet.

Setting workspace filename and location
Setting workspace filename and location

4. Nouvelle chaîne d'outils de projet STM8 Cosmic

Sélectionnez la chaîne d'outils STM8 Cosmic pour le projet. La chaîne d'outils Cosmic est utilisée pour compiler le code et générer le fichier exécutable pour le microcontrôleur STM8.

New project toolchain STM8 Cosmic
New project toolchain STM8 Cosmic
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers

5. Sélectionnez le microcontrôleur STM8S903K3

Dans les paramètres du projet, choisissez le microcontrôleur (MCU) STM8S903K3 comme périphérique cible. Cela garantit que le projet est correctement configuré pour le matériel spécifique avec lequel vous travaillez.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

6. Ajout du code UART au fichier main.c

Dans le fichier main.c de votre projet, ajoutez le code UART ci-dessous pour activer la communication série. Cela inclut la configuration des paramètres UART et des fonctions pour la transmission et la réception de données.

Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Détails du code comme suit :
				
					#include "stm8s903k3.h"
#include "stdio.h"

#define _COSMIC_

/*
  Since different compilers (RAISONANCE, COSMIC, IAR) have slightly different parameter and return value conventions for putchar and getchar,
  we use macros to define them accordingly. These macros are automatically added by the compiler.
*/

#ifdef _RAISONANCE_
 #define PUTCHAR_PROTOTYPE int putchar (char c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#elif defined (_COSMIC_)
 #define PUTCHAR_PROTOTYPE char putchar (char c)
 #define GETCHAR_PROTOTYPE char getchar (void)
#else /* _IAR_ */
 #define PUTCHAR_PROTOTYPE int putchar (int c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#endif /* _RAISONANCE_ */

// Function to send a character to UART1
PUTCHAR_PROTOTYPE
{
    UART1_DR = c;              // Send a character 'c' to UART1 data register
    while (!(UART1_SR & 0x40)); // Wait for transmission to complete (TXE flag)
    return (c);
}

// Function to receive a character from UART1
GETCHAR_PROTOTYPE
{
    #ifdef _COSMIC_
      char c = 0;
    #else
      int c = 0;
    #endif
    // Wait for new data to be received (RXNE flag)
    while (!(UART1_SR & 0x20));  
    // Read received data
    c = UART1_DR;
    return (c);
}

// Clock initialization function
void CLK_Init(void)
{
    // Enable the internal high-speed oscillator (HSI)
    CLK_ICKR |= 0x01; 
    CLK_CKDIVR = 0x00; // No clock division (16MHz)
    while (!(CLK_ICKR & 0x02)); // Wait for HSI to be ready
    CLK_SWR = 0xE1; // Use HSI as the system clock source
}

// UART1 initialization function
void UART1_Init(void)
{
    UART1_CR3 = 0x00; // Disable LIN mode, one stop bit, no SCK
    UART1_CR2 = 0x00; // Disable TX interrupt, RX interrupt, and others
    UART1_CR3 = 0x00; // Disable interrupts, no break frames
    UART1_BRR2 = 0x02; // Set baud rate (9600)
    UART1_BRR1 = 0x68; // Set baud rate (9600)
    UART1_CR2 = 0x0C; // Enable TX and RX
}

// Simple delay function (not very accurate, could be improved with a timer)
void delay(unsigned int x)
{
    unsigned int i, j;
    for (i = x; i > 0; i--)
        for (j = 300; j > 0; j--);
}

void main()
{
    unsigned char c;
    CLK_Init();      // Initialize system clock
    UART1_Init();    // Initialize UART1

    while(1)
    {
        printf("\n\rPlease enter a key: ");
        while (!(UART1_SR & 0x20)); // Wait for data to be received (RXNE flag)
        c = UART1_DR;  // Read received character
        printf("\n\rYou entered: %c.", c);  // Send the received character back to the user
    }
}

				
			

Après avoir ajouté le code main.c, nous pouvons ajouter le fichier d'en-tête stm8s903k3.h dans le dossier « Include Files » du projet. Ce fichier contient les définitions et configurations nécessaires pour le microcontrôleur STM8S903K3, permettant au compilateur de reconnaître les registres et fonctions spécifiques à l'appareil.

7. Construire le projet

Une fois le code écrit, compilez le projet afin de convertir le code source en code machine compréhensible par le STM8S903K3. Cette étape permet de vérifier les erreurs et de générer un fichier de sortie (généralement un fichier .hex).

Build the project by ST Visual Develop
Build the project by ST Visual Develop

8. Déboguer la cible Swim ST-Link

Configurez l'environnement de débogage en sélectionnant le débogueur ST-Link pour la communication avec le microcontrôleur cible. Le ST-Link est un programmateur/débogueur USB utilisé pour charger du code sur le microcontrôleur STM8 et le déboguer.

Debug Target Swim ST Link
Debug Target Swim ST-Link

9. Modifier les commandes des paramètres du projet après la compilation

Dans les paramètres du projet, modifiez les commandes post-compilation afin d'automatiser toutes les étapes nécessaires qui doivent être effectuées après la compilation, telles que la copie du fichier de sortie ou l'exécution d'un traitement supplémentaire.

Project settings commands edit of Post Build
Project settings commands edit of Post-Build

10. Enregistrez le fichier texte et reconstruit le projet.

Enregistrez le projet et tous les fichiers texte contenant des configurations ou des commandes de compilation. Après l'enregistrement, recompilez le projet pour vous assurer que tous les paramètres sont correctement appliqués et que le fichier de sortie est généré.

Save text file and build the project again
Save text file and build the project again

11. Configurer STM8S903K3 ST-LINK pour ST Visual Programmer STM8

Configurez le ST-Link avec le microcontrôleur STM8S903K3 pour la programmation. Le ST-Link doit être connecté à la fois à l'ordinateur et au STM8S903K3 afin de faciliter la programmation et le débogage.

Configure STM8S903K3 ST LINK for ST Visual Programmer STM8
Configure STM8S903K3 ST-LINK for ST Visual Programmer STM8

12. Programmation via ST Visual Programmer

Utilisez le logiciel ST Visual Programmer pour ouvrir le uart.HEX fichier généré par le processus de compilation. Ce fichier contient le code compilé pour votre microcontrôleur STM8S903K3. Sélectionnez les options de programmation appropriées dans ST Visual Programmer et programmez le microcontrôleur avec le fichier généré .hex .

Open the uart.HEX file in ST Visual Programmer and Program all tabs
Open the uart.HEX file in ST Visual Programmer and Program all tabs

Part à:

Retour en haut

Instant Quote