Penulis Topik: Bootloader untuk AVR  (Dibaca 813 kali)

Offline DhannyDhuzell

  • Administrator
  • Sr. Member
  • *****
  • Tulisan: 397
  • Citra: 0
  • Silahkan di Post di forum, jangan PM atau Email.
Bootloader untuk AVR
« pada: April 10, 2012, 10:26:24 PM »
Bootloader untuk AVR (downloader mandiri)
Oleh Dhanny Dhuzell (2009 dhuzell.site90.com)

Ditujukan bagi :
  • Pemula dalam dunia Mikro Kontroller
  • yang tidak mampu membeli downloader di toko yang berharga 400 - 500 rb rupiah.
  • para pecinta elektronika

Kelebihan downloader ini:
  • tanpa perlu menggunakan downloader tersendiri
  • Biaya hanya maksimal 5 rb rupiah. Wow fantastis sangat hemat bin irit.
  • Perakitan yang sangat-sangat-sangat mudah
  • cukup didownload dengan Hyper Terminal
  • tanpa perlu mencabutnya dari systemnya

Kelemahan downloader ini:
  • Menggunakan komunikasi Serial. (Anda harus membeli Adapter USB-Serial jika PC anda tidak dilengkapi COM).
  • Harus mengubah setting Fuse. Dilakukan dari downloader lain (walau 1 kali seumur hidup).

Baca topic Lebih dalam tentang Bootloader.

- Skema



Praktis hanya dibutuhkan hanya rangkaian yang ada pada garis putus-putus gambar di atas. Jika system anda tidak dilengkapi dengan Driver Serial seperti itu, maka anda harus membuatnya. Dan anda harus menambahkan peralatan Reset, yakni dengan sebuah saklar mini atau saklar tekan kecil, plus sebuah resistor 10k jika diperlukan.

Layout driver sederhana misalnya seperti dibawah ini.


Dalam gambar atas, bagian sebelah atas adalah Gnd / Bumi. Sedang bagian bawah adalah Vcc 5V. Bagian kanan adalah yang terhubung dengan RS232 (PC), sedang bagian kiri yang terhubung dengan Bootloader.

- BIOS  "bootload.hex"

ente harus mengisikan program BIOS Bootloader.hex ke dalam ATmega8535. Tentu saja dengan menggunakan sebuah Downloader. Anda bisa mengisikannya di toko, tempat kawan, atau bisa lewat saya. Hal ini cukup dilakukan sekali saja.

Cara kerja BIOS Bootloader ini adalah begitu system dinyalakan dia langsung menunggu kiriman data dari host (PC). Pada saat inilah adalah waktu yang tepat untuk mengirimkan program Aplikasi. BIOS akan memindahkan program aplikasi tersebut pada ROM. Dimulai dari alamat reset. Setelah selesai, BIOS akan kambali menunggu kiriman. Jika sampai 6 detik tidak ada aktifitas, maka BIOS secara otomatis akan menjalankan program aplikasi dimulai dari alamat RESET.

- Program Host  "BootDL.exe"

Anda tidak perlu menginstall. Cukup jalankan saja filenya tentukan port yang anda gunakan lalu download filenya. Sebenarnya BIOS tersebut sudah bvisa bekerja dengan menggunakan hyper terminal. Sedang program ane itu adalah yang meniru fungsi Hyper Terminal dengan sedikit kelebihannya.

- Fuse

 Ini adalah bagian ke-tiga yang terpenting. Agar ATmega8535 dapat bekerja sebagai Bootloader maka anda harus mengubah setting Fuse. Sekali lagi dengan menggunakan sebuah Downloader. Hal ini hanya dilakukan sekali saja.
[hide]

Kutip
Fuse      |Sebelum |Sesudah |Keterangan
-------------------------------------------------------------------
High Byte |0xD9    |0xDC    |Bootloader size upper 256 Word.
          |        |        |Application 0x000- 0xEFF word address.
-------------------------------------------------------------------
Low Byte  |0xE1    |0xE4    |Oscilator internal 8 MHz

- Menjalankan BootLoader
Ente hanya perlu menjalankan Bootloader dengan bantuan Hyper Terminal. Mau lebih jelas tentang Hyper Terminal untuk Bootloader ... klik di sini. Anda hanya perlu menyambung Bootloader pada PC dengan menggunakan kabel dan koneksi yang DB-9. Setelah menekan tombol reset pada system, dan tekan tombol pada host. Aplikasi di download.

download program di sini. Atau di sini.



Kutip
Isi artikel dalam halaman ini, milik Dhanny Dhuzell. Isi dalam halaman ini adalah terbuka. Tidak ada larangan bagi yang menyalin halaman ini, dengan satu catatan, yakni Barang siapa yang mengubah isinya dan kemudian mengganti dengan namanya sendiri atau nama oramg lain, lebih-lebih dilakukan untuk diperdagangkan tanpa se-ijin pemilik artikel atau pemilik situs, adalah merupakan tindakan pelanggaran hak cipta yang dapat dituntut secara hukum. Dan tindakan tersebut dapat saya laporkan pada Rois Suryo, Mbah Marijan,atau Mbah Surip
[/hide]
« Edit Terakhir: April 12, 2012, 11:46:44 PM oleh DhannyDhuzell »



Offline DhannyDhuzell

  • Administrator
  • Sr. Member
  • *****
  • Tulisan: 397
  • Citra: 0
  • Silahkan di Post di forum, jangan PM atau Email.
Re:Bootloader untuk AVR
« Jawab #1 pada: April 13, 2012, 09:03:55 AM »
Lebih dalam tentang Bootloader
Oleh  Dhanny Dhuzell

Bagaimana BootLoader bekerja? Dengan mengatur-atur fuse yang dimiliki oleh AVR ATmega8535 kita dapat membagi ROM Program dengan 2 bagian.

1. Bagian pertama adalah bagian Aplikasi yang dimulai dari alamat 0x000. Kita dapat menuliskan semua program yang biasa kita lakukan. Untuk ATmega8535 biasanya kita bisa mengisi lokasi 0x000 sampai 0xFFF dengan program aplikasi. Namun banyak program-program hebat hanya menggunakan sedikit saja bagian ROM program dari sekian banyak itu. Sangat jarang program sampai menggunakan semua space yang ada.

2. Bagian kedua adalah bagian Boot. Bagian ini diletakkan dibagian paling atas dari ROM program. Sebab bagian ini jarang digunakan program aplikasi. Melalui fuse kita bisa mengatur ukuran bagian Boot tersebut. Mulai 128, 256, 512, atau 1024 words. Misalnya jika kita memilih ukuran 256, maka program untuk bagian boot harus dimulai dari alamat 0xF00. Sehingga saat AVR pertama dinyalakan atau reset, AVR bukan menjalankan alamat 0x000, melainkan langsung ke alamat 0xF00 (diatur melalui fuse high byte). Namun alamat-alamat interupsi tetap menduduki alamat semula. Sehingga program aplikasi dapat berjalan dengan sempurna baik menggunakan Bootloader maupun tidak.

Setelah AVR menjalankan bagian Boot, maka AVR bisa langsung dibuat berkomunikasi dengan PC, misalnya untuk penghapus program lama, atau mendownload program baru. Setelah itu Boot bisa diperintahkan untuk mulai menjalankan program baru tersebut. Sedang untuk kembali berhubungan antara PC dan Boot, kita dapat melakukan cukup dengan menekan tombol reset.

Sebuah fitur yang aduhai bukan ?!?!?!?!



Apa yang perlu dipersiapkan ??? Yakni AVR ATmega8535

Chip tersebut pertama harus anda dapatkan. Setelah itu anda harus bawa ke tempat kawan yang memiliki downloader khusus untuk AVR ATmega8535. Ini adalah kelemahannya. Namun anda hanya perlu melakukan sekali seumur hidup .. maksud saya setiap keping Chip. Minta tolong untuk melakukan 3 hal ini ...

Mengubah Fuse High Byte

Jika Chip baru fuse high byte memiliki nilai 0xD9, maka anda harus mengubahnya menjadi 0xDC. Yang berarti (a) mengatur BootLoader Size adalah 256 words, dan (b) alamat reset adalah 0xF00.
Program aplikasi diberikan ruang mulai 0x000 sampai dengan 0xEFF. Masih sangat lega, bukan ?!?!

Mengubah Fuse Low Byte

Jika Chip baru fuse Low byte memiliki nilai 0xE1, maka anda harus mengubahnya menjadi 0xE4. Yang berarti sebelumnya Chip menggunakan osilator internal 1 MHz, maka sekarang kita memaksa Chip untuk berjalan setengah kemampuan maksimumnya, yakni 8 MHz. Kecepatan 8 MHz kecepatan tertinggi jika chip hanya menggunakan osilator internal. Dengan demikian 1 siklus mesin dari Chip adalah 0,125 uS. Sebuah kecepatan yang fantastis untuk dunia Mikro Kontroller.

Mendownload program BIOS BootLoader

Tentu saja Boot harus diprogram-kan pada chip. Gunakan file BIOS "bootload.hex" di atas. Anda dapat mendownload file tersebut seperti biasa yang anda lakukan sebelumnya terhadap chip AVR biasanya. Sekali di download untuk ribuan kali download mandiri.

Ke tiga langkah di atas ( fuse high byte, fuse low byte, download BIOS ) sayangnya hanya bisa dilakukan dengan bantuan sebuah downloader khusus AVR / ATmega8535. Kali ini anda bisa meminjam dari teman untuk sementara. Atau mintakan pada teman untuk melakukan 3 langkah tersebut. Setelah itu anda tidak memerlukan downloader lagi.

Karena sudah siap, selanjutnya kita tinggalkan dahulu chip ATmega8535 kita itu. Buatlah sekarang PCB nya. Anda bisa membuat PCB dari PCB bolong dengan menghubungkan masing-masing kaki dengan dengan sebuah kabel, atau mencetak PCB dengan ETSA, terserah deh yang mana enaknya. Saya sendiri untuk prototipe lebih suka PCB bolong.



Membuat rangkaian dan PCB

Kenapa harus membuat rangkaian lagi. Tidak !!! saya hanya menjelaskan rangkain minimal yang harus dibuat untuk ATmega8535 agar Bootloader bekerja.

T: Apakah ATmega anda sudah memiliki rangkaian dan PCB?
J : jika Ya, maka tidak perlu lagi dibuatkan yang baru.

T: Apakah rangkaian sudah dilengkapi dengan Converter RS232 pada port serialnya?
J : Jika belum terpaksa kita harus membuatnya.

Dibawah ini adalah skema dasar agar Bootloader bekerja.



Nampak pada gambar di atas adalah skema rangkaian minimal. Anda bisa saja menggunakan IC Maxim232 jika ingin sedikit lebih ringkas. Nampak juga di atas adalah pin catu daya utama ATmega8535, yakni "Vcc", dan catu daya untuk ADC, yakni "AVcc". Pada rangkaian di atas, kedua catu daya tersebut digabung menjadi satu. Jika dalam desain anda menggunakan ADC, maka sesuai dengan petunjuk pabrik, hubungan catu daya ke "AVcc", dihubungkan dengan sebuah "RF Choke" atau kumparan kecil untuk meredam sinyal liar yang bisa masuk ke ADC.  Plus ditambah sebuah kapasitor minimal 100 uF.
Kaidah-kaidah yang lain perlu anda ikuti, menyesuaikan desain yang anda pilih. Sekali lagi gambar di atas adalah kebutuhan minimum, agar Bootloader bisa bekerja.



Menjalankan BootLoader

Menjalankan dengan apa ?!?!?! kode yang kita isikan ke dalam chip ATmega8535 tadi adalah kode yang 100% support dengan Intel Format Hex File. Yang mana jika anda mengetikkan program lalu mengkompilasi dengan "AVRA" maka hasil akhirnya adalah Intel Format Hex File. File ini bisa didownload dengan menggunakan sebuah program khusus. Atau juga dengan bantuan program yang selalu ada pada Windows anda, yakni "Hyper Terminal".

Namun karena kesederhanaanya, maka saya memutuskan untuk membuang kode 5 detik jalan sendiri. Sehingga kita harus menampahkan kode karakter U di akhir baris File HEX kita. Atau mengirimkan file lagi, yang berisi 1 karakter "U", sebagai tanda bahwa bootloader mulai meng eksekusi program kita itu.

Bagaimana menjalankan Hyper terminal ? Klik di sini.

File cukup di download dengan hyper terminal. Setelah itu agar chip mulai bekerja maka anda harus mengirimkan instruksi Run. Instruksi ini tidak dibuat oleh AVRA. Sehingga kita harus membuatnya sendiri. Dengan cara yang sama saat mendownload aplikasi, kirimkan file "Run The Chip.hex" menggunakan hyper terminal tadi. Dan segera Chip ATmega8535 anda segera bekerja, menjalankan aplikasi anda.

Tips !!! anda dapat mengembangkan system menjadi otomatis. Yakni anda dapat menggunakan sinyal DTR atau RTS untuk mengendalikan pin Reset langsung dari PC (hyper terminal). Anda harus membuat konverter untuk itu. Sementara itu program yang  baru saja didownload akan berjalan otomatis 4-5 detik kemudian.
Agar menjadi otomatis, maka alamat Boot 0xF18 dengan data 0xCFF3 maka buatlah menjadi 0x0000. Dan kemudian bootloader akan selalu menjalankan program aplikasi 4-5 detik setelah aktifitas terakhir. Program aplikasi bisa dijalankan walau system / ATmega8535 sudah tidak dihubungkan lagi dengan PC. Hebat bukan ?!?!

 
« Edit Terakhir: April 13, 2012, 10:40:09 AM oleh DhannyDhuzell »

Offline digitak

  • Newbie
  • *
  • Tulisan: 4
  • Citra: 0
  • Selamat bergabung Gan
Re:Bootloader untuk AVR
« Jawab #2 pada: Maret 18, 2013, 10:35:44 AM »
Windows 7 tidak ada Hyper Terminal.
Bagaimana caranya agar Hyper terminal bisa dibuka di Windows 7....Silahkan coba buka di
http://digitizor.com/2009/08/29/install-winxp-hyperterminal-client-on-windows-vista-or-windows-7-free/

slamat nyobi

Offline JokoTingkir

  • Newbie
  • *
  • Tulisan: 42
  • Citra: 0
  • Main Serong
Re:Bootloader untuk AVR
« Jawab #3 pada: Maret 19, 2013, 10:11:19 AM »
Windows 7 tidak ada Hyper Terminal.
Bagaimana caranya agar Hyper terminal bisa dibuka di Windows 7....Silahkan coba buka di
http://digitizor.com/2009/08/29/install-winxp-hyperterminal-client-on-windows-vista-or-windows-7-free/

slamat nyobi

makasih gan

 :makasih :cintamati