Board Duemilanove mungkin udah jarang banget ada di pasaran, kebanyakan sekarang board yang dijual adalah Arduino Nano. Sama-sama menggunakan ATMEGA328P (ada P nya di belakang loh) tapi bedanya ada di development boardnya. Revisi yang terakhir board nano ini ada menggunakan 2 microcontroller, yang satu nya yaitu ATMEGA16 untuk ISP programmer.
Kali ini saya mau share bagaimana caranya ATMEGA328P yang masih fresh dari toko agar bisa digunakan di development board Duemilanove (Lah terus Nano gimana? Ntar dijelasin juga), ya jaga-jaga kalo tiba-tiba si microcontroller hangus kebakar atau misal ke lock jadi ga mau flashing.
Memangnya gak bisa dipakai langsung ya microcontroller yang baru fresh langsung dipake di DevBoard? Yup, gak bisa sama sekali. Ini beberapa alasan kenapa gak bisa dipakai:
Kali ini saya mau share bagaimana caranya ATMEGA328P yang masih fresh dari toko agar bisa digunakan di development board Duemilanove (Lah terus Nano gimana? Ntar dijelasin juga), ya jaga-jaga kalo tiba-tiba si microcontroller hangus kebakar atau misal ke lock jadi ga mau flashing.
Memangnya gak bisa dipakai langsung ya microcontroller yang baru fresh langsung dipake di DevBoard? Yup, gak bisa sama sekali. Ini beberapa alasan kenapa gak bisa dipakai:
- DevBoard menggunakan External Oscillator Crystal 16MHz, sedangkan fresh chip menggunakan internal oscillator 1MHz, jadi perhitungan waktunya beda jauh
- Harus dimasukin dulu file Hex untuk bootloader karena system flashing Arduino itu menggunakan bootloader, sedangkan zaman nenek moyang sebelumnya itu menggunakan ISP programmer. Yaa sebelum arduino terkenal, kita masih pake ISP
OK, langsung aja, mari kita ikuti langkah-langkah ini secara seksama, Ini adalah langkah untuk PC berbasis OS Windows:
- Siapin Arduino Duemilanove+ATMEGA328P yang sudah tertancap, breadboard, ATMEGA328P fresh dari toko, R 10KOhm 1ea, 1 Osc Crystal 16MHz, 2 ea Capacitor 20pF, kabel kabel jumper
- Sebelum wiring dimulai, kita buat Arduino Board agar menjadi ISP terlebih dahulu. Buka Arduino IDE, kemudian cari example ArduinoISP, kemudian upload (CTRL+U) ke DevBoard
- Pasang semuanya seperti gambar
- Download AVRDude disini
- Extract semua file misal ke D:\avrdude
- Buka command prompt kemudian masuk ke directory d:\avrdude
- ketik perintah berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m Sebagai catatan, COM2 disesuaikan dengan COM PORT nya arduino (Lihat device manager) sedangkan baudrate 9600 bisa diganti dengan 19200 bila ada masalah can't sync STK500. Langkah ini adalah membuat settingan fuse bit agar microcontroller menggunakan oscillator luar yaitu dari crystal 16MHz
- Copy file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex ke D:\avrdude
- ketik perintah berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U flash:w:ATmegaBOOT_168_atmega328.hex -U lock:w:0x0F:m Ini adalah perintah untuk flashing file hex
- Cabut kabel USB, tukar microcontroller yang terpasang di devBoard dengan yang fresh. Ujilah dengan salah satu sample source code arduino kemudian upload seperti biasa.
Sekarang bagaimana caranya bila menggunakan Arduino Nano? Langkahnya sama persis namun langkah ke 7 menjadi seperti berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m