Board STM8S103F3P6 pertama kali saya beli karena ingin lebih fokus mempelajari mikrokontroler STM8S. Sebelumnya, saya mempelajari STM8S003F3P6 yang ada dalam modul ESP-14.

Karena merasa ribet dengan modul ESP-14, akhirnya saya membeli board STM8S103F3P6 sehingga bisa lebih fokus dan nyaman mempelajari mikrokontroler STM8S103.

Perlu diketahui bahwa STM8S003 hanya berbeda sedikit saja dengan STM8S103, yakni kapasitas EEPROM. STM8S003 memiliki kapasitas EEPROM 128 byte, sedangkan STM8S103 memiliki kapasitas EEPROM 640 byte.

Penampakan Board STM8S103F3P6

Gambar di bawah ini adalah foto penampakan board STM8S103F3P6. Board ini dapat disuplai dengan tegangan DC 5V melalui port mini USB atau melalui pin 5V dan GND dibagian bawah (pin ketiga dan keempat dari kanan).

Selain DC 5V, board juga bisa disuplai menggunakan tegangan dengan rentangan 4,5V – 15V DC. Suplai tegangan ini dapat dihubungkan pada pin + dan pin – yang berada di pojok kiri-atas dan kiri-bawah board.

Untuk keperluan pemrograman, board ini juga telah menyediakan port yang terdiri pin-pin 3V3, SWIM, GND dan NRST. Kita dapat langsung menghubungkan pin-pin tersebut ke pin-pin USB Programmer ST-LINK V2.

Kelengkapan Minimal Bereksperimen STM8S103F3P6

Untuk bereksperimen dengan STM8S103F3P6 dibutuhkan beberapa komponen tambahan antara lain: programmer ST-LINK V2 dan konverter USB-to-Serial.

Programmer ST-LINK V2 mutlak diperlukan karena untuk komponen ini berfungsi untuk memasukkan program ke dalam memori mikrokontroler.

Konverter USB-to-Serial dibutuhkan untuk melakukan komunikasi serial antara komputer dengan board STM8S103F3P6. Dan jika kita menggunakan Forth untuk memrogram STM8S, maka USB-to-Serial ini akan sangat dibutuhkan.

Berikut ini adalah gambar komponen-komponen yang dibutuhkan untuk bereksperimen dengan board STM8S103F3P6.

Beberapa komponen lain yang tidak masuk dalam foto di atas adalah Power Supply dan Project Board beserta kabel jumper.

Memrogram Memori STM8S103F3P6

Untuk memrogram memori (flash dan eeprom) mikrokontroler STM8S103F3P6, kita bisa menggunakan program stm8flash. Program ini bisa kita download dari situs berikut ini.

https://github.com/vdudouyt/stm8flash.

Pertama-tama, hubungkan programmer ST-LINK V2 dengan board STM8S103F3P6. Ada 4 pin yang perlu dihubungkan yakni: 3V3, SWIM, GND dan NRST.

Kemudian, untuk memasukkan program ke dalam memori mikrokontroler STM8S103F3P6, kita bisa menggunakan program stm8flash yang tadi kita download.

Penggunaan program ini cukup mudah, berikut adalah beberapa contoh penggunaannya.

stm8flash -c stlinkv2 -p stm8s103f3 -w demoled.bin
stm8flash -c stlinkv2 -p stm8s003f3 -w demoled.bin
stm8flash -c stlinkv2 -p stm8s103f3 -s eeprom -w eep.bin

Bahasa Pemrograman STM8S103F3P6

Untuk menyusun program mikrokontroler STM8S, kita bisa menggunakan bahasa Assembly, bahasa C atau bahasa Forth.

Untuk bahasa Assembly dan C, kita bisa menggunakan assembler dan kompiler yang disediakan oleh SDCC. Tidak semua versi SDCC mendukung mikrokontroler STM8S, oleh karenanya pilih versi SDCC yang mendukung mikrokontroler STM8S.

Versi SDCC yang saya gunakan adalah versi 3.6.3

Contoh Pemrograman Dengan SDDC

Berikut adalah contoh program STM8S menggunakan bahasa C yang dikompilasi menggunakan kompiler SDCC 3.6.3. Simpan kode program berikut dengan nama file led.c.

#include <stdint.h>

#define CLK_DIVR	(*(volatile uint8_t *)0x50c6)
#define CLK_PCKENR1	(*(volatile uint8_t *)0x50c7)

#define TIM1_CR1	(*(volatile uint8_t *)0x5250)
#define TIM1_CNTRH	(*(volatile uint8_t *)0x525e)
#define TIM1_CNTRL	(*(volatile uint8_t *)0x525f)
#define TIM1_PSCRH	(*(volatile uint8_t *)0x5260)
#define TIM1_PSCRL	(*(volatile uint8_t *)0x5261)

#define PB_ODR	(*(volatile uint8_t *)0x5005)
#define PB_DDR	(*(volatile uint8_t *)0x5007)
#define PB_CR1	(*(volatile uint8_t *)0x5008)


unsigned int clock(void)
{
	unsigned char h = TIM1_CNTRH;
	unsigned char l = TIM1_CNTRL;
	return((unsigned int)(h) << 8 | l);
}

void main(void)
{
	CLK_DIVR = 0x00; // Set the frequency to 16 MHz

	// Configure timer
	// 1000 ticks per second
	TIM1_PSCRH = 0x3e;
	TIM1_PSCRL = 0x80;
	// Enable timer
	TIM1_CR1 = 0x01;

	PB_DDR = 0x20;
	PB_CR1 = 0x20;

	for(;;)
		PB_ODR = clock() % 1024 < 256 ? 0x20 : 0;
}

Untuk melakukan kompilasi kode program di atas dan meng-upload ke memori flash STM8S103F3P6, kita gunakan perintah sbb:

sdcc -mstm8 --std-c99 led.c 
stm8flash -c stlinkv2 -p stm8s103f3 -w led.ihx

Jika tidak ada halangan, maka LED pada board STM8S103F3P6 akan berkedip.

Pemrograman STM8S Dengan Forth

Sebelum dapat memrogram menggunakan Forth, terlebih dahulu mikrokontroler kita isi dengan program Forth. Untuk keperluan tersebut, kita bisa menggunakan stm8ef, yakni versi eForth untuk mikrokontroler STM8S.

Software stm8ef bisa didownload dari situs: https://github.com/TG9541/stm8ef.

Selanjutnya, kita bisa mengisi mikrokontroler STM8S103F3P6 dengan program Forth yang telah tersedia dengan perintah:

make flash BOARD=MINDEV

Btw, saya sudah membuat modifikasi terhadap program Forth yang tersedia dengan menambahkan berbagai fungsi untuk mengontrol GPIO (ON/OFF) dan membaca ADC.

Setelah program stm8ef masuk ke dalam mikrokontroler, kita dapat menghubungkan board STM8S103F3P6 dengan komputer menggunakan konverter USB-to-Serial. Adapun pin serial terletak pada pin D5 dan D6.

Selanjutnya, kita dapat menggunakan program terminal seperti Hyperterminal, picocom atau yang lain untuk memrogram board STM8S103F3P6 melalui port serial.

Saya menggunakan miniterm yang ditulis menggunakan bahasa Python.

Berikut adalah foto interaksi antara program miniterm.py dengan board STM8S103F3P6 yang sudah saya tanami dengan STM8 eForth yang sudah saya modifikasi.

Untuk menyalakan LED pada board STM8S103F3P6 (GPIO B5), kita bisa menggunakan perintah:

1 OUT!

atau

0 B5!

Dan untuk memadamkan LED pada pin B5 tersebut, kita bisa menggunakan perintah

0 OUT!

atau

1 B5!

Saya juga mencoba menambahkan fitur komunikasi Wi-Fi pada board STM8S103F3P6 dengan menggunakan board ESP-01.

Berikut ini adalah beberapa foto board STM8S103F3P6 dengan ESP-01.

Nah, demikianlah perkenalan kita dengan board mungil STM8S103F3P6.

Semoga bermanfaat.

Melayani Pembuatan Hardware & Software

Kami membuat modul-modul elektronik dan interface berbasis mikrokontroler dan melayani pembuatan hardware/software sesuai dengan kebutuhan Anda.

Silakan menghubungi kami melalui FB Messenger atau WA 0882-3560-7047.

By admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.

Copy link
Powered by Social Snap