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.
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.
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.
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.
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.
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.
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.
#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).
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.
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.
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é.
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.
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 .




