برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

داده هایی در مورد برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

تبلیغات
آخرین نظرات

۱ مطلب با کلمه‌ی کلیدی «Arduino Uno» ثبت شده است

بوت لودر ATmega8 در Arduino

ShahBaz | شنبه, ۲۵ مهر ۱۳۹۴، ۰۸:۲۸ ب.ظ

ATmega8 bootloader in arduino

بوت لودر ATmega8 در Arduino

به همره قسمت خطایابی در انتهای همین مطلب

به نام خدا

همان طور که می دانید در بردهای Arduino برد Atmega8 وجود ندارد ولی این امکان وجود دارد با نوشتن یک بوت لودر در ATmega8 به راحتی با این میکروکنترلر در Arduino برنامه نویسی کرد. حالا من آموزش کاملی رو واستون می ذارم.

ابتدا مواد لازم:

۱. Arduino ورژن ۱٫۰٫۵ (من با این ورژن تست زدم ولی احتمالا بالاتر هم جواب بده)

۲.ATmega8A-PU (نگران نباشید با دیگر سری ها هم جواب می دهد ولی واسه شروع از این استفاده کنید که شک یا شبه ایی پیش نیاد)

۳. دو/۲ عدد برد Arduino Uno (اول به این شکل انجام بدید تا حساب کار دستتون بیاد بعد برید روی Breadboard)

http://www.4shared.com/rar/GMfMPXrkce/ATmegaBOOT-prod-firmware-2009-.html

اول از هر کاری به مسیر hardware/arduino/bootloaders/atmega8 بروید سپس بررسی کنید فایل ATmegaBOOT-prod-firmware-2009-11-07.hex در فولدر جاری باشد اگر نبود فایل رو از لینک بالا دانلود کنید و در مسیر فوق کپی کنید و بعد از حالت فشرده خارج کنید.

سپس در لینک زیر فایل فشرده رو دانلود کنید سپس از حالت فشرده خارج کنید و دو تا فایل pins_arduino.h و pins_arduino.c رو در مسیر hardware/arduino/cores/arduino کپی کنید.

http://www.4shared.com/rar/MnaI7s-Eba/pins_arduino.html

خوب حالا می رویم سراغ سخت افزار ها. دو عدد برد Arduino Uno یکی رو اول به کامپیوتر وصل کنید و سپس Arduino رو اجرا کنید و مطابق عکس برد Arduino Uno رو انتخاب کنید و بعد پورت سریال رو هم انتخاب کنید.

bootloader (1)

حالا مطابق عکس پایین در نوار ابزار بر روی File کلیک کنید و سپس در Examples بر روی ArduinoISP کلیک کنید حالا برنامه رو Upload کنید.

bootloader (2)

الان Bootloader Burner آماده است. خوب حالا برد Arduino Uno بعدی رو باید میکروکنترلر ATmeag328P رو از روش بردارین و یک ATmega8 جایگزین کنید.نگران نباشد چون ترتیب پایه های ATmega328P و ATmega8 دقیقا مثل هم هستند. بعد از انجام این کار دقیقا مطابق عکس پایین اتصالات رو برقرار می کنید.اما قبل به مسیر Arduino/hardware/arduino برید و  فایل boards.txt باز کنید. دنبال Arduino NG or older w/ ATmega8 بگردید حالا باید فیوز بیت های میکرو رو نتظیم کنید دو تا خط مثل زیر واسه میکرو تعریف شده

atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
بایت کم ارزش روی df و پر ارزش روی ca تنظیم کنید از آدرس Engbedded AVR Fuse Calculator هم می توانید استفاده کنید.

bootloader (3)


Bootloader Burner                            Arduino Uno With ATmega8

۵V+ ========================> +5V

GND ========================> GND

SCK =========================> SCK  پایه 13

MISO ========================> MISO  پایه 12

MOSI ========================> MOSI  پایه 11

SS ========================> Reset  پایه 10


*پایه Reset در بخش پاور برد آردوینو قبل از پایه 3.3 ولت هست.



خوب حالا بعد از اتصالات می ریم سراغ نوشتن بوت لودر. ابتدا کابل USB رو به بردی که به عنوان Bootloader Burner آماده کردیم متصل می کنیم و مطابق عکس پایین Programmer رو بر روی Arduino as ISP قرار می دهیم.

bootloader (4)

و بعد مطابق عکس پایین برد Arduino NG or order w/ATmega8 رو انخاب می کنیم و بعد در نوار ابزار بر روی Tools کلیک کنید و بروی Burn Bootloader کلیک کنید. LED های TX و RX بر بروی برد Arduino Uno که به عنوان Bootloader Burner آماده شده روشن می شوند و خاموش می شوند و بعد از زمان خیلی کوتاه دوباره روشن می شوند و عملیات نوشتن Bootloader آغاز می شود. و با پیغام تکمیل شدن نوشتن بوت لودر توسط کامپایلر به پایان می رسد.

bootloader (5)

حالا کابل USB رو به بردی که ATmeag8 رو جایگزین کردید متصل کنید و بعد پروژه چراغ چشمک زن رو Upload کنید و لذت ببرید.



خطاها:

سلام
من طبق کارهای شما پیش رفتم ولی موقع پروگرام کردن خطای

“efuse” memory type not defined for part “ATMEGA8″
میده
مشکل از چیه؟
در ضمن من از نسخه ۱٫۵٫۶ اردوینو استفاده میکنم.
با تشکر

-----------------------------------------------------------------------------------------------------------

سلام دوباره
من اردوینو ۱٫۰۵ رو نصب کردم اما اینبار خطای

core.a(main.cpp.o): In function main':C:\Program Files\Arduino\hardware\arduino\cores\arduino/main.cpp:11: undefined reference to setup’
C:\Program Files\Arduino\hardware\arduino\cores\arduino/main.cpp:14: undefined reference to `loop’

رو میده…


پاسخ:

باید در نوار ابزار بر روی Tools کلیک کنید و بروی Burn Bootloader کلیک کنید. احتمالا شما روی Upload کلیک کرده اید.

-----------------------------------------------------------------------------------------------------------


سلام مجدد؛
بعد از باز و بستن برنامه همه چیز به خوبی پیش رفت و بوت لودر آپلود شد.

فقط یه نکته و اونم اینکه بعد از اینکه برد آنو با میکرو اتمگ ۸ بوت شد از این به بعد برای ریختن برنامه داخل اون باید در قسمت “برد” به جای “اردوینو انو” باید گزینه “Arduino NG or order w/ATmega8 ” رو انتخاب کرد.

مدت زمان بوت شدن برنامه ال ای دی چشمک زن در این بردها ممکن هست نسبت به بردهای اردوینو با اتمگ 328 بیشتر باشه..مثلا شاید توی اتمگ328 بلافاصله بعد از آپلود برنامه چشمک زن ال ای دی شروع به چشمک زدن بکنه اما توی اتمگ 8 یه چند ثانیه ای تاخیر داشته باشه...که زیاد مهم نیست.


دقت شود بعد از اینکه بوت لودر داخل برد آردوینو با اتمگ 8 ریختید؛، دقت کنید که سیم های +5 و زمین و پایه ریست رو حتمن خارج کنید. و بعد برنامتون رو بریزید در غیر این صورت با خطا مواجه میشید.


با تشکر


منبع:

http://turbodigital.ir/?p=57

  • ShahBaz