ریختن Bootloader بر روی آردوینو

به صورت خلاصه برای برنامه ریزی میکروکنترلر های avr نیازمند ابزاری به نام پروگرمر هستید و این برنامه ریزی از طریق پورت SPI انجام خواهد شد. بوت لودر کد کوچکی است که بخشی از حافظه ی میکروکنترلر را اشغال می کند و به کاربر اجازه می دهید تا بدون نیاز به پروگرمر، میکروکنترلر مد نظر خود را برنامه ریزی کند. ریختن بوت لودر معمولا توسط کمپانی های سازنده ی برد ها صورت می گیرد ولی در مواردی که برد توسط کاربر ساخته شده، میکروکنترلر جدیدی بکار گرفته شده و یا در زمانی که بوت لودر دچار مشکل شده است نیازمند ریختن مجدد بوت لود خواهید بود. در ادامه با آموزش ریختن بوت لودر بر روی میکروکنترلر های atmega8 و atmega168 و atmega328 و atmega32u4 و atmega1280 و atmega2560 به زبان ساده آشنا خواهید شد.

 

ابزار های لازم

۱- برد آردوینو و یا برد پروگرم، برای ساختن برد آردوینو اینجا و برای ساخت برد پروگرم اینجا کلیک کنید.

۲- پروگرمر ARVISP MKII، هم میتوانید آن را بخرید و هم میتوانید آن را بسازید.

۳- نرم افزار ARV Studio و  نرم افزار Arduino IDE (از گوگل برای پیدا کردن هر کدام استفاده کنید.)

 

روش کار

مرحله ی اول

برد خود را از طریق پورت SPI به پروگرمر وصل کنید، سپس درصورت نیاز یک منبع برق به برد وصل کنید، حال برنامه AVR Studio را باز کنید. سپس از منوی Tools گزینه ی Device Programming را انتخاب کنید. از تب Tool گزینه AVRISP MKII را انتخاب کنید. از تب Device میکروکنترلر خود را انتخاب کنید و سپس Interface را بر روی ISP قرار دهید. سپس بر روی Apply کلیک کنید.

 

مرحله ی دوم

حالا از منوی سمت چپ بر روی Memories کلیک کنید. از منوی Flash فایل بوت لودر مناسب را انتخاب کنید. سپس بر روی Program کلیک کنید. اگر همه چیز خوب پیش برود، در کادر پایین متن Verifying Flash… OK را خواهید دید.

 

مرحله ی سوم

بعد از اتمام این کار به منوی Fuses بروید و مقادیر مناسب با میکروکنترلر خود را تنظیم نمایید. سپس بر روی Program کلیک کنید. اگر همه چیز درست پیش رفته باشد متن Verifying registers… OK را در کادر پایین صفحه مشاهده خواهید کرد.

 

مرحله ی چهارم

حال از منوی سمت چپ بر روی Lock Bits کلیک کنید و در کادر LockBit Value مقدار مناسب با میکروکنترلر خود را وارد کنید و بر روی Program کلیک کنید. اگر همه چیز درست پیش رفته باشد در کادر پایین صفحه Verifying registers… OK را خواهید دید. تبریک میگم بوت لود شما با موفقیت برروی کنترولرتون پروگرم شد. اگر بوت لودر رو با موفقیت نصب کرده باشید، چراغ وضعیت برد به صورت ضربان قلب فلش می زند. برای آپلود کردن Sketch ها از برنامه Arduino IDE استفاده کنید.

 

مقادیر میکروکنترلرها

برای میکروکنترلر atmega8 :

Bootloader:
FLASH: ak_atmegaboot_atmega8.hex
Fuses:
EXTENDED:
HIGH: 0xCA
LOW: 0xDF
Lock bits:
LOCKBIT: 0x0F
Arduino Board Processor: Arduino NG or older ATmega8

 

برای میکروکنترلر atmega168 :

Bootloader:
FLASH: ak_atmegaboot_atmega168.hex
Fuses:
EXTENDED: 0x00
HIGH: 0xDD
LOW: 0xFF
Lock bits:
LOCKBIT: 0x0F
Arduino Board Processor: Arduino NG or older ATmega168

 

برای میکروکنترلر atmega328 :

Bootloader:
FLASH: ak_atmegaboot_atmega328.hex
Fuses:
EXTENDED: 0x05
HIGH: 0xDA
LOW: 0xFF
Lock bits:
LOCKBIT: 0x0F
Arduino Board Processor: Arduino Duemilanove or Diecimila ATmega328

 

برای میکروکنترلر atmega32u4 :

Bootloader:
FLASH: ak_atmegaboot_atmega32u4.hex
Fuses:
EXTENDED: 0xCB
HIGH: 0xD8
LOW: 0xFF
Lock bits:
LOCKBIT: 0x2F
Arduino Board Processor: Arduino Leonardo _ Arduino/Genuino Micro *

 

برای میکروکنترلر atmega1280 :

Bootloader:
FLASH: ak_atmegaboot_atmega1280.hex
Fuses:
EXTENDED: 0xF5
HIGH: 0xDA
LOW: 0xFF
Lock bits:
LOCKBIT: 0x0F
Arduino Board Processor: Arduino/Genuino Mega or Mega 2560 ATmega1280

 

برای میکروکنترلر atmega2560 :

Bootloader:
FLASH: ak_stk500boot_atmega2560.hex
Fuses:
EXTENDED: 0xFD
HIGH: 0xD8
LOW: 0xFF
Lock bits:
LOCKBIT: 0x0F
Arduino Board Processor: Arduino/Genuino Mega or Mega 2560 ATmega2560