نصب بوت لودر روی ATmega328 با آردوینو UNO

در این پروژه، نحوه نصب بوت لودر را در میکروکنترلر ATmega328 به شما نشان خواهم داد. با استفاده از این روش، می‌توانید از میکروکنترلر ATmega328 خود به صورت مستقل در طراحی سفارشی یا PCB استفاده کنید. (هم‌چنین می‌توانید کد را آپلود کنید).

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

مقدمه

اگر در حال مطالعه این پروژه هستید، احتمالاً از برد آردوینو استفاده کرده‌اید. احتمال زیاد وجود دارد که میکروکنترلر ATmega328 در آردوینو UNO پس از مدت زمان معینی (یا اتصال نادرست) از کار بیفتد. برای استفاده مجدد از برد آردوینو، به یک آیسی جدید ATmega328 با بوت لودر لود شده نیاز دارید.

دلایل دیگری نیز برای نصب بوت لودر در ATmega328 وجود دارد. مانند این‌که شما بوت لودر خود را نوشته‌اید و می‌خواهید آن را تست کنید یا می‌خواهید کار میکروکنترلر را با جزئیات بفهمید.

اخطار : اگر شما در این نوع مطالب تازه‌کار هستید، کلنجار رفتن با بوت لودر در آردوینو را توصیه نمی‌کنیم.

بوت لودر چیست؟

به زبان ساده، بوت لودر کد کوچکی است (کد قابل اجرا با فرمت hex) که در حافظه میکروکنترلر ساکن است. بوت لودر در آردوینو به ما امکان می‌دهد تا آردوینو را از طریق پورت سریال یعنی با استفاده از کابل USB پروگرام کنیم.

کار بوت لودر در آردوینو، پذیرفتن کد از رایانه و قرار دادن آن در حافظه میکروکنترلر است.

چرا به بوت لودر احتیاج داریم؟

به طور سنتی، میکروکنترلرهایی مانند ATmega328 از Atmel با کمک پروگرامرهای اختصاصی پروگرام شده‌اند که شامل برخی اتصالات فانتزی است. بوت لودرها این پیچیدگی را از بین می‌برند و یک روش آسان برای پروگرام کردن میکروکنترلر یعنی دقیقاً با استفاده از کابل USB برای ما فراهم می‌کنند.

مطلب پیشنهادی:  آردوینو چیست؟ مقدمه‌ای بر آردوینو

بوت لودرها در یک مکان امن خاص از حافظه قابل پروگرام  میکروکنترلر ساکن هستند و معمولاً کمتر از 1 کیلوبایت از حافظه را اشغال می‌کنند.

چه نیازی به نصب بوت لودر در ATmega328 است؟

همان‌طور که قبلاً نیز اشاره کردم، اگر می‌خواهید برنامه‌ها را بر روی یک میکروکنترلر ATmega328 جدید آپلود کنید، باید از یک پروگرامر مخصوص استفاده کنید (و بیت فیوز را نیز تنظیم کنید). اما اگر بوت لودر را در ATmega328 نصب کنید، می‌توانید میکروکنترلر را روی پورت سریال کابل  USBپروگرام کنید.

هنگامی‌که میکروکنترلر ATmega328 با بوت لودر آماده است، می‌توانید به سادگی از آن در برد آردوینو (به عنوان جایگزین) استفاده کنید. اگر قصد دارید برد آردوینو خود را بسازید، می‌توانید از آن به عنوان میکروکنترلر استفاده کنید.

چگونگی نصب بوت لودر در ATmega328

چند روش برای نصب بوت لودر در ATmega328 وجود دارد. راه اول، استفاده از پروگرامر اختصاصی AVR است. راه دوم، استفاده از یک برد آردوینو به عنوان پروگرامر و نصب بوت لودر روی میکروکنترلر ATmega328 مورد نظر است.

در این پروژه، از روش دوم یعنی از آردوینو به عنوان پروگرامر استفاده می‌کنم.

شماتیک مدار

شماتیک مدار برای نصب بوت لودر در میکروکنترلر ATmega328 با استفاده از آردوینو در زیر نشان داده شده است.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

نمودار پین‌های میکروکنترلر ATmega328 در تصویر زیر، دقیقاً به صورت موردی نشان داده شده است.

مطلب پیشنهادی:  توابع ورودی/خروجی پیشرفته آردوینو

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

اجزای مورد نیاز

  • آردوینو UNO
  • میکروکنترلر ATmega328
  • کریستال 16 مگاهرتز
  • 2 عدد خازن سرامیکی 22pF
  • مقاومت 10KΩ
  • پوش باتن 
  • مقاومت 330Ω
  • ال ای دی
  • برد بورد
  • سیم
  • منبع تغذیه 5 ولت

روش پروگرام کردن بوت لودر در Atmega328

همان‌طور که قبلاً ذکر شد، آردوینو UNO در اینجا به عنوان یک پروگرامر AVR مورد استفاده قرار می‌گیرد. برای رسیدن به این هدف، شما باید یک برنامه ویژه را روی برد آردوینو UNO با نام “Arduino ISP” آپلود کنید.

بنابراین، قبل از برقراری اتصالات، آردوینو UNO را با استفاده از کابل USB به رایانه متصل کرده و برد و پورت مناسب را در آردوینو IDE انتخاب کنید.

اکنون، به مسیر File > Examples > ArduinoISP > ArduinoISP  بروید. برای اینکه برد آردوینو UNO خود را به یک پروگرامر AVRISP تبدیل کنید، این کد را در آردوینو UNO آپلود کنید.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

پس از انجام این مرحله، اتصالات لازم را برقرار کنید (اگر قبلاً برقرار نشده). اکنون به Tools > Programmer بروید و گزینه “Arduino as ISP” را انتخاب کنید. پس از این، شما آماده نصب بوت لودر هستید.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

به سادگی، به Tools بروید و روی “Burn Bootloader” کلیک کنید. میکروکنترلر ATmega328 مورد نظر شما با بوت لودر پروگرام می‌شود.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

آپلود اسکچ در ATmega328

پس از پایان آپلود بوت لودر در میکروکنترلر ATmega328، می‌توانید با آپلود کردن اسکچی آزمایشی روی آن، ادامه دهید. برای این کار، همان اتصالات قبلی را حفظ کرده و مثلاً هر اسکچی مانند Blink را باز کنید.

مطلب پیشنهادی:  توابع ورودی/خروجی در آردوینو

هیچ گزینه‌ای را تغییر ندهید، یعنی پروگرامر هنوز روی “Arduino as ISP” قرار دارد. اکنون با نگه داشتن دکمه “Shift” روی صفحه کلید، روی آیکون “Upload” کلیک کنید. با استفاده از آردوینو UNO به عنوان پروگرامر، این اسکچ را در ATmega328 آپلود می‌کنید.

پس از اتمام این کار، می‌توانید آردوینو UNO را از ATmega328 جدا کنید. از ATmega328 به عنوان یک دیوایس مستقل با استفاده از اسکچ Blink که بر روی آن کار می‌کند، استفاده کنید.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

تصویر زیر، میکروکنترلر ATmega328 را در حال اجرای اسکچ Blink پس از آپلود شدن با کمک آردوینو UNO نشان می‌دهد.

توجه : به منظور آپلود كد در آردوینو UNO، مطمئن شوید كه پروگرامر را به حالت “AVRISP mkII” برگردانده‌اید.

چگونگی نصب بوت لودر در ATmega328 با استفاده از آردوینو UNO

نتیجه

در این پروژه، به شما نشان دادیم كه چگونه بوت‌لودر را روی ATmega328 نصب کنید. هم‌چنین به عنوان یک آپشن اضافی نشان دادیم که چگونه می‌توانید اسکچ‌های آردوینو را با استفاده از آردوینو UNO روی ATmega328 با بوت لودر آپلود كنید.

امیدواریم آموزش نصب بوت لودر روی ATmega328 با آردوینو UNO براتون مفید واقع شده باشه.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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

3 دیدگاه

  1. برا ی اینکه atmega بدون uno بتونه کار کنه همچنان اون مداری که با کریستال و خازن هست باید باشه دیگه؟

  2. با سلام خیلی ساده و خوب و قابل فهم برای افرادی مثل من که میزان اطلاعاتشون در مورد اردیونو کم هست عالی هست ممنون.

  3. خیلی عالیه / یک سوال ایا بعد از اینکه برده اردیونو را با اپلوید برنامه مخصوش به پرو گرامر تبدیل شد میشد دو بار به حالت اولش برگردوند و روش برنامه نویسی کرد؟ مننون میشم جواب به ایمیلم بدید یا همین جا جواب ارسال کنید .