معرفی:
امروزه پلتفرم آردوینو به دلیل Open Source بودن بسیار گسترده شده و سورس کدهای رایگان و بیشماری برای راه اندازی هر نوع ماژول با آردوینو وجود دارد. یکی از دغدغههای توسعه دهندگان تولید محصول نهایی با سورس آردوینو و قیمت پایین است. ما در این مقاله به شما آموزش میدهیم که چگونه کدهای آردوینو را روی میکروکنترلر ATmega8 یا میکروهای ارزان قیمت دیگر اجرا کنید.
این مقاله بر اساس پروژه MCUdude در آدرس گیت هاب https://github.com/MCUdude نوشته شده است. این پروژه میکروهای متنوعی از Attiny13 گرفته تا ATmega2560 را برای کار با آردوینو ارائه میدهد. با نصب هر کدام از این گروه بردها میتوان با میکروکنترلرهای مختلف در محیط آردوینو کار کرد و برای آنها برنامه نویسی نمود.
نصب MiniCore
نظر به اینکه در این مقاله قصد داریم با میکروی ATmega8 کار کنیم وارد بخش MiniCore به آدرس https://github.com/MCUdude/MiniCore میشویم و برای نصب این گروه برد مخصوص آردوینو از منوی File روی Preferences کلیک کرده و در پنجره باز شده در قسمت Additional Boards Manager URLs در جلوی فیلد روی علامت شبیه پنجره کلیک کرده و در پنجره کوچک آدرس
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
را وارد و هر دوپنجره را OK می کنیم. این قسمت از آردوینو برای افزودن بردهای جدید به کار میرود. به طور مثال برای کار با ESP8266 نیز باید URL مربوطه را در اینجا کپی کنیم که در مقاله ای دیگر در مورد آن توضیح خواهیم داد. در صورتی که از بردهای متنوعی استفاده می کنید، URL ها را زیر یکدیگر اضافه کنید.
حال روی Tools>Board>Boards Manager کلیک کرده و عبارت minicore را جستجو و نصب می کنیم.
تنظیمات برد
بعد از نصب برد روی منوی Tools کلیک کرده و از قسمت Board روی MiniCore کلیک و ATmega8 یا میکروی دلخواه دیگر را انتخاب میکنیم و سایر تنظیمات از قبیل Clock و… را مطابق تصویر زیر تنظیم مینماییم. (برای کار با میکروهای دیگر از قبیل ATtiny و… باید گروه بردهای مربوطه را از آدرس گیت هاب بالا یافته و نصب کنید.
اجرای یک نمونه
بعد از انتخاب برد، مطابق تصویر زیر یک پروژه ساده چشمکزن (Blink) را از مثال های آردوینو باز میکنیم.
برنامه ریزی میکرو
در اینجا چند راه حل برای آپلود برنامه روی ATmega8 پیش رو داریم. اول اینکه از منوی Tools ابتدا از بخش Programmer، پروگرمر مورد نظر را انتخاب کرده و میکروی ATmega8 را داخل آن قرار داده و با زدن گزینه Burn Bootloader بوت لودر را داخل میکرو بارگزاری نماییم. این گزینه معمولا به دلیل عدم شناسایی پروگرمر توسط آردوینو با مشکل مواجه میشود و نیاز به یک برد آردوینوی دیگر بعنوان پروگرمر میباشد. گزینه دیگر اینکه از منوی Sketch روی Export compiled Binary کلیک کنیم و دو فایل HEX مختلف تحویل بگیریم. یکی با بوت لودر و دیگری بدون بوت لودر و هر دو آماده پروگرم شدن روی میکروکنترلر ATmega8 توسط پروگرمر دلخواه. روش سوم هم پرورگم کردن میکرو با کمک مبدل USB به TTL است که البته فعلا امکان پذیر نیست چون هنوز هیچ بوت لودری روی میکرو قرار داده نشده است و در مرحله بعدی از این روش استفاده خواهیم کرد.
تنظیم فیوزبیت ها
برای اولین بار ما از روش دوم استفاده می کنیم و فایل HEX را ایجاد می کنیم. سپس یک پروگرمر دلخواه (در اینجا BASCOM) را باز کرده و فایل بوت لودر دار را روی میکرو پروگرم میکنیم و فیوزبیتهای میکرو را مطابق شکل زیر تنظیم مینماییم. در خصوص فیوزبیتهای آخر یعنی بوت لودر دقت داشته باشید که هر دو تغییر کرده اولی روی 512 و دومی روی حالتی تنظیم شده که پس از Reset به بردار بوت لودر پرش کند نه بردار ریست. همچنین فیوز بیت کریستال نیز روی کریستال خارجی تنظیم شده و BOD فعال و روی 2.7 ولت قرار گرفته است. سپس فایل Blink.ino.with_bootloader_atmega8_16000000L.hex را روی میکرو پروگرم می کنیم.
(جزئیات بیشتر در خصوص پروگرم کردن فایل HEX جانبی توسط بسکام در اواسط مقاله موجود در این لینک توضیح داده شده است)
شماتیک برد
بعد از پروگرم کردن مداری مطابق شکل زیر میبندیم و یک LED با مقاومت 1 کیلو یا 330 اهم به پایه 19 میکرو (PB5) و زمین متصل کرده و با اعمال ولتاژ متوجه چشمکزدن LED خواهیم شد. پایه PORTB.5 یا پایه 13 آردوینو همان پایه LED_BUILTIN میباشد. برای پروگرم کردن مجدد میکرو در دفعات بعدی تنها کافیست از یک مبدل USB به TTL که دارای خروجی DTR باشد مطابق شکل استفاده کنیم و دقیقا مانند سایر بردهای آردوینو روی دکمه فلش در محیط IDE آردوینو کلیک کنیم تا برنامه در میکرو آپلود شود. همچنین در صورت نداشتن مبدل با پایه DTR می توانید یک کلید روی پایه RESET میکرو به زمین متصل کرده، پایه RESET را نیز با مقاومت 10 کیلو به VCC متصل کنید (PULLUP) و قبل از زدن کلید فلش در آردوینو کلید RESET را فشرده نگه داشته و پس از زدن کلید فلش و موقع نوشته شدن عبارت Uploading در نوار وضعیت کامپایلر Arduino دکمه RESET را رها کنید تا برنامه به میکرو منتقل شود. روش دیگر نیز Export فایل Hex و انتقال هگز بدون بوت لودر به میکرو توسط پروگرمر جانبی و سپس قفل کردن میکرو است.
شماره پایه ها
ترتیب پایه ها در micicore و ATmega8
جمع بندی
بدین ترتیب براحتی میتوان محصول نهایی را با کد آردوینو و میکروی کوچکتر و ارزانتر تولید کرد. در مقاله بعدی انشاءالله به نحوه برنامهنویسی برای ماژول وای فای ESP8266 با کامپایلر آردوینو خواهیم پرداخت.
منابع:
https://github.com/MCUdude/MiniCore
https://create.arduino.cc/projecthub/hami/programming-atmega8-using-arduino-ide-90c2ad
بازدیدها: 1634
عالی بود ممنون از شما
درود بر شما