Source Code



Pengantar Pemrograman AVR

  • Ade Malsasa Akbar
  • 16 January 2014 at 12:03
  • Program
  • 293
  • 78
  • United States
 


Author: Ade Malsasa Akbar Language: United States
License: Beta
Price: 0 USD
Size: 0 KB
Downloads: 23 times

 

Tutorial sederhana ini sejatinya adalah catatan pengalaman saya setelah berhasil membakar (download) .hex ke dalam chip Atmega128 melalui kabel USBASP dengan program avrdude di Ubuntu. Tutorial ini –walaupun sederhana– ditujukan sebagai pijakan awal Anda untuk memrogram mikrokontroler AVR dengan hanya menggunakan Linux. Tutorial ini diharap memberi gambaran Anda untuk menggantikan semua aplikasi Windows yang biasa dipakai semisal untuk IDE: Codevision AVR, AVR Studio, dan Atmel Studio; dan untuk burner: Khazama dan Extreme Burner. Tutorial ini menjelaskan cara penggunaan avrdude sebagai pengganti Khazama atau Extreme Burner di Linux. Perlu Anda ketahui sebetulnya Khazama sendiri hanya GUI untuk avrdude yang dibuat khusus untuk USBASP[1] sedangkan Extreme Burner sendiri sudah memiliki versi Linux[2]. Jadi, yang berperan dalam pembakaran .hex di sistem operasi apa pun adalah avrdude. Semoga tutorial ini bermanfaat.

Prinsip Pemrograman AVR di Linux

  1. Tulis kode di IDE (seperti Codeblocks).
  2. Kompilasikan jadi .o dengan avr-gcc.
  3. Link jadi .hex dengan avr-objcopy[3][4].
  4. Bakar ke Atmega dengan avrdude.

Sebenarnya 4 langkah ini sama dengan prinsip pemrograman di Windows. Hanya saja semuanya Anda lakukan dengan IDE seperti Atmel Studio sehingga tidak tampak langkah-langkahnya. Untuk tidak disalahpahami, IDE di Linux semisal Codeblocks juga canggih (terdapat fitur syntax highlighter + code completion) layaknya Anda peroleh di Atmel Studio sehingga mudah menulis kode C. Tulisan ini hanya berfokus pada langkah ke-4.

Hardware yang Dibutuhkan

  1. Perangkat kabel USBASP (bukan USBISP MKII).
  2. Perangkat minimum system Atmega128.
  3. Laptop dengan sistem operasi Linux (saya pakai Ubuntu).
usbasp

USBASP

minimum

Minimum System Atmega128

Software yang Dibutuhkan

  1. avrdude
  2. avr-gcc
  3. binutils
  4. avr-libc[3]
  5. Terminal
  6. Penyunting teks apa pun (sebagai ganti Atmel Studio untuk menulis kodenya)
atmega-avrdude-ubuntu6

Penyunting teks Kate untuk pemrograman AVR

Perlu saya tuliskan di sini biar kita tidak salah kaprah. Yang dilakukan oleh Atmel Studio sendiri sebetulnya hanyalah, hanyalah, memanggil avrdude untuk membakar ke chip Atmega. Jadi, sebetulnya yang diperlukan itu avrdude bukan Atmel Studio-nya. Lagipula, Atmel Studio sendiri hanya memakai avr-gcc untuk melakukan kompilasi kode C ke OBJ/ELF dan avr-objcopy linking ke HEX. Walhamdulillah, justru avrdude dan avr-gcc itu asalnya dibuat untuk Linux. Mereka open source software. Maka semestinya bisa juga kita lakukan hal yang sama. Tidak harus dengan Windows. Karena di sini saya hanya menunjukkan cara membakar, saya tidak menjelaskan penulisan kode pada penyunting teks. Namun saya jelaskan bahwa saya bisa memakai aplikasi Gedit, Geany, atau Kate yang terinstal di Ubuntu saya untuk melakukannya. Anda punya? Pakailah.

Seluruh kebutuhan di atas dapat diperoleh dalam 1 perintah saja di Ubuntu yaitu sudo apt-get install avrdude avr-gcc avr-libc binutils.

Spesifikasi Sistem

Supaya tidak kebingungan, maka saya sebut di sini spesifikasi mesin saya.

  • Laptop ASUS X44C 32 bit dengan satu port USB 2.0 dan satu port USB 3.0.
  • Ubuntu 12.04 32 bit.
  • Terinstal aplikasi IDE Codeblocks, CodeLite, Geany, Eclipse, serta penyunting teks mutakhir Kate di Ubuntu saya.
  • Terinstal GNOME Terminal dan Konsole di Ubuntu saya.

Langkah-Langkah Download HEX ke Atmega

  1. Tancapkan kabel USBASP pada port USB 2.0.
  2. Tancapkan kabel USBASP sisi ujung pada minimum system Atmega.
  3. Jalankan perintah avrdude.

Perintah untuk Download HEX

# avrdude -c usbasp -P usb -p atmega128 -U flash:w:namaprogramnya.hex

Penjelasan Perintah[5]

Perlu diketahui sebelumnya. Pertama, perintah inilah yang digunakan oleh Atmel Studio untuk melakukan pembakaran. Kedua, karena Anda menggunakan Linux, Anda harus melakukannya dalam mode root (tanda # di atas). Perintah untuk menjadi root adalah su. Sekarang, mari perhatikan apa maksud perintah di atas.

avrdude : nama perintah untuk membakar kode .hex ke chip Atmega

-c usbasp : menentukan kabel downloader yang Anda gunakan. Karena kita pakai USBASP, maka kita juga tentukan usbasp. Awas, besar kecil huruf harus diperhatikan. Jika salah menentukan opsi ini, avrdude akan salah juga mengenali jalan mana yang harus ditempuh untuk mengirim .hex ke Atmega. Pilihan nama kabel untuk opsi ini sangat banyak. Jika Anda memakai kabel jenis lain semacal USBISP MKII, Anda bisa membaca datasheet nama opsinya dengan ketik perintah man avrdude di Terminal.

-P usb : menentukan jalur dari kabel downloader yang tertancap di komputer Anda. Karena saya menggunakan USBASP dan ia menggunakan USB, maka saya tulis usb. Mungkin seumur hidup Anda tidak akan mengubah opsi ini karena selalu menggunakan USB.

-p atmega128 : menentukan chip yang akan ditulisi kode .hex. Pilihan nama chip untuk opsi ini sangat banyak. Silakan ketik perintah man avrdude.

-U flash:w:namaprogramnya.hex : menentukan perilaku dari kegiatan download yang kita lakukan, apakan sekadar dikirim lalu ditolak begitu saja oleh Atmega atau melakukan penulisan (flash) ke dalamnya. Opsi flash maksudnya melakukan flash ke dalam chip sedangkah w maksudnya write (menulis) kode .hex. Ini opsi paling penting dalam perintah avrdude ini. Jika Anda tidak menentukannya, maka usaha Anda sia-sia. Jika ingin mempelajari perintah avrdude lebih lanjut, silakan ketik perintah man avrdude di Terminal.

Hasil Download

Berikut ini bukti yang saya salin dari Konsole. Lihat, sama persis dengan Atmel Studio Anda. Skrinsot Konsole dan foto LED yang menyala juga saya sertakan.

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9702
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file “namaprogramnya.hex”
avrdude: input file namaprogramnya.hex auto detected as Intel Hex
avrdude: writing flash (4306 bytes):

Writing | ################################################## | 100% 1.70s

avrdude: 4306 bytes of flash written
avrdude: verifying flash memory against namaprgramnya.hex:
avrdude: load data flash data from input file namaprogramnya.hex:
avrdude: input file namaprogramnya.hex auto detected as Intel Hex
avrdude: input file namaprogramnya.hex contains 4306 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.49s

avrdude: verifying …
avrdude: 4306 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done. Thank you.

[email protected]:/home/master/Publik/AVR#

atmega-avrdude-ubuntu

Proses pembakaran .hex dengan avrdude

avrdude

LED Menyala

Rangkuman

  1. Tancapkan kabel USBASP.
  2. Jalankan perintah flashing avrdude.

Proses bakar HEX di Linux secara garis besar adalah demikian.




comments powered by Disqus

Related Code

Curreny Number Format

Toggle Title Bar

Get System Information Resource

Find Temp Path of Windows

Form Transparent

Change Desktop Wallpaper Windows

Get Current Date System

Memory and Percentage

PING program

DNS Resolver



Category

Tag Linked