Überblick
Der STM8S903K3 ist ein 8-Bit-Mikrocontroller von STMicroelectronics, der zur STM8S-Serie gehört. Diese Serie von Mikrocontrollern ist aufgrund ihrer hohen Leistung, Robustheit und Kosteneffizienz auf dem Markt sehr beliebt. Der STM8S903K3 eignet sich besonders für eine Vielzahl von Anwendungen in der industriellen Steuerung und in Haushaltsgeräten, da er zur Senkung der Systemkosten und zur Verkürzung der Anwendungsentwicklungszyklen beiträgt.
Wichtigste Merkmale:
- Hohe Leistung: Basierend auf dem STM8-Kern der nächsten Generation bietet er fortschrittliche Verarbeitungsfunktionen.
- Geringer Stromverbrauch: Verfügt über mehrere Energiesparmodi, darunter Warte-, Aktivstopp- und Stoppmodi, sowie die Möglichkeit, Peripherie-Taktgeber einzeln zu deaktivieren.
- Hohe Integration: Integriert einen echten Daten-EEPROM mit bis zu 300.000 Schreib-/Löschzyklen, einen internen Taktoszillator, einen Watchdog-Timer und eine Power-On-Reset-Funktion.
- Takt-Sicherheitssystem: Enthält einen Taktmonitor, um einen stabilen Betrieb des Systems zu gewährleisten.
- Interrupt-Management: Ausgestattet mit einem verschachtelten Interrupt-Controller, der bis zu 32 Interrupts und 28 externe Interrupts unterstützt.
- Timer: Enthält erweiterte Steuerungstimer, Allzweck-Timer und Auto-Wake-up-Timer.
- Kommunikationsschnittstellen: Unterstützt verschiedene Kommunikationsprotokolle wie I2C, IrDA, LIN-Bus, SPI, UART/USART.
- Betriebsspannung: 2,95 bis 5,5 V, bietet Flexibilität für verschiedene Stromversorgungsumgebungen.
- Temperaturbereich: Der Betriebstemperaturbereich reicht von -40 °C bis 85 °C, wodurch er für eine Vielzahl von Umgebungsbedingungen geeignet ist.
Anwendungsbeispiele:
Aufgrund seiner hohen Leistung und niedrigen Kosten wird der STM8S903K3 in verschiedenen Bereichen häufig eingesetzt. Beispielsweise dient er in Steuerungsdesigns für Elektrofahrzeuge als Hauptsteuerchip für den Antrieb sensorloser bürstenloser Gleichstrommotoren, wodurch die Motorkosten gesenkt und die Stabilität der Steuerung verbessert werden.
Programmierung des STM8S903K3 mit STVD und STVP
In diesem Beispiel stellen wir Ihnen das STM8S903K3 UART-Programmier-Tutorial vor, das auf ST Visual Develop und ST Visual Programmer basiert, von der Konfiguration der Umgebung und der Projekterstellung bis hin zur Kompilierung und zum Testen.
Erforderliche Werkzeuge
Hardware:
- STM8S903K3-Mikrocontroller
- ST-Link-Debugger/Programmiergerät
- Zielplatine (optional)
- Serielle UART-Kommunikationsschnittstelle (optional)
Software:
- ST Visual Develop (STVD) (IDE-Tool zum Schreiben, Kompilieren und Debuggen)
- ST Visual Programmer (STVP) (Programmierwerkzeug)
- ST-Link-USB-Treiber
- STM8 Cosmic Compiler Toolchain (Erstellen des Projekts und Generieren der HEX-Datei)
- Terminalemulator-Software (optional)
Schritt-für-Schritt-Prozess
1. Neuen Arbeitsbereich in ST Visual Develop erstellen
Öffnen Sie ST Visual, entwickeln Sie und erstellen Sie einen neuen Arbeitsbereich. Dieser dient als Container für Ihre Projektdateien und Konfigurationen.
2. Neuen Arbeitsbereich und neues Projekt erstellen
Erstellen Sie innerhalb des Arbeitsbereichs ein neues Projekt. Dieses dient als Hauptentwicklungsumgebung, in der Sie Ihren Code schreiben und kompilieren werden.
3. Festlegen des Dateinamens und Speicherorts des Arbeitsbereichs
Geben Sie den Dateinamen und den Speicherort an, an dem der Arbeitsbereich gespeichert werden soll. Wählen Sie ein geeignetes Verzeichnis auf Ihrem Computer, um die Projektdateien zu speichern.
4. Neues Projekt-Toolchain STM8 Cosmic
Wählen Sie die STM8 Cosmic-Toolchain für das Projekt aus. Die Cosmic-Toolchain wird verwendet, um den Code zu kompilieren und die ausführbare Datei für den STM8-Mikrocontroller zu generieren.
5. Wählen Sie MCU STM8S903K3
Wählen Sie in den Projekteinstellungen den Mikrocontroller (MCU) STM8S903K3 als Zielgerät aus. Dadurch wird sichergestellt, dass das Projekt für die von Ihnen verwendete Hardware korrekt konfiguriert ist.
6. Hinzufügen von UART-Code zur Datei „main.c“
Fügen Sie in der Datei „main.c” Ihres Projekts den folgenden UART-Code hinzu, um die serielle Kommunikation zu aktivieren. Dazu gehört die Konfiguration der UART-Einstellungen und -Funktionen für die Übertragung und den Empfang von Daten.
#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
}
}
Nachdem wir den Code main.c hinzugefügt haben, können wir die Header-Datei stm8s903k3.h im Ordner „Include Files” des Projekts hinzufügen. Diese Datei enthält die erforderlichen Definitionen und Konfigurationen für die MCU STM8S903K3, sodass der Compiler die gerätespezifischen Register und Funktionen erkennen kann.
7. Projekt erstellen
Sobald der Code geschrieben ist, erstellen Sie das Projekt, um den Quellcode in Maschinencode zu kompilieren, den der STM8S903K3 verstehen kann. Dieser Schritt überprüft den Code auf Fehler und generiert eine Ausgabedatei (in der Regel eine .hex-Datei).
8. Debug-Ziel Swim ST-Link
Richten Sie die Debugging-Umgebung ein, indem Sie den ST-Link-Debugger für die Kommunikation mit der Ziel-MCU auswählen. Der ST-Link ist ein USB-basierter Programmierer/Debugger, der zum Laden von Code auf den STM8-Mikrocontroller und zum Debuggen verwendet wird.
9. Projekt-Einstellungen-Befehle in Post-Build bearbeiten
Bearbeiten Sie in den Projekteinstellungen die Befehle nach dem Erstellen, um alle erforderlichen Schritte zu automatisieren, die nach dem Erstellen durchgeführt werden sollen, z. B. das Kopieren der Ausgabedatei oder die Durchführung zusätzlicher Verarbeitungsschritte.
10. Textdatei speichern und Projekt erneut erstellen
Speichern Sie das Projekt und alle Textdateien, die Konfigurationen oder Build-Befehle enthalten. Nach dem Speichern erstellen Sie das Projekt neu, um sicherzustellen, dass alle Einstellungen korrekt angewendet werden und die Ausgabedatei generiert wird.
11. Konfigurieren Sie STM8S903K3 ST-LINK für ST Visual Programmer STM8
Richten Sie den ST-Link mit dem Mikrocontroller STM8S903K3 für die Programmierung ein. Der ST-Link sollte sowohl mit dem Computer als auch mit dem STM8S903K3 verbunden sein, um die Programmierung und Fehlerbehebung zu erleichtern.
12. Programmierung über ST Visual Programmer
Verwenden Sie die Software ST Visual Programmer, um die uart.HEX Datei, die durch den Build-Prozess generiert wurde. Diese Datei enthält den kompilierten Code für Ihren STM8S903K3-Mikrocontroller. Wählen Sie die entsprechenden Programmieroptionen im ST Visual Programmer aus und programmieren Sie den Mikrocontroller mit der generierten .hex Datei.




