Sunday, March 9, 2014

Program "Hello world" dengan XMEGA

Mengapa program "Hello world"?
Biasanya jika kita belajar pemrograman maka contoh pertama yang diberikan adalah menulis "Hello world" pada I/O, Monitor atau Printer. Nah, kalo pada mikrokontroler akan sangat sulit jika harus mengeluarkan tulisan "Hello world" ke Monitor. Bahkan untuk mengeluarkan tulisan "Hello world" ke LCD  membutuhkan keahlian menengah.

Untuk mikrokontroler program "Hello world-nya" adalah program hidup matikan LED, atawa bahasa kerennya Flip-flop.
"Halah, kalo cuma bikin Flip-flop ngapain pakai xmega, Mas?!".
Itulah komentar generasi serba instan, yang maunya nyentuh mikro terus bisa bikin alat/aplikasi yang wah. Kalo memang itu maunya, yawis, beli saja modul 'made in Italy' yang versi Cinanya Rp190ribuan terus download program yang diinginkan di internet, jadi deh :) :P

Sudah deh ngocehnya, kita langsung praktek saja :D. Pada tulisan ini program ditulis dalam bahasa C menggunakan aplikasi AVR Studio 4.18 dan compiler AVR GCC.

Yang anda butuhkan untuk memulai membuat program adalah,
Sofware:

1. Program compiler (AVR Studio 4.18)
Anda dapat menggunakan BASCOM, COVIS, dll, tentu anda sudah sering menggunakan compiler-compiler tersebut untuk AVR. Compiler-compiler tersebut sudah support xmega. Dalam kesempatan ini saya menggunakan AVR Studio 4.18. AVR Studio tidak support untuk beberapa seri xmega. Untuk generasi xmega baru seperti seri E, anda dapat menggunakan ATMEL Studio. ATMEL Studio adalah aplikasi yang lengkap untuk semua produk ATMEL, tetapi membutuhkan spesifikasi hardwer PC yang lebih.

2. WINAVR atau AVR GCC. saya menggunakan WinAVR-20100110 dapat anda download di http://sourceforge.net/projects/winavr/files/WinAVR/20100110/

3. Program downloader (Univ PDI&ISP  ver.1.0)
Anda dapat menggunakan downloader xmega yang lain semisal AVRISP mkII, JTAGICE mkII dan lain-lain. Tetapi jika anda menggunakan Univ PDI&ISP anda harus menggunakan program bawaannya yaitu Program Univ PDI&ISP  ver.1.0.

Hardware:
1. Downloader Univ PDI&ISP
Anda dapat menggunakan Univ PDI&ISP atau dapat menggunakan yang lain.


2. Minimum sistem xmega
Mungkin belum banyak minimum sistem xmega dijual dinegara kita, tidak seperti minimum sistem megaAVR. Salah satu minimum sistem yang sebentar lagi dijual di Indonesia adalah mini_xmega16/32. Minimum tersebut sudah termasuk Downloader Univ PDI&ISP, jadi anda tidak butuh downloader xmega lagi jika anda menggunakan minimum ini.

Jika anda belum bisa menyediakan minimum sistem, tidak mengapa. Anda dapat membuat minimum sendiri. Xmega belum tersedia dalam packaging DIP, dan yang mungkin kita buat secara manual minimum sistenya adalah yang dalam packaging TQFP. berikut ini gambar minimum ATxmega32D4 TQFP dengan bahan-bahan yang mudah didapat.


Minimum ini dibuat dengan karton bekas bungkus susu balita, isolasi bolak-balik, kabel serat tunggal berisolasi, LED, Resistor, Capasitor, IC penurun tegangan AMS1117 -3.3V dan Header 4pin.  Tutorial membuat minimum sistem ini InsyaAlloh saya bahas tersendiri dalam blog ini.
Berikut ini gambar rangkaiannya. 



Urutan Headernya adalah:
  1. GND (Ground)
  2. VCC (Sumber tegangan 5-3.6V)
  3. RST (Reset)
  4. PDI (Program and Debug Interface) 
Selanjutnya buka AVR Studio.
pilih 'New Project'


pilih 'AVR GCC', tentukan lokasi penyimpanan, tulis Project name (dalam contoh diberi nama 'main'), lalu tekan tombol 'Next>>'


pilih 'AVR Simulator 2', lalu pilih mikrokontroler yang digunakan (dalam contoh ATxmega32D4), lalu tekan tombol 'Finish'


dan inilah tampilan AVR Studio dengan file 'main.c' yang terbuka.

Tulis potongan program di bawah ini pada editor file 'main.c'

Karena kita menggunakan I/O maka 'avr/io.h' harus di-include, dan kita juga menggunakan subrotin _delai_ms(x) maka 'delay.h' yang berada pada direktori util di-include-kan.
Memulai program kita lakukan inisialisasi terhadap DIR (direction atau arah) PortA dan PortB. dalam program di atas DIR sebagai Output. Kemudian PortA dan PortB di SET, atawa PortA dan PortB mengeluarkan logika High.
Pada loop program, dibuat PortA.0 dan PortA.1 hidup dan mati bergantian.

Xmega dari awal akan menggunakan sumber clock internal 2MHz. Kita dapat mengalihkan ke sumber clock yang lain pada inisialisasi program. Subrotin '_delai_ms(x)' dapat bekerja dengan tepat jika 'Compiler Option' untuk Frekuensi Xtal disertakan. Caranya adalah tekan tombol 'Edit Current Configuration Option', atau yang dilingkari merah pada gambar di bawah.



Isi kolom 'Frequency' dengan 2000000 hz yang berarti 2Mhz. lalu tekan tombol 'OK'
Setelah itu compile program dengan menekan tombol 'Build Active Configuration' atau tekan F7.
Pastikan tidak terdapat pesan error atau warning pada cendela 'Build'.

Sampai dengan proses ini program anda telah di-compile dan sudah dibuat file 'main.hex'. File ini yang selanjutnya dapat anda download ke xmega dengan bantuan Univ PDI&ISP.

Hubungkan minimum mikro ke Univ PDI&ISP, hubungkan Univ PDI&ISP ke PC.

Jalankan program Univ PDI&ISP, lalu Tekan tombol 'Load Flash'. Dari folder tempat anda menyimpan project buka folder 'default'. Pilih file 'main.hex' seperti gambar di bawah, lalu tekan 'Open'.

Setelah itu anda dapat menekan tombol 'Write Flash' untuk proses download program ke xmega.

Selamat, Selesai deh downloadnya :)

Anda juga dapat menggunakan fungsi 'Auto Prog' agar mempermudah proses download selanjutnya jika anda melakukan editting program.
Langkah yang diperlukan adalah mencentang fungsi-fungsi apa saja yang ingin dilakukan pada saat Auto Prog pada Tab 'Setting' kelompok 'Auto'. Default-nya adalah 'Reload FLASH', 'Erase Device', 'Program FLASH', 'Verify FLASH'. Anda dapat mencentang fungsi-fungsi lain yang anda butuhkan.
Selanjutnya setiap anda menekan tombol 'Auto Prog' maka Univ PDI&ISP akan melakukan fungsi-fungsi yang telah anda centang tadi.

Karena semua fungsi dalam proses download sudah terangkum  dalam satu tombol yaitu 'Auto Prog', maka form Univ PDI&ISP dapat anda perkecil agar tidak memenuhi layar monitor anda. Tombol 'Min' dapat anda tekan untuk memperkecil form Univ PDI&ISP.

Anda dapat mengedit program anda, meng-compile dan download program cukup dengan menekan tombol 'Auto Prog'.

berikut ini video hasil download mikro xmega dengan Univ PDI&ISP









No comments: