UC ATMega32 memiliki
dua fuse byte, yaitu Fuse High Byte dan Fuse Low Byte. Agar PORT C
ATMega32 berfungsi sebagai digital I/O maka bit JTAGEN yang terdapat
pada Fuse Byte High harus diset (diberi logika 1) . Tabel 104 dan Tabel 105 memperlihat isi (bit-bit) dari fuse byte UC ATMega32.
Bit CKSEL0 s/d
CKSEL3 bersama dengan SUT0 dan SUT1 dipergunakan untuk pemilihan
sumber clock dan Start Up Time dari ATMega32. Sebagai contoh, jika UC
ATMega32 dioperasikan dengan crystal 8 MHz dan waktu start up time
kerika power down sebesar 16K CK atau delay dari keadaan reset
sebesar 65 ms maka Low Fuse Byte berharga 0x FF. Tabel 4 dan Tabel 5
berikut meringkaskan harga untuk mensetting CKSEL dan SUT bit.
Microcontroller
ATMega328 memiliki tambahan Extended Fuse Byte. Selain ada tambahan
extended fuse byte juga bit-bit yang menempati Fuse High Byte dan
Fuse Low Byte tidak sama dengan UC ATMega32. Karena alasan ini
mengkonfigurasi fuse byte pada ATMega32 dengan ATMega328 tidak sama.
Tabel 27.6, tabel 27.8 dan tabel 27.9 merinci isi masing bit pada
fuse byte UC ATMega328.
Memprogram Fuse
Byte
Setelah
kita mengetahui fuse byte dan sudah tahu menkonfigurasinya, maka
langkah selanjutnya adalah memprogram fuse byte tersebut. Dalam hal
ini software yang kita butuhkan adalah avrdude. Software tersebut
bersifat free/bebas tanpa adanya hak cipta. Alat downloader atau
programmer untuk microcontroller tersebut adalah Arduino. Selain
arduino dapat juga dipergunakan downloader yang lain seperti SP12,
AvrispmkII dll, yang penting programmer tersebut disupport oleh
avrdude.
Perintah
untuk memprogram fuse byte tersebut adalah :
Sebagai contoh,
apakah avrdude terhubung dengan chip, jika chip yang digunakan
ATMEGA32 dan programmer yang digunakan sp12, maka perintahnya:
avrdude
-c sp12
-p m32
Dalam
perintah baris avrdude, agar dibedakan huruf P (capital) dengan p
kecil. Karena P capital dipergunakan untuk menentukan port sedangkan
p kecil adalah jenis microcontroller yang akan diprogram fuse
bytenya.
Contoh.
File
hex yang akan didownload bernama “chopper.hex”, dengan programmer
sp12 melalui port parallel dan chip yang dipergunakan ATMEGA32.
avrdude
-c sp12
-p m32 -P
lpt1 -U flash:w:chopper.hex:m
Mempergunakan
Arduino sebagai Programmer
Arduino Uno, Duemilonove, Mega
dapat dipergunakan sebagai programmer untuk UC jenis AVR keluarga
Atmel.
Prosedur mempergunakan Arduino
Uno atau Arduino Duemilonove sebagai programmer:
1. Up Load file ArduinoISP yang
terdapat pada contoh program bawaan Software Arduino.
2.
Capasitor 10 μF dipasang pada board arduino dengan kaki (+)
Capasitor dihubungkan RST pada board Arduino dan kaki (-)nya
dihubungkan ke GND board arduino.
3. Hubungkan UC target dengan
board Arduino seperti tabel 1.
Tabel 1, Menjadikan Arduino
sebagai AVR Programmer
No
|
UC Target
|
Arduino
Board
|
1. |
VCC
|
VCC (+ 5V)
|
2. |
GND
|
GND
|
3. |
Reset
|
Pin 10
|
4. |
Mosi
|
Pin 11
|
5. |
Miso
|
Pin 12
|
6. |
SCk
|
Pin 13
|
4. Up Load file intel hexa yaitu
file yang berekstensi *.hex
5. Semoga Sukses.
Contoh.
File yang akan di Upload
bernama chopper.hex dan UC yang dipergunakan ATMega32
perintah yang akan dipergunakan :
avrdude
-c arduino
-p m32
-P
com3
-b 19200
-U flash:w:chopper.hex:m
Pada
perintah diatas -P com3 dipergunakan, karena arduino terhubung dengan
com3. Port ini harus disesuaikan dengan komputer anda, karena
masing-masing komputer terhubung dengan arduino pada port yang
berbeda. Kecepatan transfer data 19200, diperlihatkan dengan
perintah -b 19200. Jika baudrate 19200 gagal, maka harus diganti
dengan baudrate yang lain.
Tidak ada komentar:
Posting Komentar