Anda di halaman 1dari 25

MODUL PRAKTIKUM

MICROPROCESSOR AND INTERFACING

DEPARTEMEN TEKNIK INSTRUMENTASI


FAKULTAS VOKASI
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
2018

1
PRAKTIKUM III
HAL, GPIO, GLCD, dan USART

3. 1 Tujuan
1. Memahami cara pembuatan dan konfigurasi HAL (Hardware Abstraction Layer)
sebagai layer dasar untuk membuat program pada STM32F107VC.
2. Memahami cara konfigurasi JTAG Downloader sebagai penghubung antara
STM32F107VC dan komputer.
3. Memahami pengaplikasian GPIO (General Purpose Input Output) STM32F107VC
terhadap lampu LED.
4. Memahami arsitektur AMBA (Advanced Microcontroller Bus Architecture).
5. Memahami konfigurasi dan logika kerja penggunaan fitur GLCD untuk membuat
program pada STM32F107VC.
6. Memahami pengaplikasian dan cara pembuatan program dari aplikasi Graphic
LCD 320x240 pixel menggunakan STM32F107VC.
7. Memahami konfigurasi dan logika kerja penggunaan fitur USART untuk membuat
program pada STM32F107VC.

3. 2 Dasar Teori
3. 2. 1 ARM Cortex-M Jenis STM32F103VC
ARM merupakan mikrokontroler yang saat ini sedang popular penggunaannya di bidang
ELINS, karena penggunaan AT MEGA dari ATMEL sudah mulai ditinggalkan dengan alasan
sudah terlalu banyak aplikasi dengan AT MEGA maka harus berkembang dengan ARM yang
harganya relatif lebih murah dengan teknologi yang lebih canggih. Arsitektur ARM adalah
mikrokontroler dengan arsitektur set instruksi 32bit RISC (Reduced Instruction Set Computer)
yang dikembangkan oleh ARM Holdings. Didirikan pada 1990 dengan nama Advanced RISC
Machines (ARM), sebuah perusahaan patungan antara Acorn Computers, AppleComputer
(sekarang Apple Inc), dan VLSI Technology. Advanced RISC Machines kemudian berganti
nama menjadi ARM Holdings tahun 1998.
Karakteristik dari teknologi ARM adalah kemampuan konsumsi daya yang rendah
dengan desain yang sederhana, sehingga membuatnya sangat cocok digunakan di perangkat
portabel. Kebanyakan perangkat mobile menggunakan prosesor berarsitektur ARM. Daya yang
dipakai yaitu 3,6 V setara dengan baterai HP, sebagai perbandingan ATmega8535 yang biasa
kita pakai membutuhkan daya 5 V untuk beroperasi. Hal ini membuat prosesor ARM
mendominasi pasar mobile electronic dan embedded system di mana membutuhkan daya dan
harga yang rendah. ARM mempunyai beberapa tipe/jenis keluarga untuk menjangkau berbagai
aplikasi.

2
Gambar 3. 1 Jenis Keluarga ARM

Ada beberapa perusahaan yang menggunakan lisensi ARM prosesor, salah satunya
STMicroelectronics. ARM Cortex keluaran stmicroelectronics yaitu stm32f103xx.
STM32F103xx adalah mikrokontroler dari STM menggunakan arsitektur ARM Cortex-M3 32-
bit RISC (keluarga seri Cortex-M). Mikrokontroler ini berjalan pada frekuensi maksimum 72
MHz, flash memory hingga 128 Kbytes dan SRAM hingga 20 Kbytes. Tegangan operasinya 2.0-
3.6 V. Mikrontroler ini mendukung banyak komunikasi antarmuka, seperti : I2C, SPI, USART,
CAN, dan USB. STM32F103xx juga memiliki fitur PWM dan timer untuk kontrol motor.

Gambar 3. 2 STM32F103VC

3
Gambar 3. 3 Line Block Diagram Kinerja STM32F103VC

4
3. 2. 2GLCD ( Graphic Liquid Crystal Display ) 320x240
Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai
tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah
salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja
dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya
terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display)
berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. Salah
satu bentuk contoh LCD adalah Graphic LCD 320 x 240 pixel. Graphic liquid crystal display ini
memiliki titik sebanyak 320 x 240, sehingga dapat digunakan untuk menampilkan karakter
gambar yang bervariasi.

Gambar 3. 4 LCD 360x240

Modul LCD grafik 320 x 240 pixel memiliki 34 pin yang 27 diantaranya dihubungkan pada
mikrokontroler, sedangkan 7 kaki lainnya dipakai sebagai tegangan catu positif, ground,
mengatur contrast dari modul LCD dan mengatur lampu latar belakang (backlight). Jadi saat akan
melakukan penulisan pada modul LCD harus ditentukan dahulu posisinya (mapping), baru
kemudian dikirimkan data-data yang bisa menggambarkan bentuk isyarat yang diukur.

Gambar 1. 5 Dimensi Graphics 320x240

Tabel 1.1 . Fungsi Masing-Masing Pin GLCD 320x240

Pin Symbol Definisi Fungsi

5
1 5V 5V power supply
2 GND Ground Ground
3 D0
4 D1
5 D2
6 D3
7 D4
8 D5
9 D6
10 D7
11 D8
12 D9
13 D10
14 D11 Data Pin D0-D15
15 D12
16 D13
17 D14
18 D15
19 CS LCD chip select Low active
Instruction/Data register RS = 1 : Data Register
20 RS selection RS = 0 : Instruction Register
21 WR Write WR = 0, RD = 1
22 RD Read WR = 1, RD = 0
23 RESET Reset cheap Kontroller Low active
24 NC Not connect Not connect
25 BLVCC 5V or 3.3V Backlight VCC
26 BLGND Ground Backlight GND
Backlight brightness Kontrol Backlight brightness
27 BLCNT adjustment dengan PWM

3. 2. 3 USART ( Universal Syncronous Asyncronous Receiver Transmitter )


USART merupakan teknik komunikasi antara mikrokomputer (PC) dengan sistem lain
seperti mikroprosesor atau mikrokontroler baik secara sinkron atau asinkron dengan pengiriman
secara serial, yaitu pentransferan data bit demi bit sampai membentuk satu frame data yang
diawali dengan start bit dan diakhiri dengan stop bit.
Komunikasi data serial secara sinkron merupakan bentuk komunikasi data serial yang
memerlukan sinyal clock untuk sinkronisasi, sinyal clock tersebut akan tersulut pada setiap bit
pengiriman bit yang pertama dengan perubahan bit data yang dapat diketahui oleh penerima
dengan singkronisasi melalui sinyal clock. Variasi ukuran frame mulai 1500 byte sampai 4096
byte. Dalam komunikasi sinkron, sebuah line 56 kbps mampu membawa data sampai 7000 byte

6
per detik.

Gambar 3. 6 Transmisi Data secara Sinkron

Sedang komunikasi asinkron adalah suatu komunikasi data serial yang tidak memerlukan
sinyal clock sebagai sinkronisasi. Namun pengiriman data ini harus diawali dengan start bit dan
diakhiri dengan stop bit. Sinyal clock merupakan baud rate dari komunikasi data yang
dibangkitkan oleh masing-masing baik penerima maupun pengirim data dengan frekwensi yang
sama, jika nilai baud rate berbeda maka tidak akan pernah terjadi komunikasi.

Gambar 3. 7 Transmisi Data Secara Ansinkron

Prinsipnya yaitu bahwa penerima hanya perlu mendeteksi start bit sebagai awal
pengiriman data, selanjutnya komunikasi data terjadi antar dua buah shift register yang ada pada
pengirim maupun penerima. Setelah 8 bit data diterima, penerima akan menunggu adanya stop bit
sebagai tanda bahwa 1 byte data telah dikirim dan penerima dapat siap untuk menunggu
pengiriman data berikutnya.
Pada komputer sudah disediakan port serial agar dapat berhubungan dengan perangkat
luar (pengubah level tegangan (-) dan (+) lebih dari 12 V menjadi level TTL 5V), yaitu dengan
menyediakan interface 232 (RS 232) dan RS 485, sekaligus sebagai pengirim dan penerima data
secara serial. Transfer data secara serial dapat berlangsung secara sinkron dan asinkron. Terminal
atau konektor yang digunakan untuk mengkonversi level tegangan biasa disebut DB9, seperti
pada gambar berikut:

7
Gambar 3. 8 Pin-Pin Port Serial

3. 3 Peralatan yang digunakan


1. STM32F107VC
2. Laptop yang sudah terinstal software Keil µVision 5
3. JTAG Downloader
4. Adaptor
5. Kabel mini USB
6. LCD 320x240 pixel
7. USB RS232

3. 4 Prosedur Praktikum
3.4.1 Percobaan 1 (Pembuatan Hardware Abstraction Layer (HAL))
1. Buka program keil µVision yang telah diinstal.
2. Buat project baru dengan cara klik pada menu project – New µVision Project seperti
berikut.

3. Lalu, akan muncul kotak dialog Create New Project. Buatlah folder untuk project yang
akan dibuat di dalam suatu folder kosong yang telah dibuat sebelumnya.

8
4. Buka folder project tersebut dan isikan nama project pada kolom file name. Kemudian
tekan tombol save.
5. Lalu, akan muncul kotak dialog “Select Device for Target…”. Pada menu CPU, pilih
jenisdevices “Legacy Device Database [No RTE]”

6. Pada kolom sebelah kiri bawah, pilih jenis chip ARM yang akan digunakan pada
project yaitu STM32F107VC pada pilihan STMicroelectronics STM32F107VC.
Lalu, tekan OK. Akan muncul kotak dialog µVision, tekan yes saja

7. Copy folder bernama “librari_yang_digunakan” dan “Program utama” yang terdapat


pada folder template yang telah disediakan, lalu paste folder tersebut ke dalam folder
kosong(Percobaan 1) yang terdapat pada tahap ketiga.

9
8. Buka kembali software Keil µVision. Klik tab menu Flash Configure Flash
Tools…
9. Pada tab Devices, pastikan chip STM32F107VC di kolom sebelah kiri bawah telah
terpilih

10. Pada tab Target, isi nilai Xtal (Mhz) sebesar 25 MHz

11. Pada tab Output, centang Debug Information, Create Hex File, dan Browse
Information

10
12. Biarkan tab Listing, User, Asm, Linker, dan Utilities ter-setting secara default
13. Pada tab C/C++, klik kotak pada pojok kanan Include Paths. Maka akan mucul kotak
dialog Folder Setup.

14. Pada kotak dialog Folder Setup, klik tombol New (Insert).

15. Klik tombol Folder Location di sebelah kanan.

11
16. Pilih folder berisikan library yang akan digunakan pada folder Template
Librari_yang_digunakan STM32F10x_StdPeriph_Driver inc. Lalu, klik Oke.

17. Masukkan folder-folder berisikan library yang lain seperti berikut. Lalu, klik Ok

18. Setelah semua selesai ter-setting, tekan tombol OK, dan OK lagi

3. 4. 2 Percobaan 2 (Pengaplikasian GPIO STM32F107VC terhadap lampu LED)


1. Buka folder bernama “Program_utama”. Lalu buatlah file notepad bernama “main”
dan berformatkan (.c)

2. Buka software Keil µVision. Klik menu Project Manage Components,


Environment, Books…. Maka, akan muncul kotak dialog Manage Project Items.
Apabila telah terdapat group dengan nama “Source Group 1”, maka hapus saja group
tersebut dengan menekan tombol delete (X) hingga seperti gambar berikut.

12
3. Buatlah nama grup folder yang akan anda tampilkan pada window project dengan
cara menekan tombol New (Insert) dan berikan nama sesuai keinginan anda.

4. Masukkan file – file yang akan ditampilkan pada group yang telah anda buat dengan
cara menekan tombol Add Files.
5. Lalu, cari dan pilih file – file tersebut di dalam folder yang telah disediakan. Jika
sudah, tekan tombol Add, kemudian tekan tombol close.

6. Maka, akan muncul tampilan seperti gambar berikut.

13
7. Buatlah group dan file – file yang lainnya hingga seperti gambar berikut. Jika selesai
klik OK.

14
8. Kemudian buka file “main.c” yang telah Anda buat di software keil uVision pada tab
Project yang ada disebelah kiri.
9. Ketikkan Code dibawah ini ke dalam file main.c

#include <stm32f10x.h>
#include "stm32f10x_conf.h"

void GPIO_Config();

void Delay(uint32_t nCount)


{
for(; nCount != 0; nCount--);
}

int main() {
GPIO_Config();

while (1) {
GPIO_ResetBits(GPIOD, GPIO_Pin_2);
Delay(0xffffff);
GPIO_SetBits(GPIOD, GPIO_Pin_2);
Delay(0xffffff);
}
}

void GPIO_Config() {
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}

15
10. Setelah code diatas selesai diketikkan semua, maka tekan F7 atau klik Build. Tunggu
hingga Build sukses. Jika terdapat Error maka perbaiki dahulu program tersebut
hingga build sukses.

11. Jika Build sukses maka selanjutnya klik Download (dengan catatan downloader sudah
tersetting), Jika belum maka pilih dan klik Options for Target….

12. Kemudian akan muncul window baru yaitu Options for Target ‘Target 1’. Pergi ke
tab Debug, lalu pilih downloader yang akan digunakan yaitu JTAG Downloader,
maka pilih J-LINK / J-TRACE Cortex.

16
13. Lalu klik setting yang ada pada sebelah kanan listbox, maka akan muncul window
baru yaitu Cortex JLink/Trace Target Driver Setup.

14. Klik tab Flash Download. Pada kotak Programming Algorithm, hapus STM32F10x
dengan menekan tombol remove.

17
15. Setelah itu, tekan tombol add dan pilih device STM32F10x High Density Flash yang
baru seperti gambar berikut.

16. Maka, tampilan akan seperti gambar berikut. Sekilas sama, akan tetapi berbeda pada
Address Range

18
17. Setelah itu klik Ok, Lalu klik OK lagi. Setelah yakin Downloader sudah tersetting
dengan benar. Maka klik Download. Tunggu hingga proses download selesai.

18. Tekan tombol reset pada STM32F107VC lalu amati perubahan yang terjadi pada
mikrokontroller STM32F107VC.

3. 4. 3 Percobaan 3 ( aplikasi Graphic LCD 320x240 pixel menggunakan STM32F107VC )


1. Pembuatan HAL (Hardware Abstraction Layer) dibuat dengan cara yang sama
dengan pembuatan HAL pada percobaan sebelumnya.
2. Hanya saja penambahan file pada Flash – Configure flash tools – C / C++ – Include
Paths.Tambahkan File GLCD, setelah selesai klik “OK”

3. Klik File Extensions, Books, and Environment… . akan muncul jendela baru yaitu
“Manage Project Items”.

19
4. Tambahakan kolom baru GLCD dengan cara Klik New pada kolom Group, kemudian
beri nama “GLCD”.

5. Kemudian Add files dan tambahkan file dari folder GLCD sesuai dengan gambar

6. Jika sudah klik OK


7. Ketikkan Code dibawah ini pada file main.c

#include <stm32f10x.h>
#include "stm32f10x_conf.h"
#include "GLCD.h"

20
void Display();

int main() {
LCD_Initializtion();
LCD_Clear(Cyan);
Display();
}

void Display() {
GUI_Text(73, 131, "PRAKTIKUM", Black, Cyan);
LCD_DrawLine(67, 148, 172, 148, Black);
GUI_Text(69, 157, "MIKROPROSESOR", Black, Cyan);
PutChar(117, 171, 38, Black, Cyan);
GUI_Text(64, 187, "INTERFACING", Black, Cyan);
}

8. Jika sudah Build hingga sukses, lalu Download program ke STM32F10VC.


9. JIka proses Download selesai, tekan tombol reset pada STM32F107VC kemudian
perhatikan LCD 360x240

3. 4. 4 Percobaan 4 ( fitur USART pada STM32F107VC )


1. Hubungkan board STM32 dengan komputer dan buka software Keil µVision.
Selanjutnya Aktifkan library USART pada STM32F10X_conf.h dengan cara
menghapus comment (/*) pada #include "stm32f10x_usart.
2. Setelah #include "stm32f10x_usart.h" aktif, maka selanjutnya yaitu buka software
HYPERTERMINAL

3. Selanjutnya install driver USB RS232, jika sudah ketikkan code berikut ini.

21
#include "stm32f10x.h"
#include "stm32f10x_conf.h"
#include <stdio.h>

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

void USART_Configuration(void);

void Delay (uint32_t nCount)


{
for(; nCount != 0; nCount--);
}

int main(void)
{
USART_Configuration();

while (1) {
printf("USART \r\n");
Delay(0x3ccccc);
}
}

void USART_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |
RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO ,ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

22
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl =
USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx |
USART_Mode_Tx;

USART_Init(USART1, &USART_InitStructure);
USART_ClearFlag(USART1,USART_FLAG_TC);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_Cmd(USART1, ENABLE);
}

PUTCHAR_PROTOTYPE
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}
return ch;
}

23
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1)
{ }
}
#endif

4. Jika sudah Build hingga sukses lalu Download program ke STM32F107VC.


Kemudian tekan tombol reset dan perhatikan yang terjadi pada HYPERTERMINAL.

TUGAS
buatlah program di Keil µVision dengan logika sebagai berikut :
- Pada awal power dinyalakan, keempat lampu LED (LD3, LD4, LD5, dan LD6) pada

24
minimum system STM32F107VC menyala secara bersamaan.
- Selang waktu beberapa detik kemudian semua lampu LED tersebut mati bersamaan, lalu
LED 1 on, beberapa detik kemudian lampu LED 2 juga on, begitu seterusnya hingga lampu
LED 1,2,3 dan 4 on. Daam keadaan semua lampu LED menyala, program akan lanjut pada
logika berikut ini:
- Pertama buatlah display seperti berikut ini, kita namakan ini display1 :

PRAKTIKUM

MIKROPROCESSOR
&
INTERFACING

2018

- Lalu buat display seperti berikut ini, lalu kita namakan ini display2 :

Anggota Kelompok:

Nama Anggota (NRP)


.
.
.
.
dst

- Jika sudah, atur display1 yang tampil, selang beberapa detik kemudian display2 yang tampil,
selang beberapa detik lagi, display1 tampil lagi dan begitu seterusnya.

25

Anda mungkin juga menyukai