Selasa, 01 Maret 2016

Memprogram Fuse Byte ATMega32 dan ATMega328

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 :
avrdude -c programmer -p partno -U hfuse:w:0bxxxxxxxx:m -u lfuse:w:0bxxxxxxxx:m


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