برنامه نویسی ATtiny85 با آردوینو و USB مستقیم
خانواده ATtiny مجموعه ای از کوچکترین میکروکنترلر های AVR هستند. این میکروکنترلرها قادر به استفاده از بسیاری از کتابخانه های موجود در بستر آردوینو هستند. تراشه میکروکنترلر ATtiny85 میکروکنترلر 8 پین ، 8 بیتی و از خانواده AVR است. اندازه کوچک و مصرف کم آن باعث شده است که برای پروژه های قابل حمل، محدودیت فضا و نیاز به انرژی کم مناسب باشد. اما قرار دادن کد روی تراشه تاینی 85 (ATtine85) می تواند کمی چالش برانگیز باشد زیرا هیچ رابط USB مستقیمی ندارد.
پدر این آموزش ، ما می خواهیم یک برد برنامه نویسی ATtiny85 بسازیم ، به طوری که می توانیم آن را مانند برد های آردوینو به صورت مستقیم برنامه نویسی کنیم.
محتویات
قطعات مورد نیاز برای برنامه نویسی ATtiny85 با USB
- Arduino UNO (فقط برای اولین بار هنگام بارگذاری بوت لودر)
- آیسی ATtiny85
- کابل USB نر نوع A (معمولی)
- 3 مقاومت (2 × 47Ω و 1 × 1kΩ)
- 2 × دیود زنر
- 1 × IN5819 دیود
میکروکنترلر ATtiny85 چیست؟
ATtiny85 یک میکروکنترلر 8 بیتی با کارایی بالا ، کم مصرف و مبتنی بر معماری پیشرفته RISC است. این تراشه میکروکنترلر امکانات و ویژگی های مناسبی است. تاینی 85 دارای تایمر/کانتر، وقفه، مبدل آنالوگ به دیجیتال و … است.
بیشتر پین های ورودی و خروجی تراشه بیش از یک عملکرد دارند.
نصب بوت لودر در ATtiny85 با Arduino Uno
برای برنامه نویسی ATtiny85 بدون برد Arduino ، ابتدا باید بوت لودر را با استفاده از برد Arduino UNO در آن بارگذاری کنیم. این یک فرآیند یکباره است و پس از انجام این کار دیگر نیازی به برد UNO نخواهیم داشت. Boot-loader یک برنامه ویژه است که در میکروکنترلر اجرا می شود که باید برنامه ریزی شود. یکی از راحت ترین راه ها برای بارگذاری داده های برنامه خود بر روی میکروکنترلر ، استفاده از طریق بوت لودر است. Boot-loader روی میکروکنترلر قرار می گیرد و دستورالعمل های ورودی را انجام می دهد ، و سپس اطلاعات جدید برنامه را در حافظه میکروکنترلر می نویسد.
فلش کردن یک بوت لودر روی میکروکنترلر ، نیاز به سخت افزار خارجی ویژه (Programmer Boards) را برای برنامه ریزی میکروکنترلر برطرف می کند و شما می توانید مستقیماً با استفاده از اتصال USB آن را برنامه ریزی کنید. برد Digispark ATtiny85 بوت لودر “micronucleus tiny85” را اجرا می کند ، که در اصل توسط Bluebie نوشته شده است. boot-loader کدی است که از قبل در Digispark برنامه ریزی شده است و به آن اجازه می دهد مانند یک دستگاه USB عمل کند تا بتواند توسط Arduino IDE برنامه ریزی شود. ما همچنین می خواهیم همان bootloader digispark attiny85 را در ATtiny85 فلش کنیم.
راهنمای گام به گام فلش بوت لودر بر روی ATtiny85 با استفاده از Arduino Uno و Arduino IDE در زیر آورده شده است:
مرحله 1: پیکربندی Arduino Uno به عنوان ISP
از آنجا که ATtiny85 فقط یک میکروکنترلر است ، برای برنامه نویسی به ISP (برنامه ریزی درون سیستم) نیاز دارد. بنابراین برای برنامه نویسی ATtiny85 ، ابتدا باید Arduino Uno را به عنوان ISP پیکربندی کنیم تا به عنوان یک برنامه نویس برای ATtiny85 عمل کند. برای این منظور ، Arduino Uno را به Laptop متصل کرده و Arduino IDE را باز کنید. پس از آن ، به File > Example > ArduinoISP بروید و کد Arduino ISP را بارگذاری کنید.
مرحله 2: مدار برای فلش کردن Boot-loader در ATtiny85
شماتیک کامل برای فلش کردن Boot-loader در ATtiny85 در زیر آورده شده است:
یک خازن 10 میکروگرم بین پایه RESET و GND آردوینو متصل است. اتصالات کامل در جدول زیر آورده شده است:
ATtiny85 Pin | Arduino Uno Pin |
Vcc | 5V |
GND | GND |
Pin 2 | 13 |
Pin 1 | 12 |
Pin 0 | 11 |
Reset | 10 |
اکنون Arduino Uno را به لپ تاپ متصل کرده و Arduino IDE را باز کنید. پورت صحیح COM را انتخاب کنید. در صورتی که در این مرحله مشکلی دارید، مقاله آپلود کد در آردوینو را مشاهده کنید.
پس از این ، فایلهای ATtiny85 Boot-loader را از اینجا بارگیری کنید. “Burn_AT85_bootloader.bat” را باز کنید و شماره پورت COM را برابر با شماره پورت COM آردوینو اونو قرار دهید.
اکنون پرونده های ویرایش شده “Burn_AT85_bootloader.bat” و “ATtiny85.hex” را به داخل پوشه (C:\Program Files (x86)\Arduino) منتقل کنید.
پس از آن ، بر روی “Burn_AT85_bootloader.bat” راست کلیک کرده و “Run as Admin” را انتخاب کنید. تقریباً 5 تا 6 ثانیه طول می کشد تا بوت لودر را فلش کنید. اگر همه چیز خوب پیش رفت ، باید این پیام را دریافت کنید “AVRdude done. Thank you. Press any key to continue…”
با این کار ، بوت لودر با موفقیت روی تراشه ATtiny85 نصب می شود. اکنون وقت آن است که USB را مستقیما به ATtiny85 متصل کنیم تا بتوانیم آن را برنامه ریزی کنیم.
مدار پروگرامر USB میکروکنترلر ATtiny
در مدار زیر ما یک USB نری را به میکروکنترلر ATtine85 متصل میکنیم.
R3 یک مقاومت پول آپ است که بین پایه های Vcc و PB3 متصل می شود. دیود های زنر (D1-D2) برای محافظت کامل از رابط USB اضافه می شوند. پس از لحیم کاری تمام اجزای سازنده برد پروگرامر ATtiny من مشابه زیر است:
نصب درایورهای Digispark
برای برنامه نویسی ATtiny85 با استفاده از USB ، باید درایورهای Digispark را بر روی لپ تاپ خود نصب کنید. اگر آنها را ندارید ، می توانید آن را با استفاده از این لینک بارگیری کنید. سپس ، فایل zip را اکسترکت کرده و بر روی برنامه “DPinst64.exe” دوبار کلیک کنید تا درایورها نصب شود.
پس از نصب موفقیت آمیز درایورها ، برد ATtiny85 خود را به لپ تاپ متصل کنید. اکنون به Device Manager بروید و دستگاه ATtiny85 در لیست “libusb-win32 devices” به عنوان “Digispark Bootloader” مشاهده می کنید. اگر نمی توانید “libusb-win32 devices” را در Device Manager پیدا کنید ، به View بروید و روی “Show hidden Devices” کلیک کنید.
تنظیم Arduino IDE برای برنامه نویسی ATtine85
برای برنامه ریزی برد ATtiny85 با Arduino IDE ، ابتدا باید برد Digispark را به Arduino IDE اضافه کنیم. برای این منظور ، به File> Preferences بروید و پیوند زیر را در Additional Boards Manager URLs اضافه کنید و “OK” را کلیک کنید.
http://digistump.com/package_digistump_index.json
پس از آن ، به Tools> Board> Board Manager بروید و ‘Digistump AVR’ را جستجو کنید و آخرین نسخه را نصب کنید.
پس از نصب آن ، اکنون می توانید برد جدیدی را در فهرست Board با عنوان ‘Digispark’ مشاهده کنید.
سپس به مسیر File> Examples> Basics رفته و Blink را باز کنید.
شماره پین موجود در آنجا را از LED_BUILTIN به 0 تغییر دهید.
اکنون به Tools -> Board برگردید و برد “Digispark (Default – 16mhz)” را انتخاب کنید. سپس بر روی دکمه آپلود در Arduino IDE کلیک کنید.
توجه: فقط وقتی که Arduino IDE پیامی را با عنوان “Plugin device now” نمایش داد، برد ATtiny85 را به رایانه وصل کنید.
پس از بارگذاری کد ، LED متصل به ATtiny85 باید شروع به چشمک زدن کند.
به این ترتیب می توانید برد برنامه نویسی ATtiny85 با Arduino IDE خود را بسازید.