The Proggiehouse
To Think To Share To Move Progressively!

Perhatikan Fuse pada AVR Burn-O-Mat

Jangan sepelekan hal yang sepele. Pepatah lama itu berlaku dimana-mana termasuk diranah mikroelektronik. Baru-baru ini sy menemukan akar dari permasalahan  ketika mengerjakan proyek AVR.

Asal Usulnya begini, tujuan dari proyek AVR yang dikerjakan adalah untuk menjenerate sinyal dalam order KHz. AVR yang digunakan adalah ATMEGA 8L-16PU. Fasilatas register AVR yang digunakan adalah 16 bit Timer 1A/B dan register Output Compare(OCR). Mode Wave Generator yang di-setting adalah mode 9 (PWM Fast, Frequency Correct) dimana keluarannya melalui pin OC1A atau pin 15.

Langkah selanjutnya adalah men-set nilai register output compare pada OCR 1 byte dengan nilai maksimum 255. Penentuan nilai OCR ini akan menentukan frekuensi yang kita inginkan, dengan menggunakan persamaan dibawah solusi bisa didapatkan :

OCRn = [ F_clk/(2*N*F_des) ] – 1                 (Rumus 1)

dimana ::  F_clk = Frekuensi Clock yg digunakan ; N = Prescaller Clock ; F_des = Frekeunsi yg ingin dihasilkan.

Pada prakteknya Sumber Clock nya adalah eksternal oleh Crystal 8 MHz , Pre-Scale nya 1, dan frequency yang diinginkan sebesar 17 KHz. Dengan memasukan nilai dari parameter rumus diatas didapatlah bahwa nilai register yang harus di-isikan adalah 118 desimal.

Teknik tersebut telah teruji sampai…

ketika klien minta dibuatkan ulang dengan chip yg lain yg sejenis, tanpa pikir panjang lagi sy download hex program yg lama kedalam chip yg baru namun hasilnya tidak sama…frekuensi yg dihasilkan terlalu rendah sampai akhirnya disimpulkan bahwa F_clk sistem menurun sampai 500 KhZ !!! Lantas chip-nya lah yg dikambinghitamkan sampai akhirnya memesan ke-digi key namun, tetap saja hasilnya sama.

Karena sudah saturasi akhirnya pandangan bahwa chips yg bermasalah dipertanyakan kembali, bukan hal yg gampang merubah pandangan ini mengingat didukung oleh fakta bahwa di-chip sebelumnya yg di-impor dari luar berjalan dengan baik. Beruntunglah krn ditemukan satu chip lokal yg pernah diprogram sebelumnya,  dialah ‘black swan’ chip lokal .

Ketika melihat ‘angsa hitam’ ini akhirnya teringat bahwa prosedure memprogram file hex nya adalah berbeda saat pertama dan sekarang. Perbedaan mencoloknya adalah dahulu tidak digunakan AVR Burn-O-Mat untuk memprogram chip. Besar dugaan fuses-lah biang keroknya.

Contoh tampilan edit fuses pada AVR Burn-O-Mat

 

Fuses digunakan untuk memprogram konfigurasi dari bit-bit tertentu dalam hal ini adalah konfigurasi bit-bit clock pada AVR. Dipikirnya kondisi default bit-bit clock AVR Burn-O-Mat adalah konfigurasi untuk sumber clock eksternal, namun nyatanya tidak. Sebaliknya, konfigurasi default dari AVR Burn-O-Mat clock yg diimplementasikan adalah clock internal, pantas saja frekuensi clock nya tidak sama dengan frekuensi kristal yg diterapkan.

Setelah fuse dituliskan bukan dengan konfigurasi default hasilnya……begitulah akar permalahan ditumpas.

Perkara ini disepelekan karena secara historis belum pernah menemukan masalah yg diakibatkan oleh fuse, ketika melakukan programming kode-kode hex .

Sekalilagi nilai moral yg bisa diambil adalah: Jangan Sepelekan hal yg Sepele.

Advertisements

No Responses to “Perhatikan Fuse pada AVR Burn-O-Mat”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: