«

»

Jun 19

Memrogram Fuse Bits pada ATmega8535

Bagian ini bukan untuk pemula dan ┬áharus diperhatikan dengan baik sehingga tidak menimbulkan “bencana” ketika menyentuhnya. Disebut “bencana” karena tidak sedikit pengguna, setelah “menyentuh” bagian ini, chip mikrokontroler-nya menjadi “pingsan” alias tidak berfungsi.

Mengingat resikonya cukup tinggi, maka biasanya, di dalam kelas pelatihan, kami selalu memberikan peringatan untuk tidak menyentuh bagian ini, sebelum benar-benar memahaminya. Dalam banyak kasus, bagian ini memang tidak perlu diutak-atik, kecuali saat pertama kali, mengingat pihak pabrik meng-konfigurasi chip AVR dengan osilator internal (default); sehingga bila kita akan menggunakan osilator eksternal, perlu melakukan pemrograman terhadap bagian konfigurasi ini.

* S8535C – untuk memilih mode kerja mikrokontroler. Default = 1. Bila dipilih 0 (checked) maka beberapa fitur yang tidak didukung AT90S8535 akan dimatikan.

* WDTON – untuk mengatur Watch Dog Timer. Default = 1 (unchecked) berarti aktivasi Watch Dog Timer dikendalikan melalui register WDTCTR. Sementara bila 0 (checked), Watch Dog Timer selalu aktif.

* CKOPT – untuk menentukan sumber clock. Default = 1 (unchecked), sumber clock merupakan osilator internal dengan frekuensi 1 MHz. Diberi nilai 0 (checked) bila sumber clock berasal dari luar.

* EESAVE – merupakan bit pengatur aktivasi penyimpanan data EEPROM secara permanen. Default = 1, berarti tidak dilakukan proses penyimpanan data EEPROM secara permanen.

* BOOTSZ1 dan BOOTSZ0 – merupakan bit untuk memilih ukuran boot sector. Default = 00, ukuran boot sector 1024 word dengan alamat boot sector pada 0C00h.

* BOOTRST – merupakan bit untuk memilih vektor reset. Default = 1, berarti alamat reset berada di alamat 0000h. Jika bernilai 0, alamat reset ditentukan oleh nilai BOOTSZ1 dan BOOTSZ0.

* CKSEL3, CKSEL2, CKSEL1 dan CKSEL0 – merupakan bit untuk mengatur pemilihan sumber clock. Default = 0001, berarti sumber clock berasal dari osilator RC internal. Jika bit CKOPT = 0, maka keempat bit ini harus diprogram sesuai dengan pilihan yang disediakan, yaitu: 1111 – 1010 (kristal atau resonator eksternal), 1001 (kristal frekuensi rendah), 1000-0101 (osilator RC eksternal), 0100-0001 (osilator RC internal), 0000 (clock eksternal).

* SUT1 dan SUT0 – merupakan bit untuk memilih waktu startup. Default = 10, sehingga memberikan waktu startup terbesar, 65 ms. Jika diberi nilai 00, maka tidak ada waktu tunda. Disarankan bila bit BODEN diprogram. Bila bernilai 01, waktu tunda sebesar 41 ms.

* BODEN – merupakan bit pengatur deteksi brown out. Default = 1, berarti fitur ini tidak aktif.

* BODLEVEL – menentukan level deteksi brown out. Default = 1, sehingga tegangan brown out di-set pada 4 Volt. Bila diberi nilai 0, tegangan brown out di-set pada 2.7 Volt. Bit ini berfungsi bila bit BODEN aktif.

Calibrated internal RC oscillator

Opsi ini merupakan yang paling sering digunakan karena tidak memerlukan komponen eksternal. Chip sudah menyediakan osilator internal untuk 1 MHz (default pabrik), 2 MHz, 4 MHz dan 8 MHz. Modus ini dapat dipilih dengan memprogram fuse bit dalam range 0001 hingga 0100. Bit CKOPT tidak diprogram (tanda check menunjukkan tidak diprogram).

Pemrograman CHKSEL3..0 untuk keperluan di atas: 0001 ( 1 MHz, default), 0010 (2 MHz), 0011 (4 MHz), 0100 (8 MHz).

Berikut adalah contoh setting dengan pilihan sumber clock eksternal, dengan rujukan ATmega16 (dengan JTAG disable). Pada ATmega8535 tidak ada opsi JTAG.