Der Mikrocontroller STM8S105C6 ist eine robuste, zuverlässige und kostengünstige Lösung für Embedded-System-Designs und bietet hervorragende Leistung, Flexibilität bei der Peripherieunterstützung und geringen Stromverbrauch. Ob für Industrie-, Automobil- oder Unterhaltungselektronikanwendungen – dieser Mikrocontroller bietet alle wesentlichen Funktionen, die für die Entwicklung hochwertiger Embedded-Produkte erforderlich sind. In diesem Artikel stellen wir den Mikrocontroller STM8S105C6 vor und zeigen, wie man ihn über UART programmiert.
STM8S105C6 Einführung
Der STM8S105C6 gehört zur STM8S-Familie von Mikrocontrollern, die von STMicroelectronics hergestellt werden. Er basiert auf der STM8-Kernarchitektur und ist für eine Vielzahl von Anwendungen in eingebetteten Systemen konzipiert, beispielsweise in der Automobilindustrie, der industriellen Steuerung, der Hausautomation und der Unterhaltungselektronik. Der STM8S105C6 vereint hohe Leistung, geringen Stromverbrauch und eine Vielzahl von Peripheriegeräten und ist damit eine vielseitige und kostengünstige Lösung für viele eingebettete Anwendungen.
Wichtigste Merkmale des STM8S105C6
- Kern: 8-Bit-STM8-Kern mit hoher Verarbeitungsgeschwindigkeit.
- Taktfrequenz: Der Mikrocontroller arbeitet mit einer maximalen Frequenz von 16 MHz.
- Speicher:
- Flash-Speicher: 32 KB systemintern programmierbarer Flash-Speicher.
- RAM: 2 KB SRAM für die Datenspeicherung.
- Peripheriegeräte:
- E/A-Ports: 16 universelle E/A-Pins.
- Timer: 2 universelle 16-Bit-Timer, 1 Watchdog-Timer.
- Kommunikationsschnittstellen: UART (Universal Asynchronous Receiver-Transmitter) für serielle Kommunikation, SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit).
- Analoge Funktionen: 1 ADC (Analog-Digital-Wandler) mit 8 Kanälen, 10-Bit-Auflösung.
- PWM (Pulsweitenmodulation): Kann PWM-Signale zur Steuerung von Motoren oder LEDs erzeugen.
- Spannungsbereich: Arbeitet in einem Spannungsbereich von 2,95 V bis 5,5 V und ist somit für verschiedene Stromversorgungskonfigurationen geeignet.
- Geringer Stromverbrauch: Optimiert für den Betrieb mit geringem Stromverbrauch, mit mehreren Energiesparmodi wie Sleep, Wait und Halt.
- Entwicklungswerkzeuge: Der STM8S105C6 wird von einer Vielzahl von Entwicklungswerkzeugen unterstützt, darunter STVD (STM8 Development Environment) von STMicroelectronics, IAR Embedded Workbench und andere IDEs (Integrated Development Environments) von Drittanbietern.
- Gehäuseoptionen: Der STM8S105C6 ist in einem 32-poligen LQFP-Gehäuse (Low-profile Quad Flat Package) erhältlich, wodurch er kompakt ist und sich leicht in eine Vielzahl von Designs integrieren lässt.
STM8S105C6 Technische Daten
| Feature | Specification |
|---|---|
| Core | 8-bit STM8 core |
| Clock Speed | Up to 16 MHz |
| Flash Memory | 32KB (in-system programmable) |
| SRAM | 2KB |
| Voltage Range | 2.95V to 5.5V |
| Timers | 2x 16-bit general-purpose timers |
| Watchdog Timer | Yes |
| Communication Interfaces | UART, SPI, I2C |
| Analog Features | 8-channel, 10-bit ADC |
| PWM Channels | Yes |
| Operating Temperature Range | -40°C to 125°C |
| Package Type | 32-pin LQFP |
STM8S105C6 Pinbelegung

STM8S105C6 Blockdiagramm

Wie man STM8 über UART programmiert
Zusätzlich zur Verwendung des STLINK-Programmiergeräts kann der Mikrocontroller STM8S105C6 über seine UART-Schnittstelle mit der Software Flash Loader Demonstrator programmiert werden, um kompilierte Programme auf den Mikrocontroller zu schreiben.
Erforderliche Tools:
- STVD-STM8 (Version: 42.0.0)
- IAR Embedded Workbench IDE (Version: 9.40.2)
- Flash Loader Demonstrator (Version: 2.8.0)
- STM8S105C6-Entwicklungsboard
Zur detaillierten Erläuterung des Programmiervorgangs haben wir diesen in drei Schritte unterteilt:
1. Aktivieren des Bootloaders
Vor der Programmierung über UART muss die Option „BootLoader Enable” auf dem Chip aktiviert werden. Standardmäßig ist diese Option bei neuen Chips aktiviert. Sobald jedoch ein Programm geflasht wird, wird sie deaktiviert. Es gibt zwei Methoden, um den BootLoader zu aktivieren:
- Verwenden Sie die Software ST LINK und STVP (ST Visual Programmer), um das OPTION BYTE des Chips zu ändern.
- Ändern des OPTION BYTE über ein Programm.
Verwendung von ST LINK zum Ändern des OPTION BYTE
Verbinden Sie zunächst ST LINK, das STM8-Entwicklungsboard und den Computer miteinander und öffnen Sie die Software STVP (ST Visual Programmer). STVP wird automatisch installiert, wenn die STVD-Entwicklungsumgebung eingerichtet wird. Es handelt sich um ein voll ausgestattetes grafisches Programmierwerkzeug, das zum Programmieren des Flash-Speichers von ST-Mikrocontrollern verwendet wird und Ihnen das Lesen, Bearbeiten und Beschreiben des FLASH-, EEPROM- und OPTION BYTE-Speichers des STM8 ermöglicht.

Ändern Sie als Nächstes das OPTION BYTE, um den BootLoader zu aktivieren. Gehen Sie in der STVP-Software zur Registerkarte OPTION BYTE und suchen Sie die Option BootLoader, die sich normalerweise am Ende der OPTION BYTE-Liste befindet. Klicken Sie auf „BootLoader Disable“ und wählen Sie „BootLoader Enable“ aus dem Dropdown-Menü. Klicken Sie anschließend in der Symbolleiste auf „Program Current Tab“ oder „Program All Tabs“, um das OPTION BYTE in den STM8-Mikrocontroller zu schreiben und so den BootLoader zu aktivieren.
OPTION BYTE mit einem Programm ändern
Um den BootLoader über ein Programm zu aktivieren, kompilieren Sie den folgenden Code und brennen Sie ihn mit ST LINK auf den STM8:
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. Einrichtung der Entwicklungsumgebung
STVD-Entwicklungsumgebung
Nach der Kompilierung mit dem Cosmic-Compiler in STVD wird standardmäßig eine *.s19-Datei generiert. Diese Datei kann mit der Flash Loader Demonstrator-Software direkt in den STM8-Mikrocontroller geflasht werden. Die Software unterstützt auch das Flashen von *.hex- und *.bin-Dateien. Im Folgenden wird beschrieben, wie Sie STVD für die Generierung dieser drei Formate konfigurieren.
- Öffnen Sie die STVD-Projektdatei und gehen Sie zu den Projekteigenschaften.
- Wählen Sie die Registerkarte „Post-Build“ wie unten gezeigt.

Fügen Sie im Textfeld „Befehle“ nach dem vorhandenen Befehl die folgenden Befehle hinzu:
chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8
Klicken Sie zur Bestätigung auf „OK“. Nach der Kompilierung werden drei verschiedene Dateiformate generiert.
IAR-Entwicklungsumgebung
Die IAR-Entwicklungsumgebung verwendet nicht den Cosmic-Compiler und kann daher keine *.s19-Dateien generieren. Sie kann jedoch die beiden anderen Formate generieren. So konfigurieren Sie dies in IAR:
- Öffnen Sie die IAR-Projektdatei und gehen Sie zu den Projekteigenschaften.
- Wählen Sie die Registerkarte „Ausgabekonverter“.

Aktivieren Sie anschließend die Option „Zusätzliche Ausgabe generieren“. Wählen Sie im Dropdown-Menü „Ausgabeformat“ die Option „Intel Extended“, um eine *.hex-Datei zu generieren, oder „Binär“, um eine *.bin-Datei zu generieren. Wählen Sie die Option „Standard überschreiben“ und geben Sie den gewünschten Dateinamen und das gewünschte Format in das Textfeld ein. Klicken Sie zur Bestätigung auf „OK“. Nach der Kompilierung wird das ausgewählte Dateiformat generiert.
3. Programmierung mit Flash Loader Demonstrator
Flash Loader Demonstrator ist ein ISP-Download-Tool von ST, mit dem STM32- oder STM8-Mikrocontroller über UART programmiert werden können. Es unterstützt das Flashen von *.s19-, *.hex- und *.bin-Dateien. Im Folgenden wird beschrieben, wie Sie damit den STM8-Mikrocontroller programmieren können:
- Verbinden Sie die STM8-Entwicklungsplatine über UART mit dem Computer und installieren Sie die Flash Loader Demonstrator-Software. Öffnen Sie nach der Installation die Software, woraufhin die Hauptoberfläche angezeigt wird.
- Wählen Sie unter „Port Name“ den entsprechenden UART-Port aus, der mit dem STM8-Entwicklungsboard verbunden ist.
- Wählen Sie im Dropdown-Menü „Echo“ den Echo-Modus für STM8S oder „Disable“ für STM8L.

Setzen Sie anschließend das STM8-Entwicklungsboard zurück und klicken Sie schnell auf die Schaltfläche „Weiter“. Sie müssen innerhalb einer Sekunde klicken, um sicherzustellen, dass der Flash Loader Demonstrator Daten vom Bootloader des STM8 empfangen kann. Bei Erfolg wechselt die Software zum Bildschirm für die Auswahl des STM8-Geräts.
Der Gerätetyp wird durch den STM8-Chip und dessen interne FLASH-Größe bestimmt. Für STM8S-Mikrocontroller wählen Sie STM8_XXK aus der Dropdown-Liste aus. Für STM8L wählen Sie STM8L_XXK. Basierend auf dem STM8S105C6 auf unserem Entwicklungsboard, das über 32 KB internen FLASH-Speicher verfügt, wählen Sie STM8_32K aus der Dropdown-Liste aus.

Klicken Sie anschließend auf „Weiter“, woraufhin Sie von der Software aufgefordert werden, die zu flashende Datei auszuwählen. Navigieren Sie im Feld „Von Datei herunterladen“ zum Dateipfad des zu flashenden Programms. Klicken Sie auf „Weiter“, woraufhin die Datei in den internen FLASH-Speicher des STM8-Mikrocontrollers geschrieben wird. Nach erfolgreichem Flashen zeigt die Software die Meldung „Downloadvorgang erfolgreich abgeschlossen“ an.
Klicken Sie abschließend auf „Close“, um die Flash Loader Demonstrator-Software zu beenden. Setzen Sie das STM8-Entwicklungsboard zurück, und der Mikrocontroller führt das Programm gemäß dem definierten Ablauf aus. Beachten Sie, dass das Programm in den FLASH-Speicher kopiert wird und Sie das Gerät zurücksetzen müssen, damit der Zeiger zum Benutzerprogramm springt und die Ausführung beginnt. Wenn Sie möchten, dass das Programm nach dem Flashen automatisch ausgeführt wird, aktivieren Sie die Option „Jump to the user program“ (Zum Benutzerprogramm springen).
Typische Anwendungen
- Automobilindustrie: Steuergeräte, Sensoren und Anzeigen.
- Industrie: Prozesssteuerung, Automatisierungssysteme und Motorsteuerungen.
- Unterhaltungselektronik: Intelligente Geräte, Fernbedienungen und Kleingeräte.
- Hausautomation: Smart-Home-Systeme, Energiezähler und Sicherheitssysteme.




