Senin, 10 Maret 2014

Cara Menggunakan USBasp-Programmer Di Linux

Untuk memprogram mikrokontroler (disini saya membahas Atmega 16/32/8535) di atas Sistem Operasi Windows mungkin kita sudah terbiasa dan dengan fasilitas-fasilitas yang sangat memudahkan para programmer. Namun, jika suatu saat kita harus melakukan pemrograman mikrokontroler di atas OS Linux, apa yang harus kita lakukan ?.
Pada tutorial kali ini saya akan berbagi pengalaman tentang cara melakukan pemrograman mikrokontroler Atmel di atas OS Linux. Disini peralatan yang saya gunakan adalah :
  • Trainer AVR V2.0 buatan KEI Electronic dengan uC Atmega 16A
  • USBasp-Programmer, dan
  • PC dengan OS Linux Ubuntu 13.10 Desktop Versi 64bit
Sebelumnya kita harus memiliki AVR toolchain terinstall pada OS Linux yang kita gunakan. Berdasarkan sumber dari link berikut : http://stab-iitb.org/wiki/AVR_on_Linux, kita membutuhkan 5 paket berikut untuk membuat AVR-GCC Toolchain :
gcc The actual C/C++ Compiler
binutils A collection of tools, including the assembler, linker and some other tools to manipulate the generated binary files.
libc-avr A subset of the standard C Library with some additional AVR specific functions. The libc-avr package also includes the AVR specific header files.
gdb The debugger. See the Debugging section for more information about this.
avrdude A Programm to download/upload/manipulate the ROM and EEPROM of an AVR MCU.

Pada Ubuntu, kita dapat melakukan penginstalan paket-paket tersebut dengan perintah ;
sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude
Setelah itu kita perlu melakukan tahapan-tahapan konfigurasi berikut :
  • Hubungkan USBASP-Programmer ke Port USB PC yang kita gunakan, kemudian cek berapa ID dari device tersebut :
it@it-H55M-S2:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 004: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 004: ID 1c4f:0003 SiGma Micro HID controller
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
  • Terlihat bahwa USBASP-Programmer memiliki ID 16c0:05dc. 16C0 adalah ID Vendor, sedangkan 05dc adalah Product ID.
  • Agar USBASP-Programmer dikenali oleh komputer yang kita gunakan, maka kita harus mendefinisikan rule baru :
it@it-H55M-S2:~$ ls -l /etc/udev/rules.d/
-rw-r--r-- 1 root root 441 Des 9 11:06 70-persistent-net.rules
-rw-r--r-- 1 root root 1157 Okt 12 18:01 README
 
it@it-H55M-S2:~$ sudo gedit /etc/udev/rules.d/60-atmega.rules
    # USBasp
    ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="plugdev", MODE="0666", SYMLINK+="usbasp"
 
it@it-H55M-S2:~$ ls -l /etc/udev/rules.d/
total 16
-rw-r--r-- 1 root root 236 Mar 10 09:50 60-atmega.rules
-rw-r--r-- 1 root root 234 Mar 10 09:44 60-atmega.rules~
-rw-r--r-- 1 root root 441 Des 9 11:06 70-persistent-net.rules
-rw-r--r-- 1 root root 1157 Okt 12 18:01 README
  • Pada rules diatas, kita membuat USBasp hanya bisa dijalankan oleh user yang tergabung dalam group “plugdev”. User yang saya gunakan adalah "it", dan sudah termasuk di dalam group “plugdev”.
it@it-H55M-S2:~$ id it
uid=1000(it) gid=1000(it) groups=1000(it),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),112(lpadmin),124(sambashare)
  • Kalau user yang anda gunakan belum termasuk kedalam group plugdev, silahkan anda modifikasi group user tersebut agar tergabung ke dalam member group "plugdev" dengan perintah berikut :
sudo usermod -a -G plugdev user_anda
  • Restart udev.
it@it-H55M-S2:~$ sudo /etc/init.d/udev restart
  • Setelah melakukan langkah diatas, kalau USBasp-Programmer anda sudah terhubung ke PC maka anda akan mendapatkan simlink di dalam folder /dev :
it@it-H55M-S2:~$ ls -l /dev/u*
crw------- 1 root root 10, 223 Mar 10 08:17 /dev/uinput
crw-rw-rw- 1 root root 1, 9 Mar 10 08:17 /dev/urandom
lrwxrwxrwx 1 root root 15 Mar 10 09:46 /dev/usbasp -> bus/usb/006/005 
  • Namun kalau USBasp-Programmer anda belum terhubung dengan PC, maka anda tidak akan mendapatkan simlink usbasb di dalam folder /dev seperti ini :
it@it-H55M-S2:~$ ls -l /dev/u*
crw------- 1 root root 10, 223 Mar 10 08:17 /dev/uinput
crw-rw-rw- 1 root root 1, 9 Mar 10 08:17 /dev/urandom
OK, sampai disini kita sudah menyelesaikan tahap awal yang cukup penting agar USBasp-Programmer kita bisa digunakan di PC Linux. Kemudian tahap selanjutnya adalah mencari atau menginstall User Interface yang dapat digunakan untuk menjalankan avrdude, agar kita mendapatkan kemudahan dalam menggunakan USBasp-Programmer untuk mengisikan file Hex ke dalam mikrokontroler.
Setelah melakukan browsing di google,  akhirnya saya mendapatkan software GUI yang cukup mudah digunakan untuk menjalankan avrdude, yaitu AVRDUDESS yang saya dapat dari link berikut : http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/. Software ini adalah GUI untuk avrdude  yang dapat digunakan di Linux dan Mac OS X, asalkan sudah terinstall Mono. Untuk menjalankannya di Windows kita membutuhkan .NET Framework 2.0 SP1 atau yang lebih baru. Langkah-langkah yang harus anda lakukan adalah :
  • Install Mono di Ubuntu 13.10 Desktop anda. Untuk mudahnya gunakan saja synaptic
  • Download AVRDUDESS di sini atau di sini
  • Kemudian ekstrak file avrdudess yang telah di download :
it@it-H55M-S2:~$ mkdir gui-atmega              
it@it-H55M-S2:~$ mv avrdudess_20140102.zip gui-atmega/
it@it-H55M-S2:~$ cd gui-atmega/
it@it-H55M-S2:~/gui-atmega$ unzip avrdudess_20140102.zip
Archive:  avrdudess_20140102.zip
AVRDUDESS - A GUI for AVRDUDE
http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/
  inflating: TODO.txt                
  inflating: avrdude.conf            
  inflating: avrdude.exe             
  inflating: avrdudess.exe           
  inflating: avr-size.exe            
  inflating: bits.xml                
  inflating: Changelog.txt           
  inflating: config.xml              
  inflating: Credits.txt             
  inflating: License.txt             
  inflating: presets.xml             
  inflating: Readme.txt               
  • Kemudian anda dapat langsung menjalankan AVRDUDESS :
it@it-H55M-S2:~/gui-atmega$ mono avrdudess.exe
  • Sesaat setelah itu akan tampil Jendela aplikasi AVRDUDESS :
  • Hubungkan pin-pin / kabel usbasp dengan mikrokontroler :
USBasp Programmer      Mikrokontroler Atmega
MOSI MOSI
MISO MISO
SCK SCK
Reset Reset
Ground Ground
  • Pilih jenis Programmer yang digunakan (usbasp) dan file hex yang akan diisikan ke mikrokontroler. Kemudian tentukan tipe mikrokontroler yang digunakan, atau klik tombol "Detect" untuk mendeteksi secara otomatis tipe mikrokontroler yang digunakan.
  • Terakhir tekan tombol Program!. Kalau berhasil maka anda akan mendapatkan tampilan seperti berikut :
Baiklah, demikian dulu tutorial kali ini. Sekarang kita sudah dapat memprogram mikrokontroler menggunakan USBasp-Programmer melalui PC berbasis Linux.

Selamat mencoba !!!

Tidak ada komentar:

Posting Komentar