Baca sampai habis dulu ya. Unduh di sini
ARDUINO UNO R3 menggunakan mikrokontroler ATmega16U2 sebagai
fungsi USB to serial. Karena mikrokontroler maka fungsinya juga dapat di ubah
sebagai downloader. Downloader tersebut dapat digunakan untuk menulis
bootloader ATmega328P pada ARDUINO tersebut dan juga dapat digunakan untuk
download mikrokontroler AVR yang lain. ATmega16U2 diprogram sebagai:
- ATmega16U2 berfungsi sebagai USB to serial seperti lazimnya ARDUINO UNO R3
- Jika dibutuhkan, ATmega16U2 dapat berfungsi sebagai USBasp.
Switching atara fungsi USB to serial dengan USBasp cukup
dilakukan dengan mudah yaitu cukup menancapkan Konektor tanpa harus mencabut
USB dari PC. Dipilihnya USBasp adalah karena dukungan software yang banyak. Anda tidak perlu susah-susah untuk mebeli
USBasp karena cukup ARDUINO UNO R3 sudah dapat difungsikan sebagai ARDUINO juga
USBasp. Untuk membuatnya tambahkan dahulu header pada konektor JP2 seperti
Gambar di bawah ini:
Masukan program ASPduino.hex (firmware, gratis 10x pakai) yang
terlampir ke mikro ATmega16U2 ARDUINO. Anda dapat menggunakan downloader
yang ada, misalkan USBasp, USBISP atau
bisa juga dengan ARDUINO yang lain. Hubungkan MISO, MOSI, SCK, RESET, GROUND
dan Vcc pada ARDUINO ke USBasp. Seperti Gambar di bawah ini:
Hubungkan USBasp ke USB PC. Buka AVR programmer. Anda dapat
menggunakan berbagai macam aplikasi programmer. Yang digunakan pada tutorial
ini adalah PROGISP (ver 1.72).
Langkahnya adalah sebagai berikut:
- Buka aplikasi PROGISP
- Pilih mikrokontroler
ATmega16U2
- Tekan tombol RD untuk
memastikan PROGISP dapat membaca ID mikrokontroler dan memastikan bahwa
mikrokontroler tersebut adalah ATmega16U2, dengan ditandai Read ID
Succesfully.
- Pastikan yang tercentang
pada check box; Chip Erase, Program FLASH dan Verify FLASH.
- Tekan Auto dan selesai.
Lepaskan ARDUINO UNO R3 dari USBasp lalu tancapkan pada USB
PC, buka Device Manager. Pada PC akan dikenali sebagai;
- Arduino Uno (COMx) atau
-Arduino UNO R3 (COMx) atau
- Serial Port (COMx) atau apapun sebagai port serial (COM)
Lho..kok sama saja dengan ARDUINO UNO R3 sebelumnya? Apa yang
berubah? Jawabannya ada di bawah. Biasakan untuk sabar ya J
Mari kita hubungkan port-port dalam ICSP dan ICSP1 seperti
gambar berikut ini:
Sekarang coba anda lihat Device Manager. Lho Arduino Uno
(COM5) hilang dari Device Manager. Apa kurang benar hubungan USB-nya? Sebentar
coba lihat lagi. Ada hardware USBasp terdaftar pada Device Manager. Apa ARDUINO
UNO R3 berubah jadi USBasp? Jawabannya BENAR. Dengan formasi hubungan pin-pin
ICSP dan ICSP1 di atas ATmega16U2 berfungsi sebagai pengganti master ATmega8
dalam USBasp standard. Dan ATmega328P adalah IC mikrokontroler yang siap untuk
di-diwnload.
Sekarang cabut jumper yang menghubungkan JP2.PIN2 dengan JP2.PIN4,
tanpa mencabut USB dari ARDUINO UNO R3. Difinisi ARDUINO UNO R3 anda akan
kembali ke USB to serial (normal) kembali. Anda dapat mencoba menancapkan
kembali jemper JP2.PIN2 dengan JP2.PIN4, dan akan kembali ARDUINO UNO R3 anda
berubah menjadi USBasp lagi, tanpa perlu mencabut USB, apa lagi merubah2
program ATmega16U2 lagi. COOOL kan?! J
Port JP2 dan ICSP1 sekarang menjadi Port-port USBasp.
- Pin1 ICSP1 berguna sebagai
MISO
- Pin4 ICSP1 berguna sebagai
MOSI
- Pin3 ICSP1 berguna sebagai
SCK
- Pin1 JP2 berguna sebagai
RESET
- Pin2 dan Pin4 Jika
dihubungkan ARDUINO UNO R3 anda akan berubah menjadi USBasp dan jika
dibiarkan terbuka akan tetap menjadi ARDUINO UNO R3
- Pin3 dapat digunakan
menjadi GND jika akan mendownload IC mikrokontroler diluar board ARDUINO
UNO R3 tersebut.
Sekarang kita coba untuk memasukan bootloader ke
mikrokontroler ATmega328P baru yang belum ada bootloadernya.
- Hubungkan Port JP2, ICSP1 dengan ICSP seperti petunjuk di atas.
- Buka sketch baru. Yang dapat dipakai adalah versi 1.0 ke atas, karena di bawah versi tersebut belum mendukung USBasp. Pilih Board-nya adalah Arduino Uno dan Programmer adalah USBasp.
- Lalu tekan Burn Bootloader, tunggu hingga ada pesan penulisan bootloader selesai (done burning bootloader)
- Cabut jamper-jamper yang menghubungkan Port JP2, ICSP1 dengan ICSP. Anda tidak usah mencabut USB. Dan ARDUINO UNO R3 anda telah kembali dikenali sedagai USB to serial. ATmega328P juga telah berisi bootloader. Sekarang waktunya mencobanya. Buka sketch Blink dan Upload. Selamat berhasil… J.
Untuk memudahkan agar tidak harus mengingat-ingat pin apa
terhubung ke pin apa, lebih mudah jika pin-pin tersebut di gabung dalam kabel
konektor seperti berikut ini:
Oh iya ada yang tanya, gimana ngriping kabelnya? Gak usah
susah-susah, 7 kabel jumper female to female kita dapatkan dari kabel 40pin
female to female, yang menjual ketengan juga ada.
Ambil 7 kabel, lepaskan black housing bawannya semua. Ganti
dengan 2x3 black housing dan diujung lain dengan 2x4 black housing.
Bahan yang diperlukan adalah:
- Kabel jamper female to
female 7pcs
- Black housing 1x3 dua dan
1x4 dua. Jika ada lebih baik black housing 2x3 dan 2x4. Sayangnya di
Indonesia tidak ada yang jual.
- Double tape, jika tidak
ada black housing 2x3 dan 2x4.
Rangkai dua black housing 1x3 menjadi black housing 2x3 dan
dua black housing 1x4 menjadi black housing 2x4. (nunggu juragan2 toped ngimpor
nih barang J)
Untuk mempermudah, berikut ini peta hubungan antara black
housing 2x4 dengan black housing 2x3.
Switch digunakan untuk mengubah ARDUINO UNO R3 menjadi
USBasp jika dihubungkan dan USB to serial jika tidak dihubungkan. Kalo
digunakan untuk download ATmega328P pada board yg sama, Gnd dan Vcc tidak harus
dihubungkan.
ARDUINO UNO R3 menjadi USB to serial jika konektor 2x4pin tidak terhubung
ARDUINO UNO R3 menjadi USBasp jika konektor 2x4pin terhubung
Selain kepraktisan di atas, USBasp-nya punya kelemahan yaitu
tidak semua aplikasi di internet dapat menulis EEPROM mikrokontroler yang akan
di download, tapi jika hanya untuk download FLASH bisa. Diantaranya yang tidak
bisa adalah; progisp, extremburner, khazama dan lain-lain. Sebabnya
program-program tersebut mengirim 100H x byte data EEPROM yang harus di tulis
pada mikrokontroler. Tentu memerlukan waktu lebih dari 1detik. Sedangkan
ATmega16U2 menggunakan USB 2.0 dan memiliki timeout sekitar 260ms. Tentu akan
membangkitkan timeout.
Tapi tenang saja aplikasi yang lancar menggunakan USBasp ini
banyak dan mainstream, selain ARDUINO adalah program-program yang berbasis
AVRDUDE. Ada avrdudess,
GUI4avrdude dll. Sebabnya avrdude Cuma mengirim 4 byte data sekali tulis ke
EEPROM. Bahkan jika gagal menulis 4 byte tersebut, avrdude akan menulis satu
persatu EEPROM. ARDUINO berbasis pada AVRDUDES tentu lancar.
Oh ya setelah berhasil membuatnya, anda bisa menggunakan
sebagai USBasp 10x gratis. Setelah itu ARDUINO UNO R3 anda akan tetap menjadi
USB to serial walaupun konektor atau switch dihubungkan. Jika ingin menggunakannya kembali anda harus
memasukan Passcode. Untuk memasukan ikuti langkah-langkah berikut;
- ARDUINO UNO R3 anda
sebagai USB to serial. Lepaskan konektor 2x4pin
- Buka aplikasi ASPduino
yang disertakan pada paket firmware. Buka serial tempat arduino terhubung.
- Generate Code. Copy kode yang tampil dan kirim pesan ke https://www.facebook.com/adhopraz atau WA ke 087859746799
- Nanti jawaban dari saya
adalah berupa kode yang dimasukan ke edit Passcode. Missal:
B01AF774A3C7B567BFC3FEE382CF729E00FA1CC1E0558D0693C1
- Kode tersebut masukan ke
edit passcode dan tekan tombol Pass Code.
- Tidak langsung dimasukan pada kesempatan yang sama juga tidak apa-apa, asalkan board ARDUINO-nya sama. Siapa tahu jawaban saya baru 1-2hari. Misalkan kemarin ngirim code baru hari ini terima passcode. Langsung saja masukan passcode setelah serial terhubung dan tekan Pass Code.
- Dan hasilnya adalah:
Jika status PASS maka tidak ada
batasan lagi anda menggunakannya. Simpan Pass Code yang anda terima. Satu kode
akan berlaku untuk satu board dengan ATmega16U2 yang sama. Mahar Pass Code
murah cuma seharga satu bungkus nasi padang @Rp10.000 beli 10 @Rp5.000.
MAJULAH EMBEDED INDONESIA