Mikrokontroler STM8S105K4, yang terkenal karena efisiensi dan keserbagunaannya, merupakan pilihan yang tepat untuk aplikasi tertanam pada perangkat elektronik konsumen dan sistem industri. Artikel ini memberikan gambaran umum mengenai fitur-fitur utamanya, konfigurasi pin, dan diagram blok, serta panduan langkah demi langkah untuk menyiapkan proyek di IAR Embedded Workbench. Dengan kode contoh untuk kontrol GPIO dasar serta petunjuk pemrograman dan debugging, panduan ini akan membantu Anda memulai penggunaan STM8S105K4 dengan cepat dan efektif.
Gambaran Umum
STM8S105K4 adalah mikrokontroler 8-bit dari STMicroelectronics, yang merupakan bagian dari keluarga STM8. Mikrokontroler ini dirancang untuk berbagai macam aplikasi, dengan menawarkan keseimbangan antara performa, efisiensi daya, dan harga yang terjangkau. Berkat periferal canggih dan EEPROM terintegrasi yang dimilikinya, STM8S105K4 cocok untuk tugas-tugas kontrol umum dalam perangkat elektronik konsumen, sistem industri, dan lainnya.
Fitur dan Spesifikasi
- Inti: Inti STM8 8-bit dengan arsitektur Harvard, beroperasi pada kecepatan hingga 16 MHz.
- Memori:
- Memori flash: 16 KB
- RAM: 1 KB
- EEPROM: 640 byte
- Pengatur waktu:
- Pengatur waktu kontrol lanjutan 16-bit (TIM1)
- Timer serbaguna 16-bit (TIM2)
- Timer dasar 8-bit (TIM4)
- Antarmuka Komunikasi:
- Antarmuka UART, I²C, dan SPI untuk konektivitas yang serbaguna.
- Fitur Analog:
- ADC 10-bit dengan hingga 5 saluran
- Referensi tegangan internal untuk meningkatkan presisi analog
- GPIO:
- Banyak pin I/O dengan pengaturan pull-up, tipe output, dan kecepatan yang dapat diprogram
- Hingga 38 port I/O (tergantung pada paket)
- Tegangan Operasi: 2,95 V hingga 5,5 V
- Rentang Suhu: -40°C hingga +85°C (kelas industri)
- Kemasan: Tersedia dalam LQFP32 dan opsi kemasan kompak lainnya.
Konfigurasi Pin
STM8S105K4 menyediakan hingga 48 pin I/O tergantung pada jenis kemasannya, yang dapat dikonfigurasi untuk berbagai fungsi seperti input ADC, output PWM, UART, SPI, I²C, dan I/O digital serbaguna. GPIO utama meliputi:
- Port A (PA0 hingga PA7): Dapat dikonfigurasi untuk I/O digital dan fungsi alternatif.
- Port B (PB0 hingga PB7): Digunakan terutama untuk I/O dengan pin tertentu yang mendukung fungsi alternatif.
- Port C, D, dan E: Mendukung I/O tambahan, input analog, dan fungsi timer, termasuk pembangkitan PWM.

Setiap pin dapat dikonfigurasi secara terpisah sebagai input atau output, dengan dukungan untuk mode push-pull dan open-drain. Selain itu, pin-pin tersebut dilengkapi perlindungan ESD dan mampu menghasilkan arus keluaran tinggi untuk aplikasi penggerak LED dan relai.
Diagram Blok

Diagram blok STM8S105K4 mencakup:
- Inti: Inti STM8 dengan kontrol jam, penghitung program, dan ALU untuk pemrosesan 8-bit.
- Unit Memori:
- Memori flash untuk penyimpanan kode
- EEPROM untuk penyimpanan data
- SRAM untuk penggunaan umum
- Periferal:
- ADC untuk pemrosesan sinyal analog
- Timer (TIM1, TIM2, dan TIM4) untuk pengaturan waktu peristiwa, PWM, dan pembangkitan gelombang
- Antarmuka komunikasi (UART, SPI, dan I²C) untuk konektivitas dengan sensor, layar, dan modul lainnya
- Kontrol Sistem:
- Unit pembangkit jam dengan sumber jam internal dan eksternal
- Timer watchdog untuk keandalan sistem
- Unit manajemen daya dengan mode hemat daya
- Kontrol I/O: Konfigurasi dan pengelolaan GPIO untuk berinteraksi dengan perangkat eksternal
Arsitektur modular ini memungkinkan fleksibilitas dalam menangani berbagai tugas, mulai dari kontrol waktu nyata hingga komunikasi serial.
Aplikasi
Mikrokontroler STM8S105K4 sangat cocok untuk berbagai macam aplikasi, antara lain:
- Elektronik Konsumen: Peralatan rumah tangga, remote control, dan pengendalian layar
- Kontrol Industri: Kontrol motor, sistem HVAC, dan modul PLC
- Aplikasi Otomotif: Antarmuka sensor, kontrol dashboard, dan sistem pencahayaan
- Kesehatan: Perangkat medis, sistem pemantauan, dan peralatan kesehatan portabel
- Perangkat IoT: Sensor pintar, modul nirkabel, dan pengukuran energi
Dengan kombinasi fitur analog, digital, dan komunikasi, STM8S105K4 memungkinkan para perancang untuk menciptakan sistem tertanam yang efisien, serbaguna, dan hemat biaya di berbagai industri.
Membuat Proyek IAR untuk STM8S105K4
Dalam contoh ini, kita akan membuat proyek IAR untuk menyalakan LED menggunakan mikrokontroler STM8S105K4.
Alat yang Diperlukan
Komponen Perangkat Keras:
- Mikrokontroler STM8S105K4
- Debugger dan Programmer ST-LINK/V2
- Papan Pengembangan STM8S105K4 (opsional)
- LED dan Resistor (1KΩ)
- Papan prototipe dan kabel jumper
Alat Perangkat Lunak:
- IAR Embedded Workbench untuk STM8
- ST Visual Programmer (STVP)
Langkah-langkah untuk Membuat Proyek
Buat Folder Proyek:
- Buat folder bernama
test, dan di dalamnya, buat folder lain bernamauser.
- Buat folder bernama
Buka IAR Embedded Workbench:
- Buka IAR untuk STM8 (versi 9.40.2).
Buat Proyek Baru:
- Buka
Project->Create New Project. - Di kotak dialog, pilih
STM8 Series->Empty project, lalu klikOK. - Simpan
.ewpfile ditest/userdan beri namatest.
- Buka

Tambahkan Grup Proyek:
- Arahkan kursor ke menu dan klik
Project->Add Group. - Beri nama grup
user, lalu klikOK.
- Arahkan kursor ke menu dan klik

Buat File Utama:
- Buka
File->New->File, lalu simpan sebagaimain.c. - Tambahkan
main.ckeusergrup.
- Buka

Mengonfigurasi Lingkungan IAR
Opsi Proyek:
- Arahkan dan klik
Project->Options.
- Arahkan dan klik
Tentukan Perangkat Tujuan:
- Di
General Options->Target->Device, pilihSTM8S105K4(atau model perangkat spesifik Anda).
- Di

Konfigurasikan Jalur Include:
- Di
C/C++ Compiler->Preprocessor, tambahkan jalur"$PROJ_DIR$\..\user". - Sintaks ini menentukan jalur file include di dalam direktori proyek.
- Di

Pengaturan Debugger:
- Di
Debugger->Setup, aturDriverkeST-LINK. - Klik
OKuntuk menyimpan konfigurasi.
- Di

Tambahkan Kode dan Bangun Proyek:
- Di
main.c, masukkan kode berikut, lalu bukaProject->Rebuild All. - Jika Anda melihat
Total number of errors: 0danTotal number of warnings: 0, proyek telah dikonfigurasi dengan benar.
- Di

Sertakan Berkas Header:
- Pastikan berkas header
IOSTM8S105K4.htersedia di direktori instalasi IAR:Software (E:) > IAR for STM8 > arm > inc > ST.
- Pastikan berkas header

Menulis, Mengunduh, dan Memperbaiki Kesalahan Kode
Kode berikut mengaktifkan dan menonaktifkan LED yang terhubung ke pin PE5 menggunakan loop penundaan agar LED tersebut berkedip.
#include "iostm8s105k4.h" // Ensure this header file exists in your project
int main(void) {
int i, j; // Variables for delay loop
// Configure PE5 as an output pin
PE_DDR |= 0x20; // Set bit 5 of PE_DDR (PE5) to 1 to configure as output
PE_CR1 |= 0x20; // Set bit 5 of PE_CR1 to 1 for push-pull mode
PE_CR2 &= ~0x20; // Set bit 5 of PE_CR2 to 0 for low speed
// Main loop
while (1) {
PE_ODR ^= 0x20; // Toggle PE5 (connected to LED)
// Simple delay loop
for (i = 0; i < 100; i++) {
for (j = 0; j < 1000; j++) {
// Empty loop for delay
}
}
}
}
Koneksi Perangkat Keras
- PE5 → LED → Resistor 1K → Ground
Setelah mengunggah kode dan menjalankan program, Anda seharusnya melihat LED pada PE5 berkedip, yang menandakan bahwa pengaturan proyek telah selesai.
Mengendalikan Beeper Pasif Menggunakan STM8S105K4
Dalam contoh ini, pin PD4 pada mikrokontroler STM8S105K4 digunakan untuk menggerakkan bunyi bip pasif. Fungsi bunyi bip merupakan fungsi alternatif dari pin PD4. Dengan mengonfigurasi bit AFR7, kita dapat mengaktifkan fungsi alternatif untuk pin PD4, sehingga pin tersebut dapat menggerakkan bunyi bip.
Eksekusi Kode
/* Includes */
#include "user.h"
/* Function Prototypes */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre);
/* Main Function */
void main(void)
{
/* Clock, LED, and Timer Initialization */
HalCLK_Config();
HalLed_Init();
HalTimer1_Init();
// HalUART2_Init(); // Uncomment if UART is required
/* Buzzer Initialization */
HalBeep_Init(BEEP_FREQUENCY_2KHZ); // Initialize the buzzer at 2kHz
BEEP_Cmd(ENABLE); // Enable the buzzer
enableInterrupts(); // Enable interrupts
while (1)
{
// Main loop - insert additional code here if needed
}
}
/* Buzzer Initialization Function */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre)
{
BEEP_DeInit(); // Reset the BEEP registers to their default values
BEEP_Init(beep_fre); // Initialize the BEEP with the specified frequency
}
Pemrograman dan Pengaturan Fungsi Bunyi Peringatan PD4
- Tulis ulang program menggunakan ST-Link dan perangkat lunak STVP:
- Gunakan programmer ST-Link dan perangkat lunak STVP resmi untuk mem-flash berkas hex ke mikrokontroler.
- Langkah-langkah untuk Menginstal dan Konfigurasi di STVP:
- Langkah 1: Buka perangkat lunak STVP, pilih opsi "PROGRAM MEMORY", buka
File -> Open, dan temukan file hex yang telah disimpan. - Langkah 2: Pilih opsi "OPTION BYTE" dan ubah bit AFR7 untuk mengaktifkan fungsi alternatif pada PD4.
- Langkah 3: Di menu perangkat lunak, buka
Program -> All Tabsuntuk mem-flash baik program maupun byte opsi.
- Langkah 1: Buka perangkat lunak STVP, pilih opsi "PROGRAM MEMORY", buka





