«

»

May 29

Bootloader untuk Mikrokontroler AVR

Secara umum, bootloader adalah sebuah program kecil yang dijalankan pada saat boot dan memiliki kemampuan untuk me-load sebuah program aplikasi lengkap ke dalam memori prosesor sehingga dapat di-eksekusi.

Dalam kasus prosesor AVR, program bootloader umumnya 256-4096 instruksi assembly dan menempati bagian khusus dari memori flash yang disebut bootblock. Pada saat boot (ketika prosesor di-reset), bootloader mulai dan memiliki kemampuan untuk berkomunikasi dengan dunia luar untuk menarik program baru dan memrogramnnya ke dalam flash memory prosesor. Tergantung pada bootloader dan hardware yang tersedia, kode aplikasi baru dapat di-load dari berbagai sumber, termasuk port serial, SPI atau antar muka I2C, memori eksternal, hard disk, flash disk, dan lainnya. Satu kali pemrograman tuntas, program bootloader keluar atau prosesor di-reset dan mulai menjalankan kode yang baru di-load. Hanya prosesor AVR yang memiliki fitur self-programming memory yang dapat menjalankan bootloader.

Prosedur yang harus di lakukan untuk memasang bootloader :

  • Program bootloader dapat di-download ke dalam chip menggunakan software programmer, seperti: AVR Studio, PonyProg, AVRdude, dll.
  • Atur ukuran bootblock agar sesuai dengan ukuran program bootloader (fuse bit: BOOTSZ1 dan BOOTSZ0, lihat datasheet).
  • Set reset vector agar menunjuk pada boot block, bukan alamat default 0x0000, dengan mengaktifkan BOOTRST (programmed bit=0).
  • Pastikan memilih Bootloader Protection Mode 2 untuk menghindari bootloader menulis di area boot block.

Bootloader berikut ditulis untuk meng-emulasi Atmel STK500. STK500 menggunakan protokol block transfer untuk memrogram prosesor dengan cepat menggunakan koneksi port serial standard dan signaling RS232 biasa. Dengan bootloader terpasang, kita dapat memrogram prosesor dari Atmel AVR Studio, seperti halnya menggunakan board STK500. Untuk kebanyakan prosesor, satu siklus pemrograman lengkap memerlukan 5-10 detik.

Dengan bootloader terpasang, prosesor akan berlaku seperti STK500 pada 3 detik pertama setelah RESET. Bila dalam tiga detik tersebut kita membuat sesi pemrograman STK500 pada AVR Studio, prosesor akan ter-deteksi secara otomatis dan kita dapat me-load kode aplikasi baru. Setelah kode aplikasi baru di-load, kita dapat keluar dari bootloader dengan menekan RESET.

Bila dalam waktu tiga detik setelah RESET, tidak ada instruksi pemrograman melalui port serial, bootloader akan timeout dan aplikasi yang sudah di-load akan dijalankan secara otomatis. Bila tidak ada aplikasi yang di-load, misalnya memori flash kosong, maka bootloader akan run berulang-ulang sampai perintah pemrograman diterima.

Berikut adalah sejumlah precompiled bootloader untuk sejumlah chip ATmega, yang berbasis protokol STK500:

Untuk pelatihan mikrokontroler AVR, silahkan menghubungi:

NEXT SYSTEM
Robotics Learning Center
ITC Kosambi F2
Bandung 40112
Tel. (022) 4222062, 70775874

Email: info@nextsys.web.id