• Tidak ada hasil yang ditemukan

TUTORIAL MICROCONTROLLER AVR Part I (2006)

N/A
N/A
Protected

Academic year: 2018

Membagikan "TUTORIAL MICROCONTROLLER AVR Part I (2006)"

Copied!
9
0
0

Teks penuh

(1)

TUTORIAL MICROCONTROLLER AVR

Part I (2006)

Iwan Setiawan,ST., MT

iwan@elektro.ft.undip.ac.id

1.1. MICROCONTROLLER VS MICROPROCESSOR

Microcontroller sebagai sebuah “one chip solution” pada dasarnya adalah rangkaian terintregrasi (Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen pembentuk sebuah komputer. Berbeda dengan penggunaan microprocessor yang masih memerlukan komponen luar tambahan seperti RAM, ROM, Timer, dan sebagainya--untuk sistem microcontroller, tambahan komponen diatas secara praktis hampir tidak dibutuhkan lagi. Hal ini disebabkan semua komponen penting tersebut telah ditanam bersama dengan sistem prosesor ke dalam IC tunggal microcontroller bersangkutan. Dengan alasan itu sistem microcontroller dikenal juga dengan istilah populer the real Computer On a Chip -komputer utuh dalam keping tunggal, sedangkan sistem microprocessor dikenal dengan istilah yang lebih terbatas yaitu Computer On a Chip-komputer dalam keping tunggal.

Berdasarkan fungsinya, microcontroller secara umum digunakan untuk menjalankan program yang bersifat permanen pada sebuah aplikasi yang spesifik (misal aplikasi yang berkaitan dengan pengontrolan dan monitoring). Sedangkan program aplikasi yang dijalankan pada sistem microprosesor biasanya bersifat sementara dan berorientasi pada pengolahan data. Perbedaan fungsi kedua sistem diatas secara praktis mengakibatkan kebutuhan minimal yang harus dipenuhi juga akan berbeda (misal ditinjau dari kecepatan detak operasi, jumlah RAM, panjang register, dan lain sebagainya). Hampir tidak dapat disangkal, dewasa ini akan sukar dijumpai seseorang yang masih menggunakan komputer dengan microprocessor berbasis 8 atau 16 bit (misal microprocessor 8088 dan 8086 produk perusahaan Intel). Mengapa demikian?, salah satu alasannya— Perangkat lunak komputer yang beredar saat ini umumnya mensyaratkan kecepatan CPU yang sangat tinggi (dalam orde Mega bahkan GigaHz) serta memori dengan kapasitas sangat besar (dalam orde MegaByte) yang mana hal tersebut tidak mungkin dapat dipenuhi oleh sistem microprocessor lama tersebut. Sedangkan untuk sistem microcontroller, program yang dijalankan biasanya tidak memerlukan sumber daya sebanyak dan sebesar itu. Untuk aplikasi kontrol sederhana dan tingkat menengah, microcontroller yang digunakan cukup berbasis 4 sampai 8 bit. Microcontroller dengan ukuran lebih besar (misal 16 dan 32 bit) umumnya hanya digunakan untuk aplikasi-aplikasi khusus pada bidang pengolahan citra atau bidang kontrol yang memerlukan kepresisian tinggi.

1.2. PERKEMBANGAN MICROCONTROLLER

Pada awal perkembangannya (yaitu sekitar tahun 1970-an), sumber daya perangkat keras serta perangkat lunak microcontroller yang beredar masih sangat terbatas. Saat itu, sistem microcontroller hanya dapat diprogram secara khusus dengan perangkat yang dinamakan EPROM programmer. Sedangkan perangkat lunak yang digunakan umumnya berbasis bahasa assembler yang relatif sulit dipelajari.

(2)

terutama dengan digunakannya metode pemrograman ISP (In system Programming). Dengan menggunakan metode ini kita dapat memprogram sistem microcontroller sekaligus mengujinya pada sistem minimum atau papan pengembang (development board) secara langsung tanpa perlu lagi perangkat “pembakar“ program atau emulator secara terpisah. Selain itu, ditinjau dari aspek perangkat lunak pemrogramannya, dewasa ini banyak alternatif bahasa aras tinggi dari pihak ke-tiga, baik gratis maupun komersil yang dapat digunakan. Penggunaan bahasa aras tinggi ini (seperti Pascal, C, basic dan sebagainya) selain akan menghemat waktu pengembangan, kode program yang disusun juga akan bersifat lebih modular dan terstruktur.

Bagi para pemula yang berminat memperdalam microcontroller baik sekedar untuk tujuan penyaluran hobi atau kelak untuk tujuan yang lebih profesional, dewasa ini banyak microcontroller dari berbagai vendor yang dapat dijadikan sarana untuk berlatih (misal microcontroller PIC produk Microchip, COP-8 produk National, AT89S51/52 dan AVR produk Atmel, HC11 produk Motorola dan lain sebagainya). Untuk memutuskan microcontroller mana yang akan dijadikan sarana berlatih dan akan diperdalam secara serius, ada baiknya hal-hal berikut ini dijadikan bahan pertimbangan :

- Apakah microcontroller tersebut mudah dijumpai dipasaran

- Apakah banyak dukungan pihak ketiga dalam penggunaan microcontroller tersebut, (misalnya perusahaan-perusahaan pembuat papan pengembang, pemasok compiler serta debbuger untuk pemrogramannya, dan sebagainya)

- Apakah banyak referensi dan contoh-contoh program untuk panduan anda berlatih (misalnya dari sumber-sumber internet dan buku)

- Apakah banyak forum-forum diskusi (terutama di Internet) tempat anda dan programer lain berbagi pengalaman.

Dengan berbagai macam kelebihan yang dimiliki serta hal-hal yang menjadi bahan pertimbangan diatas, dewasa ini microcontroller AVR 8 bit produk perusahaan Atmel adalah salah satu microcontroller yang banyak merebut minat kalangan profesional dan juga cocok dijadikan sarana berlatih bagi para pemula. Hal ini selain karena ragam fitur yang ditawarkan, juga disebabkan kemudahan untuk memperoleh microcontroller tersebut (berikut papan pengembangnya) di pasaran dengan harga yang relatif murah. Selain itu berkaitan dengan rancangan arsitekturnya, microcontroller AVR ini juga cocok diprogram dengan menggunakan bahasa pemrograman aras tinggi (terutama bahasa C).

1.3 SEKILAS TENTANG MICROCONTROLLER KELUARGA AVR

(3)

konsep dan istilah-istilah dasarnya hampir sama, pemrograman level assembler-nya pun relative tidak jauh berbeda.

Berdasarkan arsitekturnya, AVR merupakan microcontroller RISC (Reduce Instruction Set

Computer) dengan lebar bus data 8 bit. Berbeda dengan sistem AT89S51/52 yang memiliki

frekuensi kerja seperduabelas kali frekuensi oscilator, frekuensi kerja microcontroller AVR ini pada dasarnya sama dengan frekuensi oscilator, sehingga hal tersebut menyebabkan kecepatan kerja AVR untuk frekuensi oscilator yang sama, akan dua belas kali lebih cepat dibandingkan dengan microcontroller keluarga AT89S51/52.

Dengan instruksi yang sangat variatif (mirip dengan sistem CISC-Complex Instruction Set

Computer) serta jumlah register serbaguna (general Purpose Register) sebanyak 32 buah

yang semuanya terhubung secara langsung ke ALU (Arithmetic Logic Unit), kecepatan operasi microcontroller AVR ini dapat mencapai 16 MIPS (enam belas juta instruksi per detik) —sebuah kecepatan yang sangat tinggi untuk ukuran microcontroller 8 bit yang ada di pasaran sampai saat ini.

Untuk memenuhi kebutuhan dan aplikasi industri yang sangat beragam, microcontroller keluarga AVR ini muncul di pasaran dengan tiga seri utama: tinyAVR, ClasicAVR (AVR), megaAVR. Berikut ini beberapa seri yang dapat anda jumpai di pasaran:

-ATtiny13 AT90S2313 ATmega103

Keseluruhan seri AVR ini pada dasarnya memiliki organisasi memori dan set instruksi yang sama (sehingga dengan demikian jika kita telah mahir menggunakan salah satu seri AVR, untuk beralih ke seri yang lain akan relative mudah). Perbedaan antara tinyAVR, AVR dan megaAVR pada kenyataannya hanya merefleksikan tambahan-tambahan fitur yang ditawarkannya saja (misal adanya tambahan ADC internal pada seri AVR tertentu, jumlah Port I/O serta memori yang berbeda, dan sebagainya). Diantara ketiganya, megaAVR umumnya memiliki fitur yang paling lengkap, disusul oleh AVR, dan terakhir tinyAVR.

Untuk memberi gambaran yang lebih jelas, tabel 1.1 berikut memperlihatkan perbedaan ketiga seri AVR ditinjau dari jumlah memori yang dimilikinya.

Table 1.1. Perbedaan seri AVR berdasarkan jumlah memori

Microcontroller AVR Memori (byte)

Jenis Paket IC Flash EEPROM SRAM

TinyAVR 8–32 pin 1 – 2K 64 – 128 0 – 128

AVR (classic AVR) 20–44 pin 1 – 8K 128 – 512 0 – 1 K MegaAVR 32–64 pin 8 – 128 K 512 – 4 K 512 – 4 K

(4)

(downloader) yang tepat, pengisian memori Flash dengan menggunakan saluran SPI ini dapat dilakukan bahkan ketika chip AVR telah terpasang pada sistem akhir (end system), sehingga dengan demikian pemrogramannya sangat fleksibel dan tidak merepotkan pengguna (Secara praktis metoda ini dikenal dengan istilah ISP-InSystemProgramming – sedangkan perangkat lunaknya dinamakan In System Programmer).

Untuk penyimpanan data, microcontroller AVR menyediakan dua jenis memori yang berbeda: EEPROM (Electrically Erasable Programmable Read Only Memory) dan SRAM (Static

Random Access memory). EEPROM umumnya digunakan untuk menyimpan data-data

program yang bersifat permanen, sedangkan SRAM digunakan untuk menyimpan data variabel yang dimungkinkan berubah setiap saatnya. Kapasitas simpan data kedua memori ini bervariasi tergantung pada jenis AVR-nya (lihat tabel 1). Untuk seri AVR yang tidak memiliki SRAM, penyimpanan data variabel dapat dilakukan pada register serbaguna yang terdapat pada CPU microcontroller tersebut.

Selain seri-seri diatas yang sifatnya lebih umum, Perusahaan Atmel juga memproduksi beberapa jenis microcontroller AVR untuk tujuan yang lebih khusus dan terbatas, seperti seri AT86RF401 yang khusus digunakan untuk aplikasi wireless remote control dengan menggunakan gelombang radio (RF), seri AT90SC yang khusus digunakan untuk peralatan sistem-sistem keamanan kartu SIM GSM, pembayaran via internet, dan lain sebagainya.

1.4 MICROCONTROLLER AVR DAN BAHASA C

Tak dapat disangkal, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal, Forth dan sebagainya) semakin populer dan banyak digunakan untuk memprogram sistem microcontroller. Berdasarkan sifatnya yang sangat fleksibel dalam hal keleluasaan pemrogram untuk mengakses perangkat keras, Bahasa C merupakan bahasa pemrograman yang paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya.

Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada tahun 1972, Bahasa C merupakan salah satu bahasa pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak kemudian mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) sebagai standar bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak pada pengembangan fungsi-fungsi library serta fasilitas IDE (Integrated Development

Environment)–nya saja.

(5)

Dalam kaitannya dengan pemrograman microcontroller, Tak pelak lagi bahasa C saat ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sangat efisien terutama untuk program microcontroller yang berukuran relatif besar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C dalam pemrograman memiliki beberapa kelebihan berikut: Mempercepat waktu pengembangan, bersifat modular dan terstruktur, sedangkan kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi).

Khusus pada microcontroller AVR, untuk mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien dalam mendekode serta mengeksekusi instruksi-instruksi yang umum dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel tetapi ada kerja sama dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut, yaitu IAR C)

Table 1.2. Beberapa Compiler C untuk microcontroller AVR

Compiler C Platform Keterangan

IAR C -DOS

-Windows General Public Licence

C-AVR -Windows Komersil

Small C for AVR -DOS Komersil

GNU C for AVR -Linux General Public Licence

LCC-AVR -Linux,

-Windows Free

Dunfields AVR -Windows Komersil

Seperti halnya compiler C untuk sistem microprocessor, di pasaran ada beberapa varian compiler C untuk memprogram sistem microcontroller AVR yang dapat dijumpai (lihat tabel 1.2).

Dengan beberapa kelebihan yang dimilikinya, saat ini CodeVisionAVR produk Perusahaan Pavel Haiduc merupakan compiler C yang relative banyak digunakan dibandingkan compiler-compiler C lainnya.

1.5 SEKILAS TENTANG PERANGKAT LUNAK CODEVISIONAVR

CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator.

(6)

Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya.

Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly (lihat gambar 1.1). Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang diprogram.

Gambar 1.1. IDE perangkat lunak CodeVisionAVR

Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code

Generator atau CodeWizardAVR (lihat gambar 1.2). Secara praktis, tool ini sangat

bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Gambar 1.3 berikut memperlihatkan beberapa penggal baris kode program yang dibangkitkan secara otomatis oleh CodeWizardAVR. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan

application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual

(7)

Gambar 1.2. Code Generator yang dapat digunakan untuk menginisialisasi register-register pada microcontroller AVR.

Disamping versi yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang dapat didownload dari internet secara gratis (lihat alamat URL: http://www.hpinfotech.ro) Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu tidak semua fungsi library yang tersedia dapat dipanggil secara bebas.

(8)

1.6 PAKET PEMROGRAMAN MICROCONTROLLER AVR LENGKAP

Seperti halnya belajar pemrograman komputer, agar mendapatkan pemahaman yang kuat dalam pemrograman microcontroller AVR, anda sebaiknya mencoba langsung membuat aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak CodevisionAVR versi demo pada dasarnya adalah sarana yang cocok dan telah cukup memenuhi kebutuhan minimal anda. Gambar 1.4. berikut memperlihatkan diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR dengan CodevisionAVR yang dapat anda lakukan :

Gambar 1.4. Alur pemrograman microcontroller AVR dengan menggunakan CodevisionAVR

Seperti terlihat pada gambar 1.4, CodevisionAVR produk Pavel Haiduc pada dasarnya telah mengintegrasikan komponen-komponen penting dalam pemrograman microcontroller AVR: Editor,Compiler C, assembler dan ISP (In System Programmer). Khusus dengan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak CodevisionAVR ini, salah satu diantaranya adalah Kanda System STK 200/300 produk Perusahaan Kanda yang terhubung pada saluran antarmuka port Paralel Komputer (gambar 1.5). Jika anda berencana membuat dongle yang kompatible dengan produk Kanda, rangkaiannya dapat dilihat pada Lampiran A (lihat situs: http:\\www.grandtonics.com). Atau jika mau membeli sistem yang siap pakai (berupa dongle beserta papan pengembangnya), salah satu produk dalam negeri dengan harga yang relative murah adalah DT AVR nano/micro System (gambar 1.6) produk Innovative Electronics, Surabaya. Alamat URL:http//www.innovative_electronic.com., Sistem ini kompatibel dengan kanda System STK 200/300. Untuk tujuan-tujuan percobaan, produk innovative_electronic ini sudah sangat memadai, selain mudah dihubungkan dengan modul-modul perangkat input/output, seperti modul LCD, keypad, array LED, penggerak motor stepper, dan sebagainya, sistem ini juga telah dilengkapi konverter TTL ke RS232 yang bermanfaat untuk komunikasi microcontroller AVR dengan komputer.

(9)

Gambar 1.5. Papan pengembang Kanda System STK 200/300 produk Perusahaan Kanda

Gambar 1.5. Papan pengembang DT AVR micro System compatible denganSTK 200/300

Referensi

Gambar

Table 1.2. Beberapa Compiler C untuk microcontroller AVR
Gambar 1.1. IDE perangkat lunak CodeVisionAVR
Gambar 1.2. Code Generator  yang dapat digunakan untuk menginisialisasi register-register pada microcontroller AVR
Gambar 1.5.  Papan pengembang Kanda System STK 200/300 produk Perusahaan Kanda

Referensi

Dokumen terkait

Oleh karena tidak ada penawaran dari peserta yang lulus evaluasi penawaran, maka POKJA V ULP Kabupaten Barito Timur menyatakan PELELANGAN GAGAL. Tindak lanjut pelelangan gagal

Sehubungan dengan Pelelangan Paket Pekerjaan Peningkatan Jaringan Irigasi D.I Kuta Lingga pada Dinas Pengairan Kabupaten Aceh Tenggara Sumber Dana APBK Aceh Tenggara Tahun

Tingkatan respon adalah menerima ( receiving ), merespon (responding), enghargai ( valuing ), dan bertanggung jawab ( responsible ) (Sunaryo, 2004; Purwanto, 2005). 3)

DSS ini membantu untuk proses pengambilan keputusan dengan memungkinkan para pengguna untuk mendapatkan informasi yang bermanfaat dari data yang tersimpan di dalam database yang

Dalam pelajaran ini, Anda akan diajak untuk mempelajari dan mempraktikkan cara mendengarkan informasi isi program sekolah, membaca intensif artikel pada internet, mengidentifikasi

[r]

Chapter Ten 14 Ringkasnya, kurva IS menunjukkan kombinasi tingkat bunga dan tingkat pendapatan yang konsisten dengan ekuilibrium pada pasar barang dan jasa. Kurva IS digambar

Bahwa Peraturan Menteri Badan Usaha Milik Negara Nomor : PER- 15/MBU/10/2014 sebagaimana dimaksud angka 1 di atas, perlu disesuaikan dengan perkembangan kebutuhan Sumber Daya