BUKU 1
PENGENALAN
PEMROGRAMAN MIKROKONTROLER Tutorial, panduan step by step dan contoh pemrograman dengan: cara yang mudah software yang free perangkat yang ekonomis REVISI 1.0
OLEH: LUKMAN ROSYIDI
www.mikron123.com
PENGENALAN PEMROGRAMAN MIKROKONTROLER ARM Revisi 1.0, Januari 2014. Copyright © 2014 Lukman Rosyidi. Ditulis oleh Lukman Rosyidi. Didukung oleh Nuvoton Technology Corp., salah satu ARM partner. Diterbitkan secara digital oleh Yayasan Prasimax Bina Teknologi, Depok. Kontak:
[email protected] | www.mikron123.com ARM® adalah trademark milik ARM Holding Limited. NuMicro™ adalah trademark milik Nuvoton Technology Corporation. CooCox adalah trademark milik Embest Technology Co., Ltd. Hak Cipta dilindungi undang-undang. Dilarang mengambil atau memodifikasi sebagian atau keseluruhan dari karya ini dalam bentuk apapun tanpa seijin penulis dan penerbit. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
2
DAFTAR ISI
www.mikron123.com
1 2
PEMBAHASAN HALAMAN APA ITU MIKROKONTROLER ARM ? 4 APA KELEBIHAN MIKROKONTROLER ARM ? 5
3 4 5
HARDWARE YANG DIBUTUHKAN CARA INSTALASI HARDWARE SOFTWARE YANG DIBUTUHKAN
6 7 9
6 7 8
CARA INSTALASI SOFTWARE MEMBUAT FILE PROJECT PEMROGRAMAN LED
10 14 20
9 PEMROGRAMAN PUSHBUTTON SWITCH 10 PEMROGRAMAN LCD TEXT
25 28
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
3
1. APA ITU MIKROKONTROLER ARM ?
www.mikron123.com
Mikrokontroler adalah mikrokomputer kecil dalam satu chip, di dalamnya berisi prosessor, memori dan peripheral I/O yang bisa diprogram. ARM adalah arsitektur prosesor 32 bit yang dibuat oleh ARM Holding dan dilisensikan untuk diproduksi oleh berbagai vendor di dunia termasuk AMD, Atmel, Freescale, Nuvoton, Nvidia, NXP, Samsung, ST Micro, dan TI. Prosesor ARM digunakan pada perangkat smartphone, tablet, dan embedded system. Kini ARM menjadi arsitektur prosesor yang paling banyak diproduksi di dunia. Seri arsitektur ARM terbaru terdiri dari 3 lini kelas penggunaan yaitu: 1. ARM CORTEX A untuk prosesor aplikasi umum 2. ARM CORTEX R untuk prosesor real time 3. ARM CORTEX M untuk prosesor mikrokontroler P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
4
www.mikron123.com
2. APA KELEBIHAN MIKROKONTROLER ARM ? Cost Performance Power Consumption
MCU 8 bit
ARM
Dengan harga yang relatif sama, prosesor ARM memberikan kinerja jauh lebih tinggi dengan konsumsi daya yang rendah. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
5
3. HARDWARE YANG DIBUTUHKAN
www.mikron123.com
Board DT-ARM NUC 120 - NuMicro ARM Cortex M0 12 MHz - 8KB RAM - 64KB memori program (APROM) - 4KB memori data (DataFlash) - 45 pin General Purpose I/O (GPIO) - 8 channel ADC 12 bit - 3 serial UART dg 1 USB & 1 RS485 - 3.3V & 5V compatible - Programmable via USB
Modul Smart LCD 16x2
Modul I/O Logic Tester
2 Kabel Data IDC
Lebih jelas bisa dilihat di www.mikron123.com dalam paket MikroARM Starter Pack P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
6
4. CARA INSTALASI HARDWARE Langkah 1:
www.mikron123.com
Hubungkan Smart LCD 16x2 ke port 3 DT-ARM NUC140 dengan kabel IDC yang tersedia.
Hubungkan I/O Logic Tester ke port 2 DTARM NUC140 dengan kabel IDC yang tersedia. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
7
4. CARA2: INSTALASI HARDWARE Langkah
www.mikron123.com
a. Pada board DT-ARM NUC120, pastikan posisi jumper J3 di 1-2, J4 di 1-2, dan J5 di 2-3, agar board menggunakan jalur USB untuk catu daya. b. Pastikan jumper J11 pada posisi 2-3 agar DT-ARM NUC120 Board dapat diprogram melalui jalur USB. Sedangkan J12, J14 dan J15 bisa pada posisi 1-2 untuk menggunakan PORT B sebagai port I/O. c. Hubungkan kabel USB antara PC/Laptop dengan DT-ARM NUC120 Board.
d. Jika pengaturan jumper sudah benar, maka LED Indikator Power pada DT-ARM NUC120 Board akan menyala dan komputer secara otomatis melakukan instalasi driver. e. Setelah driver ter-install, PC/Laptop akan mengalokasikan sebuah koneksi USB-HID (Human Inferface Device) untuk board DT-ARM NUC120 yang dapat dicek di bagian Device Manager di PC/Laptop.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
8
5. SOFTWARE YANG DIBUTUHKAN
www.mikron123.com
Untuk development di lingkungan Windows XP/7: 1. Software Compiler: GCC ARM Download https://launchpad.net/gcc-arm-embedded Software compiler ini free, tidak ada pembatasan kode atau fitur. 2. Software Editor: CooCox CoIDE Download http://www.CooCox.com Software editor ini free, tanpa pembatasan waktu atau fitur. 3. Software Pin Configurator: CooCox CoSmart Download http://www.CooCox.com Software configurator ini free, tanpa pembatasan waktu atau fitur. 4. Software Downloader: NuMicro ISP Programming Tool Download http://www.nuvoton.com Software downloader ini free, disediakan oleh Nuvoton. Semua software sudah tersedia dalam CD di paket MikroARM StarterPack P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
9
6. CARA INSTALASI SOFTWARE
www.mikron123.com
Langkah 1: Lakukan instalasi Software Compiler GCC ARM. Perhatikan lokasi path folder tempat instalasi software.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
10
6. CARA INSTALASI SOFTWARE
www.mikron123.com
Langkah 2: Lakukan instalasi Software Editor CoIDE. Sesudah selesai, panggil software CoIDE, lakukan setting compiler yang digunakan melalui menu Project > Select Toolchain Path. Browse ke folder tempat instalasi software GCC ARM pada sub folder bin.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
11
6. CARA INSTALASI SOFTWARE
www.mikron123.com
Langkah 3: Lakukan instalasi Software Pin Configurator CooCox CoSmart. Sesudah selesai, panggil software CoSmart, lakukan setting compiler yang digunakan melalui menu Project > Config GCC Path. Browse ke lokasi file arm-none-eabi-gcc.exe di folder tempat instalasi software GCC ARM pada sub folder bin lalu klik OK.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
12
6. CARA INSTALASI SOFTWARE
www.mikron123.com
Langkah 4: Lakukan instalasi NuMicro ISP Programming Tools. Panggil software Nuvoton > NuMicro ISP Programming Tools dari Start Menu. Pastikan DT-ARM NUC120 sudah terhubung ke PC/laptop melalui kabel USB dan LED powernya menyala. Tekan tombol RESET di board DTARM NUC120 lalu tes koneksi dengan klik tombol Connect. Jika sudah benar maka status berubah menjadi Connected (hijau). P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
13
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 1: Ketahui Konfigurasi Pin Koneksi yang terjadi sebagai berikut. PORT 2: GPIO A
PORT 3: GPIO B
PA.8
Button 0 PB.0
LCD RS
PA.9
Button 1 PB.1
LCD RW
PA.10
Button 2 PB.2
LCD EN
PA.11
Button 3 PB.3
-
PA.12
LED 4
PB.4
LCD D4
PA.13
LED 5
PB.5
LCD D5
PA.14
LED 6
PB.6
LCD D6
PA.15
LED 7
PB.7
LCD D7
Button adalah Input, LED adalah Output. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
14
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 2: Pilih Konfigurasi 1.
Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin
2.
Klik tombol New Chip di tengah layar.
3.
Pilih Nuvoton, lalu pilih NUC120RD2BN
4.
Akan muncul gambar chip NUC120RD2BN, beri contreng pada GPIOA & GPIOB
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
15
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 3a: Setting Pin
1. Di jendela Configuration, select GPIOA 2. Di bawahnya, klik pada Pin 8 s/d Pin 15 agar Enable 3. Scroll ke bawah, atur Pin Config 4. Pin 8 Config s/d Pin 11: Mode Control: Input Digital Input: Enable Input Signal Debounce: Enable
5. Pin 12 Config s/d Pin 15: Mode Control: Output
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
16
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 3b: Setting Pin 1. Di jendela Configuration, select GPIOB 2. Di bawahnya, klik pada Pin 0 s/d Pin 7 agar Enable
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
17
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 4: Generate Project 1. Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01 2. Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal latihan01 3. CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
18
7. MEMBUAT FILE PROJECT
www.mikron123.com
Langkah 5: Buka Project Klik dua kali pada file project latihan01 di Windows Explorer untuk membuka project dengan CoIDE. Terlihat bahwa file project sudah berisi susunan folder dan file dengan 2 program yaitu Init.c dan main.c Klik dua kali pada main.c untuk mulai memprogram.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
19
8. PEMROGRAMAN LED
www.mikron123.com
LED pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. • Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin); • Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin); • Untuk bisa menggunakan 2 perintah di atas, perlu memasukkan library
#include "DrvGPIO.h" Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal ini karena LED dihubungkan ke PORT A maka isi dengan E_GPA.
Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung LED yang ingin dinyalakan/dimatikan. Dalam hal ini empat buah LED sudah dihubungkan ke pin 12 s/d 15. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
20
8. PEMROGRAMAN LED
www.mikron123.com
Untuk membuat nyala LED selang-seling, maka tambahkan baris program sehingga menjadi seperti gambar di samping.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
21
8. PEMROGRAMAN LED
www.mikron123.com
Klik icon Build di toolbar untuk melakukan compile program.
Pastikan Build Successful, tidak ada error.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
22
8. PEMROGRAMAN LED
www.mikron123.com
Panggil aplikasi Nuvoton > NuMicro ISP Programming Tool dari Start Menu. Tekan tombol RESET di board DTARM NUC120. Klik tombol Connect jika diperlukan sehingga status menjadi Connected (warna hijau). Klik file tombol APROM lalu browse ke folder project latihan01\Debug\bin dan pilih latihan01.bin Klik tombol Start untuk memproses download ke hardware, tunggu hingga selesai.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
23
8. PEMROGRAMAN LED
www.mikron123.com
Lihat hasilnya pada hardware. Dari kanan ke kiri. LED 4 mati LED 5 menyala. LED 6 mati. LED 7 menyala.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
24
9. PEMROGRAMAN PUSHBUTTON SWITCH
www.mikron123.com
Pushbutton switch pada rangkaian hardware adalah digital input yang bersifat ACTIVE LOW, yaitu jika ditekan memberikan logika LOW. • Untuk mengambil nilai logika input digital gunakan perintah berikut: DrvGPIO_GetBit(Nama_port, Nomor_pin); • Untuk bisa menggunakan perintah di atas, tetap perlu library #include "DrvGPIO.h"
Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal ini karena Pushbutton switch dihubungkan ke PORT A maka isi dengan E_GPA. Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung Pushbutton switch yang ingin dimainkan. Dalam hal ini empat buah Pushbutton switch sudah dihubungkan ke pin 8 s/d 11. Fungsi DrvGPIO_GetBit menghasilkan nilai 0 jika logika LOW (pushbutton ditekan), atau 1 jika logika HIGH (pushbutton tidak ditekan). P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
25
9. PUSHBUTTON SWITCH
www.mikron123.com
Untuk membuat nyala LED 4 tergantung penekanan pushbutton 0, ubah baris program sehingga menjadi seperti gambar di samping.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
26
9. PUSHBUTTON SWITCH
www.mikron123.com
Lakukan Build dan download program seperti cara sebelumnya. Lihat hasilnya di hardware. LED 4 baru akan menyala ketika pushbutton 0 ditekan.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
27
10. PEMROGRAMAN LCD
www.mikron123.com
Klik icon Repository pada toolbar. CoIDE sudah menyediakan banyak library komponen untuk membantu kita dalam membuat program.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
28
10. PEMROGRAMAN LCD
www.mikron123.com
Klik tab Drivers pada bagian bawah. CoIDE sudah menyediakan banyak library driver untuk membantu kita memprogram koneksi ke berbagai perangkat dan sensor.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
29
10. PEMROGRAMAN LCD
www.mikron123.com
Manfaatkan library driver untuk LCD teks 16x2. Klik bagian Alphanumeric, lalu beri tanda contreng pada driver Character LCD dengan interface GPIO yang dibuat oleh CooCox.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
30
10. PEMROGRAMAN LCD
www.mikron123.com
Library driver LCD CooCox memerlukan komponen xCORE pada Peripherals. Klik tab bagian Peripherals, lalu beri tanda contreng pada xCORE.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
31
10. PEMROGRAMAN LCD
www.mikron123.com
Pada folder CoX_Driver sub LCD_Character yang sudah dibuatkan oleh CoIDE, klik ganda pada file hd44780.h Lalu pada sekitar baris 100, ubah definisi pin LCD agar sesuai dengan koneksi hardware yang ada, sehingga menjadi seperti gambar di samping. P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
32
10. PEMROGRAMAN LCD
www.mikron123.com
Klik kembali ke isi tampilan program main.c Kita sudah bisa menambahkan kode program untuk menggunakan LCD.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
33
10. PEMROGRAMAN LCD
www.mikron123.com
• Untuk mulai menggunakan LCD, lakukan inisialisasi dengan perintah berikut: HD44780Init(); • Untuk membersihkan layar LCD, gunakan perintah berikut:
HD44780DisplayClear(); • Untuk pergi ke suatu baris dan kolom tertentu, gunakan perintah berikut: HD44780LocationSet(x,y); • Untuk membersihkan layar LCD, gunakan perintah berikut: HD44780DisplayString(“tulisan”); Keterangan: Nilai x diisi dengan nomor kolom LCD yang dituju (pilih 0 s/d 15 untuk LCD 16x2). Nilai y diisi dengan nomor baris LCD yang dituju (pilih 0 atau 1 untuk LCD 16x2).
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
34
www.mikron123.com
Untuk menampilkan tulisan di LCD sebelum pengecekan tombol, tambah baris program sehingga menjadi seperti gambar di samping.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
35
www.mikron123.com
Lakukan Build dan download program seperti cara sebelumnya. Lihat hasilnya di hardware. LCD menampilkan tulisan yang diprogramkan.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
36
www.mikron123.com
Terima kasih telah mempelajari.
Silakan belajar lebih lanjut & berkreasi dengan Mikrokontroler ARM.
PRASIMAX MIKRON Lab & Training Center Jl. Margonda Raya No.494D Lantai 3 Depok 16424 Email:
[email protected] | Web: www.mikron123.com
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
37
www.mikron123.com
PAKET CARA MUDAH BELAJAR MIKROKONTROLER ARM MikroARM Starter Pack Hardware: + Board ARM + Smart LCD 16x2 + I/O Logic Tester
MikroARM Basic Extension Pack Hardware: + Keypad 4x4 + Analog Sensor
MikroARM Intermediate Extension Pack Hardware: + Modul RTC
Ebook Pengenalan: + Instalasi + Pemrograman: - LED - Pushbutton - LCD
Ebook Basic: + Dasar Bahasa C + Pemrograman: - Keypad - ADC - Data flash
Ebook Intermediate: Ebook Advance: + Pemrograman: + Standar CMSIS - Komunikasi Serial + Pemrograman: - Komunikasi USB - SD card - Timer & Counter - Custom Library - RTC - Real Time O/S
Available
Available
Available soon
MikroARM Advance Extension Pack Hardware: + Modul SD Card
Available soon
Lebih jauh dapat dilihat di www.mikron123.com , email
[email protected] P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
38
www.mikron123.com
REFERENSI [1] Yiu, Joseph. The Definitive Guide to the ARM Cortex-M0. Elsevier Inc, 2011. [2] ARM. Cortex-M0 Technical Reference Manual. ARM Holding Limited, 2009.
[3] Nuvoton. NuMicro™ Family NUC120 Data Sheet. Nuvoton Technology Corporation, 2011. [4] Innovative Electronics. Manual DT-ARM NUC 120 Board. Innovative Electronics, 2013.
[5] CooCox. 2013. CoIDE User Guide. http://CooCox.org/CooCox_CoIDE.htm. 1 Januari 2014.
P E N G E N A L A N P E M R O G R A M A N M I K R O KO N T R O L E R A R M
39