STM8S903K3-Mikrocontroller: Funktionen, Spezifikationen und STVD STM8-Tutorial

Ü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.

Pinbelegung:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Blockdiagramm:

STM8S903K3 block diagram
STM8S903K3 block diagram

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.

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

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.

Create new workspace and project
Create new workspace and project

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.

Setting workspace filename and location
Setting workspace filename and location

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.

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. 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.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

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.

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
Details Code wie folgt:
				
					#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).

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

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.

Debug Target Swim ST Link
Debug Target Swim ST-Link

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.

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

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.

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

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.

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

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.

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

Teilen auf:

Nach oben scrollen

Instant Quote