28 Nov 2014

0
Komentar

Programming AVR dengan Geany


Bismillahirrahmaanirrahiim.

Sebelumnya, saya telah membahas mengenai pemrograman mikrokontroler AVR di linux dengan menggunakan AVRDude. AVRDude adalah barisan perintah yang digunakan untuk dapat mengirim hasil program (.hex) ke dalam mikrokontroler AVR.  Kemudian pada posting kali ini, kita akan mencoba menggunakan Text Editor sebagai pengganti IDE berbayar seperti CodeVision dan semacamnya. Tujuannya adalah agar tidak bergantung pada IDE tertentu, dan memahami bahwa untuk melakukan programming yang dibutuhkan hanyalah teks editor biasa dan sebuah compiler.

Text Editor apapun bisa digunakan, Notepad sekalipun. Tapi disini, saya menggunakan Geany. Selain fungsinya sebagai text editor, Geany memiliki banyak fitur plugin yang bisa digunakan untuk memudahkan development program. Geany dapat mensuport berbagai bahasa pemrograman seperti C, C++, C#, Java, PHP, Python, dan lain sebagainya.

Untuk dapat memprogram Mikrokontroler AVR dengan Geany, caranya sangat mudah. Pastikan AVRDude telah terinstall (bisa dilihat di post saya sebelumnya mengenai pemrograman AVR di Linux dengan AVRDude). Untuk install Geany, silahkan download di link berikut ini : 
(Untuk Pengguna Ubuntu dapat langsung mencarinya di Software Center)
Berikut ini adalah screenshot tampilan dari Geany: 

Setting Build Command
Step berikutnya, untuk memudahkan kita dalam proses compile dan build. kita dapat mensetting Build Command. Berikut ini langkah-langkahnya:


Selanjutnya, ketikkan perintah seperti pada contoh dibawah ini (terdapat di post sebelumnya). Klik kolom pertama untuk merubah nama perintah buildnya.
Build: avr-gcc -w -Os -DF_CPU=1000000UL -mmcu=atmega8 -c -o %e.o %e.c
Link: avr-gcc -w -mmcu=atmega8 %e.o -o %e
Compile: avr-objcopy -O ihex -R .eeprom %e %e.hex


Pada perintah diatas, beberapa parameternya dapat dirubah sesuai dengan kebutuhan. Misal -mmcu, adalah tipe mikrokontroler AVR yang akan diprogram. Kemudian DF_CPU, yaitu kecepatan clock yang sedang digunakan mikrokontroler AVR tersebut.
Kemudian yang terakhir adalah perintah upload hex, pada baris Execute Command, isikan perintah berikut ini:
sudo avrdude -F -V -c usbasp -p ATmega8 -P usb -U flash:w:%e.hex

Parameter yang dapat dirubah adalah usbasp, dimana dapat diganti dengan programmer AVR yang lain, kemudian ATmega8, dapat diganti dengan tipe mikrokontroler AVR yang sedang digunakan. Untuk syntax %e, digunakan sebagai pengganti nama file. Sehingga perintah build akan otomatis mengeksekusi file yang sedang aktif tanpa perlu merubah lagi nama filenya pada Build Command.

Testing
Untuk mencoba apakah setting telah dilakukan dengan benar, maka kita bisa mencobanya langsung dengan menggunakan program sederhana berikut ini:

#include <avr/io.h>
#include <avr/delay.h>
int main(void)
{
     DDRB |= (1 << PB0) | (1 << PB1);
     while(1)
     {
            PORTB |= (1 << PB0);
            _delay_ms(500);
            PORTB = ~(1 << PB0);
            _delay_ms(500);
        }
}

Selanjutnya, buat rangkaian seperti pada gambar berikut ini:


Kemudian kita coba perintah build yang sudah kita buat sebelumnya, di main toolbar klik (Atau bisa juga menggunakan Hotkeys F8 atau F9): 1. Build > Build 2. Build > Link 3. Build > Compile Lalu jika tidak ada pesan error, kita bisa langsung menguploadnya ke mikrokontroler AVR. Jangan lupa pastikan downloader sudah terhubung dengan PC dan mikrokontroler. Klik perintah Excecute command yang sudah kita buat sebelumnya (Atau tekan F5). Akan muncul dialog terminal seperti berikut ini:


Jika tidak ada pesan Error dan LED kedap-kedip tiap setengah detik (_delay_ms(500);), maka proses uploading program berhasil.

Penutup
Sekian tutorial menggunakan text editor Geany untuk memprogram AVR. Selamat mencoba.

31 Okt 2014

0
Komentar

Mengenal AVRDude

Bismillaahirrahmaanirrahiim.

Curhat sedikit: Saya mulai mengenal GNU/Linux sejak SMK. Berawal dari saran seorang sahabat saya, GNU/Linux pertama saya adalah OpenSUSE. Seiring waktu, ketertarikan mengenai GNU/Linux semakin besar. Sampai sekarang, saya sudah menggunakan GNU/Linux lebih dari 3 tahun.

Kebetulan saat itu saya sedang asik-asiknya mempelajari mikrokontroler AVR. Dan sudah terlanjur terbiasa dengan CodeVision. Singkatnya, saya mencoba menjalankan CodeVision di GNU/Linux dengan bantuan Wine.

Saya dapat membuat program dan melakukan compile dengan Codevision + Wine. Hanya saja karena keterbatasan pemahaman dan pengalaman, saya tidak tahu bagaimana cara burning file hasil compile (*.hex) ke mikrokontroler AVR di GNU/Linux. Setelah mencoba mempelajari dari berbagai macam sumber, saya mengenal AVRDude.

screenshot-codevision-linux
Running Codevision dengan Wine
Apa itu AVRDude?
Secara sederhana adalah software/tool untuk memprogram memory Flash maupun EEPROM pada Mikrokontroler AVR. Juga dapat digunakan untuk program Fuse dan Lock Bits yang biasa digunakan untuk clock setting.

Jadi untuk melakukan flashing file *.hex ke mikrokontroler AVR, bisa menggunakan AVRDude.
Langkah-langkahnya akan dijabarkan di poin selanjutnya.

1. Install AVRDUDE
Dibawah ini adalah perintah untuk melakukan instalasi AVRDude di GNU/Linux. 
sudo apt-get install gcc-avr avr-libc uisp avrdude

Untuk pengguna Windows, bisa melakukan instalasi dengan download executable filenya disini:

Dan untuk memastikan bahwa AVRDude telah terinstall, ketikkan perintah "avrdude" di terminal/cmd. Harusnya akan tampil pesan seperti berikut ini :

Avrdude telah terinstall
2. Cara Burn/Upload File .hex
Disini saya menggunakan USBASP sebagai downloader, dan ATmega8 sebagai target. File hasil kompilasi saya namakan file.hex. Untuk mengupload hasil program ke AVR, dapat menggunakan perintah dibawah :
sudo avrdude -F -V -c usbasp -p ATmega8 -P usb -U flash:w:file.hex

Proses upload file hex ke MCU sukses

Penutup
Sekian post singkat kali ini. Apabila ada kesulitan, silahkan tinggalkan pesan di kolom komentar.
Semoga kita selalu diberi kesehatan oleh Allah agar dapat terus menuntut ilmu dan mengamalkannya.

</zep>