مطالب علمی

پروگرام کردن میکروکنترلر AVR از طریق بوت لودر

بوت لودر چیست ؟
احتمالا تا به حال با عبارت بوت لودر در میان روش هایی که میکروکنترلرها را با آن برنامه ریزی می کنند، مواجه شده اید .
بوت لودر روشی برای پروگرام کردن تراشه های میکروکنترلر است که توسط خود ميکروکنترلر اقدام به برنامه ریزی خودش می شود . این روش از پروگرام کردن تراشه مخصوص آن دسته از میکروکنترلرها می باشد که قابلیت نوشتن در حافظهء برنامه خود را دارند.
در روش بوت لودر ، در ابتدا یک برنامه با حجم پائین در میکروکنترلر پروگرام می شود. وظیفهء این برنامه برقراری ارتباط با کامپیوتر و اجرای دستورات دریافتی از آن (خواند/نوشتن/پاک کردن و ..) می باشد. پس از اینکه برنامهء بوت لودر را بر روی میکروکنترلر پروگرام کردید، پس از هر بار ریست شدن میکروکنترلر و یا قطع و وصل تغذیه ، ابتدا به برنامهء بوت لودر پرش می شود تا اگر ارتباط با کامپیوتر برقرار بود، به اجرای دستورات دریافتی پرداخته شود و اگر ارتباط برقرار نبود، به برنامهء اصلی میکروکنترلر پرش می شود (البته اگر قبلا برنامه اصلی هم پروگرام شده باشد ).

در این آموزش می خواهیم با استفاده از پورت سریال میکروکنترلرهای خانواده AVR و Xmega را پروگرام کنیم.
ابتدا فایل زیر رو دانلود کنید که حاوی BootLoader میکروکنترلرهای مختلف اعم از Xmega و ATmega می باشد:
دانلود فایل BootLoader
هر میکرو بسته به نوعش که یک Usart داره یا دوتا چند فایل مختلف داره که یکی واسه usart0 و پروتکل rs232 و یکی واسه usart1 و پروتکل rs232 و پروتکل rs485 که بسته به نیاز خودتون یکی از این فایل ها رو روی میکرو پروگرام میکنید.
توجه کنید که باید فیوزبیتهای BOOTRST و BOOTSZ0 و BOOTSZ1 رو پروگرام کنید (در حالت 0 قرار بدید حالت دیفالت BOOTSZ0 و BOOTSZ1 در حالت 0 قرار دارن و شما فقط باید BOOTRST رو تغییر بدید) و از کریستال 8 مگ به بالا استفاده کنید که میتونید از 8 مگاهرتز داخلی میکرو هم استفاده کنید.
نحوه پروگرام کردن :
الان دو روش واسه پروگرام کردن میکرو وجود داره
1-استفاده از GUI CHIP45 که توسط خود سازنده بوتلودر ارائه شده
2-استفاده از محیط ترمینال و یا هر دستگاه یا ماژولی که بشه اطلاعات رو به صورت سریال به میکرو فرستاد (بلوتوث،وایفای و…..)
خوب اول به روش GUI :
ابتدا فایل زیر رو دانلود کنید:
دانلود chip45boot2 GUI

gui1

این روش زیاد سخت نیست و کلا روش کار به این صورت هست که شما مبدلتون رو به میکرو متصل میکنید و از قسمت select com port پورت مورد نظرتون رو انتخاب میکنید و baudrate هم روی 19200 قرار میدید و گزینه Connect to Bootloader رو انتخاب میکنید (در اینحالت از ریست شدن میکرو نباید بیشتر از 2 ثانیه گذشته باشه چون از بوتلودر خارج میشه و وارد برنامه اصلی میشه) :

gui2

اگه همه چی اوکی باشه و مشکلی نباشه مربع status سبز رنگ میشه و Connected نمایش داده میشه.
حالا شما میتونید فایل هگز و فایل ایپرام رو به نرم افزار معرفی کنید و گزینه Program Flash و یا Program Eeprom رو بزنید و پس از اینکه کارتون تموم شد میتونید گزینه Start Application رو بزنید تا میکرو از بوتلودر خارج شه و برنامه اصلی اجرا بشه و یا اینکه میکرو رو ریست کنید

gui3

2-استفاده از محیط ترمینال و یا هر دستگاه یا ماژولی که بشه اطلاعات رو به صورت سریال به میکرو فرستاد (بلوتوث،وایفای و…..)
خوب در این روش ما میاییم و تمام کاری که اون محیط گرافیکی انجام میده رو در ترمینال خودمون انجام میدیم.خوبی این کار به این هست که شما میتونید هر نرم افزاری با هر محیط گرافیکی که خواستید واسه آپدیت سخت افزارتون بسازید.خوب بریم سراغ آموزش:
خوب اولین کاری که باید بکنید این هست که فایل هگز رو به وسیله یه نرم افزار ویرایشگر متن (TEXT ویندوز و یا notpad++) باز کنید هر خط از فایل هگز رو تو یه فایل متنی جدا ذخیره کنید و بعدش یه اینتر بزنید.
به عنوان مثال فایل هگز زیر رو در نظر بگیرید:

:1000000012C0189518951895189518951895189563
:100010001895189518951895189518951895189578
:100020001895189518958FE58DBFC8E3E0E24E2E20
:1000300084E08EBFD4E0F4E05F2EA89584B7082E4C
:10004000877F84BF88E1992781BD91BDEEEFF3E002
:10005000A0E6B0E088278D933197E9F76624A59A4A
:1000600085B390E2892785BB8CED95E00AD0F8CF67
:100070003197F1F70895689462F80895E89462F86A
:100080000895EF93FF93EE27E82BE92B31F0E0ED95
:10009000F7E03197F1F70197D1F7FF91EF910895CC
:00000001FF

11 خط داره و در نتیجه شما باید 11 فایل text به هر نامی که دوست دارید ایجاد کنید.فقط ترتیب خطها رو یادتون باشه (بهترین راه اینه که شماره گذاری کنید)
11 تا فایل باید به صورت زیر باشه:

terminal1

اون enter آخر هر فایل خیلی مهمه و حتما بزارید.
خوب حالا میریم سراغ محیط ترمینال که من از ترمینال کدویژن استفاده میکنم:
تنظیمات ترمینال رو به اینصورت قرار بدید:


baud rate=19200
data bits=8
stop bits=1
parity:none
handshaking:none

خوب از منوی tools گزینه terminal رو انتخاب کنید تا محیط ترمینال نمایش داده بشه و بعد Connect رو بزنید:

terminal2

حالا بسته به سخت افزاری که دارید یا میخواید کار کنید یا میکرو رو ریست کنید و یا اینکه ولتاژ میکرو رو قطع و کنید و دوباره وصل کنید.
حدود 2 ثانیه مهلت دارید که کاراکتر U رو به ترمینال بفرستید و بهترین راه این هست که دستتون رو دائم رو U (یو بزرگ) قرار بدید و سپس میکرو رو ریست کنید به صورت زیر:

terminal3

اگه تنظیمات رو درست انجام داده باشید میکرو نام بوتلودر و ورژن BootLoader رو میفرسته و تو ترمنال نمایش داده میشه که اینجا نام بوتلودر c45b2 و ورژن 2.9N هست.
خوب کار اصلی از اینجا شروع میشه:
واسه پروگرام کردن شما باید کلمه زیر رو وارد کنید و سپس اینتر بزنید:

کد:
pf
terminal4

در جواب BootLoader به شما کلمه pf+ رو نمایش میده.حالا باید اون فایل هگز رو که تکه تکه کردیم و آخر هر سطر اینتر گذاشتیم رو واسه میکرو بفرستیم(دلیل اینکه تو فایل هگز اصلی بعد هر خط اینتر نزدیم این هست که بعد هر خط که فرستاده میشه باید منتظر جواب میکرو بمونیم و بعد بریم خط بعد در غیر اینصورت پروگرام انجام نمیشه).خوب واسه فرستادن فایل text از طریق ترمینال گیزنه Tx file رو انتخاب کنید و دونه دونه اون فایلها رو به ترتیب معرفی کنید.میبینید که بعد هر خط که میفرستید یه نقطه به شما نمایش داده میشه و دلیل بر دریافت کامل اون خط هست و بعد از دریافت نقطه شما باید خط بعدی رو واسه میکرو بفرستید و الی آخر.
یه نکته که اینجا باید بگم این هست که بعد هر چهار خط که شما به میکرو ارسال کردید یه * هم نمایش داده میشه مثل شکل زیر:

terminal5

خط آخر هم که ارسال کردید یه + نمایش داده میشه و میره سر سطر و < نمایش میده تبریک میگم پروگرام میکرو به همین سادگی انجام شد!  حالا اگه حرف g رو وارد کنید و بعد اینتر رو بزنید برنامه ای که پروگرام کردید شروع به کار میکنه اگه به دستورای بیشتری واسه کار با بوتلودر نیاز دارید همش اینجا هست:

terminal6خوب حالا با این آموزش و یکم خلاقیت به خرج دادن می تونید از طریق بلوتوث،وایفای،gprs و…. میکرو رو آپدیت کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا