Langsung ke konten utama

Pengertian Bootloader pada Arduino

Sekilas tentang Bootloader

Beberapa pertanyaan tentang bootloader di bawah ini sering muncul tidak hanya dari programmer pemula, bahkan kadang programmer veteran pun pernah mempertanyakannya. Mungkin dalam pikiran Anda juga pernah tersirat salah satu atau beberapa pertanyaan dibawah ini:

1. Apa sih fungsi bootloader pada arduino?

2. Bisa nggak, misal bikin arduino tanpa bootloader?

3. Kalau nggak pakai bootloader, Arduino tetep bisa jalan nggak?

4. Apa kita bisa bikin bootloader sendiri untuk arduino?

Anda bisa menjawab sendiri pertanyaan di atas setelah memahami cara kerja arduino berdasarkan ilustrasi berikut.

Jika kita mau memprogram IC mikrokontroller, sebut saja keluarga AT89Sxx, ATMega, atau PIC, maka kita butuh alat tambahan (hardware) yang biasa dikenal dengan istilah programmer atau downloader. Contoh downloader untuk AVR dan PIC seperti gambar di bawah ini.

USBAsp untuk AVR dan PIC Programmer

Jika Anda menggunakan Arduino, Anda sudah tidak memerlukan downloader lagi. Anda bisa langsung  memasang program pada IC melalui software Arduino IDE  di komputer. Fungsi downloader sudah ditangani oleh  bootloader dalam IC. Program yang dikirim komputer ke  Arduino akan “ditangkap” dan disimpankan oleh bootloader  dalam memori program yang masih kosong. Program mikrokontroller akan disimpan dalam memori  flash atau flash memory. Setiap mikrokontroller dijalankan,  biasanya alamat program yang pertama dieksekusi adalah  alamat 0x0000 di flash memory.

Program bootloader biasanya dipasang pada alamat memori 0x0000 sehingga program tersebut menjadi program yang pertama kali dieksekusi. 

Pada mikrokontroller biasa, yang bertugas menyimpan program adalah programmer yang berupa hardware.  Sedangkan pada Arduino, proses penyimpanan program ke  memori flash dikerjakan oleh bootloader. Lebih detailnya, bootloader memiliki cara kerja seperti berikut: 

  1. Bootloader hanya dieksekusi saat Arduino dinyalakan. Oleh sebab itu, proses penyimpanan  program oleh bootloader hanya bisa dilakukan  sesaat setelah Arduino direset.
  2. Saat awal start, jika Arduino menerima kiriman program dari komputer. Maka tugas bootloader adalah menyimpan kiriman program tersebut pada memory flash yang tidak dipakai bootloader, misal  alamat memory 0x00AB. 
  3. Jika tidak ada kiriman program dari komputer, maka eksekusi program akan langsung lompat ke alamat  0x00AB untuk menjalankan program utama

Selain berfungsi untuk mengatur program yang akan diinstal dalam IC, bootloader juga berperan sebagai pengatur konfigurasi awal arduino seperti clock yang akan digunakan, mode komunikasi dengan serial komputer, 
timer, dan konfigurasi lainnya. Meskipun demikian, konfigurasi-konfgurasi tersebut tetap bisa kita ubah melalui program yang kita upload.

Misal kita punya board arduino, tapi IC yang dipasang tidak ada bootloadernya. Kita tidak bisa langsung memprogramnya dengan Arduino IDE, sebab perantara (bootloader) yang bisa menyimpankan program tidak ada.

Kita juga bisa membuat bootloader Arduino versi kita. sebagai informasi tambahan, bootloader arduino yang terbaru berukuran setengah kB dan dikenal juga dengan istilah optiboot.

support by
meteorstorepurwokerto
purwokertorobotic

Komentar

Postingan populer dari blog ini

Project Running LED dengan IC Shift Register 74HC595 menggunakan arduino uno R3

project kali ini membuat Running LED atau biasa disebut lampu berjalan maksudnya adalah nyala led bergantian satu sama lain Peralatan yang disiapkan dan rangkaiannya adalah: 1. Arduino x 1 2. IC Shift Register 74HC595 x 1 3. LED x 8 4. Resistor dengan nilai seragam x 8 5. Project board x 1 6. Kabel jumper secukupnya  sambungan pin Arduino dengan IC 74HC595, dan komponen lainnya yaitu : Program LED Berjalan dengan Shift Register /* * Program LED Berjalan dengan Shift Register */ // konfigurasi pin Arduino const byte DataPin = 2; // DS data serial const byte LatchPin = 3; // ST_CP const byte ClockPin = 4; // SH_CP // menampung data byte data = 0; void setup() {  // konfigurasi pin sebagai ouput  pinMode(LatchPin, OUTPUT);  pinMode(ClockPin, OUTPUT);  pinMode(DataPin, OUTPUT); } void loop() {  // delay 200ms  if ( nonblocking_delay(200) ){  // geser kiri  data <<= 1;  // jika data == 0 (gesernya sudah habis)  // ulangi dari awal  if( data == 0 ) data = 1;  // mulai transfer  di

Project simulasi lampu lalu lintas (traffic light) 4 simpang menggunakan software proteus dan mikrokontroller atmega 16

Project kali ini membuat simulasi menggunakan software proteus untuk sistem lampu lalu lintas atau traffic light simpang 4 berbasis microcontroller Atmega 16. Pada sistem simulasi ini ditampilkan lcd 16x2 sebagai informasi tambahan bagi para pengendara mengenai nama simpang dan sebagainya. Terdapat pula seven segment sebagai penanda berapa lama lagi waktu atau detik yang tersisa baik itu merah atau hijau. Dan terdapat lampu LED sebagai penanda, untuk warna merah artinya berhenti, kuning untuk siap-siap/ hati hati dan hijau untuk jalan. Berikut desain simulasinya menggunakan software proteus

pengertian modul Relay dalam Arduino dan mikrokontroller

Relay adalah komponen yang dapat digunakan sebagai saklar elektronik. Secara singkat, cara kerja relay adalah memanfaatkan magnet buatan untuk memicu kontaktor dari keadaan off menjadi on, atau sebaliknya. Ibaratnya begini, jika ingin menghidupkan lampu, kita harus pencet saklar yang nempel di tembok. Tapi jika  menggunakan relay, kita bisa menghidupkan atau  mematikan lampu tanpa menyentuh saklar lagi. Relay disebut juga sebagai saklar elektronik, yaitu saklar dapat  dikontrol dengan alat elektronik lainnya seperti Arduino Relay umumnya punya 5 pin atau kaki., yang terdiri dari: Dua kaki untuk listrik + dan GND, jika arus dan tegangannya cukup, maka relay akan aktif yang ditandai dengan bunyi „tek‟. Satu kaki sumber C (common), kaki ini yang akan dihubungkan ke kaki NC atau NO. Jika relay akan  digunakan untuk mengontrol lampu rumah, maka  kaki C disambung ke salah satu jalur listrik dari PLN.  Kaki NC (Normally Close), sebelum relay aktif, kaki NC  nyambung ke kaki C (perhatikan ga