Apa itu Papan STM8 Nucleo?
Papan STM8 Nucleo adalah serangkaian papan pengembangan yang dirancang oleh STMicroelectronics khusus untuk mikrokontroler STM8 mereka. Papan-papan ini berfungsi sebagai platform yang nyaman dan fleksibel untuk membangun dan menguji aplikasi berdasarkan keluarga mikrokontroler STM8. Dengan berbagai fitur dan opsi konektivitas, Papan STM8 Nucleo menyediakan lingkungan yang sesuai bagi pengembang untuk membuat prototipe proyek mereka dan mengevaluasi kinerja mikrokontroler STM8. Papan-papan ini biasanya dilengkapi dengan debugger/programmer, pin GPIO, antarmuka UART, I2C, dan SPI, memungkinkan pengembang untuk dengan mudah terhubung dan berinteraksi dengan berbagai periferal dan sensor. Papan STM8 Nucleo banyak digunakan di industri elektronik karena kemudahan penggunaannya dan kompatibilitasnya dengan ekosistem STM8.
NUCLEO-8L152R8 dan NUCLEO-8S208RB
NUCLEO-8L152R8 dan NUCLEO-8S208RB adalah papan Nucleo-64 pertama yang mengintegrasikan mikrokontroler (MCU) STM8, memungkinkan desain prototipe yang fleksibel melalui konfigurasi MCU yang ringkas. Perbedaan signifikan antara kedua model ini terletak pada kapasitas memori flash mereka. Yang pertama mengintegrasikan MCU STM8L152R8T6 dengan 64 kB memori flash, sementara yang terakhir menggunakan STM8S208RBT6 dengan 128 kB penyimpanan. Mereka juga merupakan papan pengembangan STM8 pertama dengan konektor Arduino™ Uno V3, memungkinkan pengembang untuk menggunakan perisai yang familiar, plugin gratis, dan contoh pemrograman populer. Selain itu, bekerja sama dengan Cosmic, kami menyediakan kompiler gratis dengan IDE STVD-STM8 atau Arduino IDE, memungkinkan pengembang untuk mengembangkan perangkat lunak untuk MCU STM8 kami dalam C++ untuk pertama kalinya tanpa membeli toolchain.

Kami telah menemukan papan STM32 Nucleo sangat populer untuk desain dan pengembangan prototipe. Mereka juga menawarkan berbagai macam papan ekspansi yang sekarang kompatibel dengan NUCLEO-8L152R8 dan NUCLEO-8S208RB karena semua model Nucleo menyediakan konektor Arduino. Ini berarti tim teknik dapat menggunakan kembali perangkat keras yang sama, menghemat biaya dan, yang lebih penting, mengurangi waktu pengembangan karena mereka sudah familiar dengan menumpuk ekstensi pada papan STM8 Nucleo yang baru. Oleh karena itu, sekarang lebih mudah untuk menambahkan fungsionalitas ke sistem 8-bit kami, memungkinkan desain yang lebih kompleks dan cerdas dalam paket yang semakin kecil.
Spesifikasi STM8 Nucleo
- Papan dengan tipe MCU:
NUCLEO-8L152R8 – Berdasarkan MCU 8-bit STMicroelectronics STM8L152R8T6, beroperasi pada frekuensi 16 MHz, dengan 64 kB flash, 2 kB EEPROM, dan 4 kB SRAM.
NUCLEO-8S208RB – Berdasarkan MCU 8-bit STMicroelectronics STM8S208RBT6, beroperasi pada frekuensi 24 MHz, dengan 128 kB flash, 2 kB EEPROM, dan 6 kB SRAM.
4x LED – Indikator koneksi USB (LD4), indikator STLINK 5V (LD3), LED pengguna (LD2), dan indikator daya (LD1).
2 x tombol – Tombol pengguna dan tombol RESET.
Osilator kristal eksternal 32.768 kHz, eksklusif untuk papan pengembangan NUCLEO-8L152R8.
USB – Antarmuka microUSB 1-saluran sebagai port COM virtual, antarmuka memori on-chip, dan antarmuka debug.
- Konektor ekspansi:
Antarmuka Arduino UNO V3.
Antarmuka ekspansi ST morpho, termasuk semua I/O untuk STM8.
Debug – Debugger dan programmer ST-LINK/V2-1 on-board dengan konektor SWIM dan port microUSB.
Daya – Ditenagai oleh USB VBUS atau daya eksternal (3.3V, 5V, 7 – 12V).
Titik akses manajemen daya.
Proyek Papan Pengembangan STM8 Nucleo-64
Proyek ini menjelaskan cara mengendalikan papan pengembangan STM8 Nucleo-64 dari jendela terminal yang berjalan di PC. Terminal terhubung ke UART STM8S208RBT6 (untuk NUCLEO-8S208RB) atau STM8L152R8T6 (untuk NUCLEO-8L152R8) menggunakan kabel RS232.
Setelah menambahkan komponen yang diperlukan ke papan pengembangan dan mengunduh perangkat lunak aplikasi, pengguna dapat mengelola GPIO dan timer TIM3 dari seri STM8S atau STM8L dan mengonfigurasi output buzzer menggunakan perangkat lunak terminal.

Komponen yang Diperlukan
Komponen berikut diperlukan untuk menjalankan aplikasi terminal papan pengembangan STM8 Nucleo-64:
- Jendela terminal yang berjalan di PC: Perangkat lunak emulasi terminal dapat berupa Windows HyperTerminal, TeraTerm Pro, atau perangkat lunak terminal lainnya.
- Kabel null modem RS232 (dengan garis transmisi dan terima yang disilangkan).
Mengonfigurasi Papan Pengembangan NUCLEO-8S208RB
Sebelum menjalankan aplikasi, papan pengembangan NUCLEO-8S208RB (berdasarkan perangkat STM8S208RBT6) harus dikonfigurasi untuk mengaktifkan output buzzer. Output buzzer adalah fungsi multiplex dari STM8S208RBT6. Fungsi ini diaktifkan dengan mengatur bit opsi remap AFR7 dalam byte opsi OPT2 menjadi “1”.
Catatan: Papan pengembangan NUCLEO-8L152R8 (berdasarkan perangkat STM8L152R8T6) tidak memerlukan pengguna untuk memeriksa atau mengaktifkan fungsi remap atau buzzer.
Instruksi Aplikasi
Persyaratan Perangkat Keras
Aplikasi ini menggunakan LED onboard (LD2) dan resistor yang terhubung (R1) pada papan STM8 Nucleo-64. Komponen pasif eksternal yang diperlukan oleh aplikasi terdaftar dalam tabel di bawah ini:
| Component | Value |
|---|---|
| Buzzer B1 | - |
| Capacitors C1, C2, C3, C4, C5 | 100 nF |
| DB9 Connector | - |
Aplikasi ini juga menggunakan driver/penerima RS232 ST232B yang ditenagai 5V (untuk detail lebih lanjut, lihat tabel di bawah). Komponen tambahan ini sangat penting karena port COM PC beroperasi pada catu daya standar 12V. Ini tidak kompatibel dengan input/output UART seri STM8S atau STM8L, yang beroperasi pada 5V. Perangkat ini berada dalam paket SO16, yang sesuai dengan papan pengembangan STM8 Nucleo-64. Untuk informasi lebih lanjut tentang ST232B, lihat lembar data ST232B.
| Model | Component Description | Package |
|---|---|---|
| ST232B | Ultra-Fast, Ultra-Low-Power 5V RS232 Driver/Receiver for UART 5/12V Level Conversion | SO16 |
Skematik Aplikasi
Diagram berikut mengilustrasikan skematik listrik aplikasi. Jika kabel RS232 bukan kabel null modem (garis transmisi dan terima tidak disilangkan), hubungkan pin U1 14 ke pin DB9 2 dan pin U1 13 ke pin DB9 3.
Aturan Aplikasi
Aplikasi ini menetapkan komunikasi standar antara mikrokontroler STM8S208RBT6 atau STM8L152R8T6 dan jendela terminal yang berjalan di PC. Komunikasi dilakukan menggunakan protokol RS232 melalui UART perangkat STM8. Baik jendela terminal maupun UART harus dikonfigurasi dengan cara yang sama.
Menjalankan Aplikasi
Untuk menjalankan aplikasi ini, ikuti langkah-langkah berikut:
- Luncurkan dan konfigurasikan jendela terminal di PC Anda (lihat bagian B: Konfigurasikan Jendela Terminal, dalam hal ini, menggunakan Windows HyperTerminal).
- Kompilasi dan jalankan firmware aplikasi menggunakan ST Visual Develop (STVD) atau toolchain lainnya.
- Hubungkan PC ke papan pengembangan STM8 Nucleo-64 menggunakan kabel RS232.
- Setelah aplikasi dimulai, menu akan ditampilkan di Windows HyperTerminal. Menu ini memungkinkan pengguna untuk:
- Menyalakan atau mematikan LED LD2.
- Atur LD2 ke mode berkedip.
- Aktifkan/nonaktifkan buzzer dan pilih frekuensi suara buzzer.
Semua informasi yang ditampilkan di menu ini dikirim oleh mikrokontroler seri STM8S atau STM8L. Saat tombol ditekan di HyperTerminal, nilai ASCII yang sesuai dikirim ke mikrokontroler, yang kemudian mendekodenya.
Urutan Komunikasi antara Papan Pengembangan STM8 Nucleo-64 dan Terminal
- Mikrokontroler seri STM8S atau STM8L mengirimkan string “Masukkan pilihan Anda” ke perangkat lunak emulator terminal PC.
- Terminal menampilkan string “Masukkan pilihan Anda.”
- Pengguna menekan tombol “2” pada keyboard.
- Perangkat lunak emulator terminal mengirimkan kode ASCII yang sesuai (0x52) kembali ke mikrokontroler (lihat Lampiran A: Kode Karakter ASCII Standar).
- Mikrokontroler mendekode data yang diterima dan mengirimkan kembali kode 0x52 untuk ditampilkan di terminal dan menyimpan nilai “2” dalam memori.
- Perangkat lunak emulator terminal menerima kode 0x52 dan menampilkan “2.”
- Pengguna menekan tombol “Return”.
- Perangkat lunak emulator terminal mengirimkan kembali kode 0x0D yang sesuai dengan carriage return (lihat Lampiran A: Kode Karakter ASCII Standar).
- Mikrokontroler seri STM8S atau STM8L mendekode data yang diterima, mengirimkan kembali kode 0x0D untuk ditampilkan di terminal, dan melakukan operasi yang terkait dengan opsi 2.
Windows HyperTerminal
Periferal STM8S dan STM8L
Contoh aplikasi ini menggunakan pustaka firmware standar STM8S dan STM8L untuk mengontrol fungsi umum. Periferal berikut digunakan dalam aplikasi ini:
- Timer3 (TIM3): Timer TIM3 dikonfigurasi sebagai timebase, dengan interupsi diaktifkan untuk mengontrol kecepatan berkedip LD2.
- GPIO: GPIO digunakan untuk menghubungkan MCU ke perangkat keras eksternal. Port PC5 untuk seri STM8 atau PB5 untuk seri STM8L dikonfigurasi sebagai output push-pull untuk menggerakkan LD2.
- BEEPER: Untuk menggerakkan buzzer, periferal BEEPER mengeluarkan sinyal 1, 2, atau 4 kHz pada pin output BEEP.
- ART3 untuk seri STM8S atau USART3 untuk seri STM8L: Digunakan untuk komunikasi dengan jendela terminal yang berjalan di PC.
ART3 atau USART3 perlu dikonfigurasi sebagai berikut:
- Baud rate = 960
- Panjang data = 8 bit
- 1 stop bit
- Tidak ada parity
- Aktifkan terima dan kirim
(Catatan: Jika menggunakan seri STM8L, clock USART3 harus dinonaktifkan.)
Komunikasi dikelola dengan melakukan polling untuk setiap operasi terima dan kirim.
(Catatan: Jendela terminal dan periferal UART perangkat STM8 harus dikonfigurasi dengan baud rate, panjang data, stop bit, dan parity yang sama.)
Konfigurasi Pustaka Firmware Standar STM8
Pustaka Firmware Standar Seri STM8S
File stm8s_conf.h dari pustaka firmware standar seri STM8S memungkinkan pengaktifan fungsi periferal untuk digunakan dalam aplikasi dengan mengonfigurasi pustaka. Pernyataan define berikut perlu dideklarasikan:
- #define _GPIO 1 untuk mengaktifkan GPIO
- #define _TIM3 1 untuk mengaktifkan TIM3
- #define _BEEPER 1 untuk mengaktifkan BEEPER
- #define _UART3 1 untuk mengaktifkan UART3
Pustaka Firmware Standar Seri STM8L
File stm8l_conf.h dari pustaka firmware standar seri STM8L memungkinkan pengaktifan fungsi periferal untuk digunakan dalam aplikasi dengan mengonfigurasi pustaka. Pernyataan include berikut perlu dideklarasikan:
- #include “stm8l15x_gpio.h”
- #include “stm8l15x_tim2.h”
- #include “stm8l15x_tim3.h”
- #include “stm8l15x_beep.h”
- #include “stm8l15x_usart.h”
Diagram Alur Perangkat Lunak Aplikasi
Bagian ini menjelaskan loop utama perangkat lunak aplikasi dan fungsi yang mengontrol penerimaan/pengiriman data ke/dari terminal:
- App_Menu: Fungsi ini digunakan untuk menampilkan menu di terminal dan mengelola input pengguna.
- SerialPutString: Fungsi ini digunakan untuk mengirim string ke terminal.
- SerialPutChar: Fungsi ini digunakan untuk mengirim karakter individual ke terminal.
- GetInputString: Fungsi ini digunakan untuk menerima dan menyimpan string yang dikirim dari terminal.
- GetIntegerInput: Fungsi ini digunakan untuk menerima integer dari terminal.
- Get_Key: Fungsi ini mengembalikan kode heksadesimal yang sesuai ketika sebuah tombol ditekan.
Fungsi Utama Aplikasi
Fungsi utama aplikasi mengonfigurasi periferal seri STM8S atau STM8L dan mengaktifkan interupsi standar untuk semua periferal yang digunakan oleh aplikasi. Setelah inisialisasi, program utama menampilkan menu aplikasi di jendela terminal.

Fungsi App_Menu
Fungsi App_Menu adalah inti dari aplikasi. Ia menampilkan menu di terminal, memungkinkan konfigurasi GPIO, TIM3, dan buzzer. App_Menu memanggil GetInputString, GetIntegerInput, dan SerialPutString untuk mengirim dan menerima data melalui antarmuka RS232.

Fungsi GetInputString
Fungsi GetInputString digunakan untuk menerima dan menyimpan string yang dikirim dari jendela terminal. Fungsi ini bergantung pada fungsi Get_Key untuk memperoleh dan mendekode setiap karakter (lihat Lampiran untuk detailnya). Tindakan yang berbeda diambil berdasarkan nilai ASCII karakter:
Jika kode ASCII = ‘\\b’ (backspace): Terminal telah mengirim backspace. Jika string tidak kosong, karakter terakhir akan dihapus dari string.
Jika kode ASCII berada dalam {0…9} atau {A…Z}: Karakter disimpan dalam string.
Jika kode ASCII = ‘\\r’ (carriage return): Fungsi GetInputString menyimpan nilai “string end” ‘\\0’ di akhir string. Jumlah maksimum kode ASCII yang disimpan dalam buffer buffP[bytes_read] tercapai. Perangkat lunak menghapus string yang direkam dan menunggu input lain dari terminal.
Fungsi Get_Key
Fungsi Get_Key digunakan untuk mendeteksi input keyboard di terminal dengan melakukan polling flag RXNE UART. Ia mengembalikan nilai yang diterima.

Fungsi SerialPutString dan SerialPutChar
SerialPutString digunakan untuk mengirim string ke terminal melalui UART. Karakter string dikirim satu per satu menggunakan fungsi SerialPutChar, seperti yang dijelaskan dalam flowchart.
Fungsi GetIntegerInput
Fungsi GetIntegerInput memeriksa apakah data yang masuk sesuai dengan integer. Jika ya, data disimpan dalam memori; jika tidak, pengguna diminta untuk memasukkan data baru.





