Fuse ATMEGA164A dengan AVRDUDE GUI

Posted: April 18, 2012 in Mikrokontroler

Teman-teman pasti sering bingung jika telah membeli mikrokontroler (atmega) terus kecepatannya tidak sesuai dengan yang diinginkan. Hal ini dikarenakan mikrokontroler ATMEGA yang ada dipasaran disetel oleh pabrikannya menggunakan internal clock (1MHz). Agar dapat menggunakan clock yang lebih tinggi maka mikrokontroler bisa disetel menggunakan eksternal clock (biasanya menggunakan kristal frekuensi).

Kali ini saya akan menjelaskan bagaimana mengubah internal clock ATMEGA menjadi ekstenal clock. Adapun mikrokontroler yang digunakan adalah adalah ATMEGA164A (512Byte eeprom, 1KB SRAM, 16KB flash memori, max clock sampai 20MHz). Namun, jika anda menggunakan ATMEGA8535, ATMEGA16, ATMEGA 164PA, cara ini masih dapat digunakan. Dan masih banyak lagi seri ATMEGA yang bisa menggunakan cara ini.

Untuk mengetahui apakah clock sudah berpindah dari internal ke eksternal maka saya membuat program LED berkedip sederhana (menggunakan BASCOM) seperti di bawah ini.

$regfile = “m164pdef.dat”
$crystal = 1000000

Config Portd = Output

Do
Set Portd.7
Waitms 1500
Reset Portd.7
Waitms 1500
Loop
End

Regfile yang digunakan menggunakan atmega164p karena tidak ada pilihan atmega164a di BASCOM. Namun, program dapat berjalan di mikrokontroler ATMEGA164A. Outputnya adalah portd.7 (kaki ke-21) dan terhubung ke LED melalui resistor 1K ohm. Karena masih menggunakan clock internal maka crystal dideklarasikan 1juta (1MHz). Kemudian download lah program tersebut ke mikrokontroler anda. LED akan nyala dan mati dengan perioda 3 detik.

Untuk menentukan fuse bit yang digunakan agar dapat beralih ke eksternal clock, kita bisa masuk halaman ini http://www.engbedded.com/fusecalc/.

Pada AVR part name, piling ATmega164P atau ATmega164PA untuk menggantikan ATmega164A. Setelah terpilih, halaman akan otomatis terefresh lalu ada pilihan clock seperti di bawah ini.

Lebih baik selalu menggunakan pilihan terbawah. Karena menunjukan clock eksternal dengan range 1MHz – clock tertingginya. Setelah dipilih maka keterangan di bawahnya akan terlihat seperti di bawah ini.


Defaultnya akan ada tiga pilihan yang tercentang. Ubah semua pilihan yang lain dan sisakan Serial program downloading (tercentang). Pada ATMEGA yang lain juga berlaku seperti itu hanya mencentang SPI-nya saja. Maka pada keterangan di bawahnya lagi akan terlihat seperti di bawah ini.

Untuk mengubah sumber clock maka hasilnya hanya ada tiga pilihan yang tercentang seperti gambar di atas. Sehingga nilai dari command avrdude-nya dapat dilihat di keterangan di bawahnya.

Anda bisa mengkopi rumus yang dilingkari merah ke dalam avrdude, atau yang di dalam kotak hijau saja karena default semua fuse adalah 0xff sehingga kita cukup memasukan yang 0xd9 saja.

Pastika pada avrdude gui yang digunakan setingannya seperti gambar di atas. Karena menggunakan ATMEGA164A maka device yang dipilih menggunakan ATMEGA16. Jika anda menggunakan ATMEGA yang lain bisa disesuaikan.

Pada command line yang saya gunakan kodenya adalah

“D:\Document\kuliah\Kontroler\usbasp\avrdude_gui_usbasp\bin\avrdude.exe” -p m16 -c usbasp -P lpt1 -U flash:w:”D:\Document\SINYALIMPULSE.HEX”:a -U flash:v:”D:\Document\SINYALIMPULSE.HEX”:a -F

Ini adalah kode untuk mengirim (download) program LED berkedip seperti yang telah dijelaskan di atas ke mikrokontroler. Untuk mengfuse mikrokontroler ke eksternal clock tambahkan kode dari website calculator fuse tadi (jangan lupa tambahkan spasi di antaranya). Maka command-nya akan menjadi sebagai berikut.

“D:\Document\kuliah\Kontroler\usbasp\avrdude_gui_usbasp\bin\avrdude.exe” -p m16 -c usbasp -P lpt1 -U flash:w:”D:\Document\SINYALIMPULSE.HEX”:a -U flash:v:”D:\Document\SINYALIMPULSE.HEX”:a -F -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

Atau anda bisa memasukan yang bernilai 0xd9 saja

“D:\Document\kuliah\Kontroler\usbasp\avrdude_gui_usbasp\bin\avrdude.exe” -p m16 -c usbasp -P lpt1 -U flash:w:”D:\Document\SINYALIMPULSE.HEX”:a -U flash:v:”D:\Document\SINYALIMPULSE.HEX”:a -F -U hfuse:w:0xd9:m

Kemudian klik tombol Execute dan anda bisa lihat LED akan berkedit lebih cepat dari awalnya (sebelumnya jangan lupa untuk memasang terlebih dahulu crystal eksternal yang lebih tinggi dari 1MHz agar terlihat perbedaannya, penulis menggunakan 20MHz). Untuk membuktikan apakah mikrokontroler sudah benar-benar menggunakan clock eksternal, cabut crystal frekuensi yang digunakan. Maka terlihat LED akan berhenti berkedip. Kemudian pasang kembali crystal frekuensi. Maka LED akan kembali berkedip.

Demikian cara untuk mengubah clcok mikrokontroler ATMEGA menjadi eksternal. Namun, intinya adalah seperti mendownload program biasa menggunakan avrdude dan menambahkan command -U hfuse:w:0xd9:m pada command line. Hal ini berlaku untuk kebanyakan produk ATMEGA.

Akhir kata terima kasih atas kunjungannya dan semoga infonya bermanfaat. Pertanyaan, komentar atau saran dapat dilayangkan di kotak komentar di bawah ini.

Good Luck

Good Read

nb: harap baca baik-baik petunjuk yang diberikan. Berhati-hatilah dengan fungsi Lock FUSE karena dapat mengakibatkan mikrokontroler anda tidak dapat dimasuki program yang lain. Kerusakan akibat kecerobohan tidak akan ditanggung penulis.

Comments
  1. triesna says:

    mohon tutorial untuk memasukkan program ke atmega 8515-16pu om….cara setting fusebyte…clock,menyesuaikan frequensi dsb. Saya mau membuat dmx receiver seperti http://www.hoelscher-hi.de/hendrik/english/servo.htm
    Kalo bisa ( paksa ah he he he hee ) tutorial lengkap seperti diatas. Board dah jadi,avrstudio 4.18 terinstal di xp,avrispmkII juga punya…cuma ga bisa pakenya. maaf…sya ga ada basic micro tp pingin bisa.
    mudah2an om berkenan berbagi ilmu
    thx

    • banttol says:

      Kalo mau belajar mending pake atmega 16 ato 8535 boss… (mudah nyarinya di pasaran)
      Kalo mau memperdalam teknik mikronya, mending beli dulu board tutorial (kalo boke coba bikin sismin di protoboard, hi..hi…)
      Kalo cara setting fusebyte, clock, menyesuaikan frequensi dsb saya pikir sama saja dengan atmega 16 atau 8535 soalnya masih satu keluarga.
      Kalo board (PCB sismin) bisa cari browsing, kalo saya sih gak pake board, soalnya coba-cobanya di protoboard.
      Program yang saya pake Basic Compiler (BASCOM) soalnya dia selain simple juga bisa gabung dengan pemrograman assembly dengan mudahnya.

      Yang paling penting kalo mau cepat bisa, coba-coba aja terus.

  2. patron says:

    gan itu donloadernya pake usb asp ato paralel? kq port lpt1, tapi programer usb asp, maaf g pernah pake avr dude, trus klo seting fusebit, yang di isi kotak merah saja atau hijau, atau kduanya, mohon pencerahannya, makasi…

    • banttol says:

      itu avr dude gui gan, sudah apsti pake usb asp.
      di netbook aye usb bisanya pake port lpt1, entah kenapa aneh, di pc juga iya.
      kayanya sih softwarenya, ato emang begitu… haw-haw.

      kalo yg diisi bisa kotak merah aja ato yg kotak ijo aja.

      -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m
      ato
      -U hfuse:w:0xd9:m

      sama aja kok…

      ikuti aja gambar ini

  3. Hary Irawan says:

    Kakaku sekalian, miinta pencerahannya dong, disekolah saya udah diajarkan sampe cara mendownloadnya, program yang saya buat udah saya download ke mikronya sesuai dengan apa yang Guru saya sampaikan, tapi setelah saya mau mendownload program baru, mikronya tidak bisa menerima program baru, gimana nih solusinya, pak guru saya lagi pelatihan selama 3 minggu nih…..
    Kirim mail & fb ke xxxx
    jangan sungkan untuk menjawabnya, saya akan merasa sangat berterimakasih

    #saya make atmega 16 dan menggunakan 8 LED dan 9 PB

    • banttol says:

      Coba cek rangkaian sama downloadernya, mungkin ada solderan yg lepas ato kabel yg kendor (penulis sering mengalami kendala seperti itu). Cek juga apa header (jika ada) dari downloader ke mikrokontroler terbalik ato tidak.

      Trus coba masukan program sederhana dulu (seperti flipflop).

      Coba juga pake downloadernya ke mikrokontroler yg lain, kalo berhasil berarti mikrokontroler anda rusak.

      Dan satu lagi jangan bosan2xnya menggunakan metoda “try and error”.
      Selalu terbuka pada segala macam kemungkinan.

Text Me Back