روش تبدیل میکروکنترلر AVR به آردوینو
میکروکنترلرهای AVR به دلیل راه اندازی راحت و عدم نیاز به دانش بالا برای شروع کار با آن، در بین کاربران از محبوبیت خاصی برخوردار است. شاید تنها ایرادی که میکروکنترلرهای این خانواده داشته باشد نیاز به پروگرامر خارجی و تعداد پین های زیاد برای پروگرام کردن است. با ورود بردهای اردوینو، به دلیل عدم نیاز به پروگرامر خارجی و راحتی استفاده و پروگرام مجدد توانست به سرعت جای خود را دربین کاربران باز کند.
برای پروگرام کردن تقریبا تمام میکروکنترلرهای avr از پروگرامر ISP که حاوی 6 پین است، استفاده می شود. ISP استانداردی برای پروگرام کردن میکروکنترلرهای AVR هست. این پین ها عبارتند از:
Pins in Arduino UNO | Micro Pins ISP | Programmer Pins | NUMBER |
PIN12 | MISO | MISO | 1 |
VCC | VCC | VCC 5V | 2 |
PIN 13 | SCK | SCK | 3 |
PIN 11 | MOSI | MOSI | 4 |
RES | RESET | RESET | 5 |
GND | GND | GND | 6 |
اما سوال اینجاست که چگونه بردهای آردینو تنها توسط 2 پین می توانند پروگرام شوند، اینجاست که مفهوم بوت لودر برای آردینو مشخص خواهد شد. برنامه ای که قرار است روی میکرو پروگرام شود ابتدا از طریق پورت سریال و توسط 2 پین RX و TX توسط بوت لودر دریافت شده و روی حافظه فلش ذخیره خواهد شد. در واقع در آردینو مبدل های USB به Serial این کار را بر عهده دارند. در آردینو UNO R3 یک میکرو مجزا ATMEGA16U2 انجام این عملیات را عهده دار میشود، و در برخی آردینوهایی که اغلب در چین تولید می شود برای کاهش هزینه از CH340 برای این کار استفاده می شود. به این صورت که پس دریافت برنامه از USB ، اطلاعات را به سریال تبدیل کرده و به میکرو انتقال می دهد.
وظایف بوت لودر آردینو چیست؟
برنامه ی بوت لودر آردینو دو کار روی میکروکنترلر انجام میدهد. در برنامه Arduino این آیتم از منوی Tools و گزینه Burn Bootloader قابل دسترسی است.
- پروگرام کردن برنامه بوت لودر در میکروکنترلر
- تنظیم فیوزبیت های مخصوص آردینو روی میکروکنترلر
پروگرام کردن برنامه بوت لودر در میکروکنترلر به سادگی انجام خواهد پذیرفت؛ اما برای تنظیم فیوزبیت های مخصوص آردینو بر روی میکروکنترلر بایستی نکاتی را که در زیر به آنها اشاره شده است در نظر گرفت:
- فرکانس کای تمامی آردینو های UNO 16 مگا هرتز خارجی است، آردینو پرو مینی بعضا در فرکانس های کاری 8 و 16 مگا هرتز خارجی کار می کنند. مقدار فیوزبیت کلاک پیش فرض میکروکنترلر 1 مگا هرتز داخلی است که به نسبت تنظیمات مورد نیاز تغییر خواهد نمود.
- فیوزبیت دیگری وجود دارد که برای تبدیل میکروکنترلر AVR به Arduino بایستی تنظیم شود،در این فیوزبیت برای میکرو و پروگرامر مشخص خواهد شد که عملیات رایت برنامه از کیلو بایت چندم(معمولا کیوبایت سوم) به بعد انجام دهد تا محتویات بوت لودر که در کیلوبایت اول قرار دارند، پاک نشوند.
نحوه ی پروگرام کردن بوت لودر روی میکروکنترلر توسط نرم افزار آردینو
به 3 طریق می توان بوت لودر را بروی میکرکنترلر پروگرام نمود. که هر قسمت توضیح داده خواهد شد.
- از طریق تبدیل آردوینو به پروگرامر usb asp
- از طریق پروگرامر ISP
- از طریق سوکت ISCP1 در آردوینو uno R3
تبدیل آردوینو به پروگرامر ISP
در این روش ابتدا برد آردینو به یک پروگرامر تبدیل خواهد شد.
- ابتدا برنامه آردینو را باز نمایید:
- سپس از منوی File گزینه Examples را انتخاب نموده و از آنجا برنامه ی شماره 11 (ArduinoISP) را کلیک نمایید.
- برنامه را بر روی برد آپلود نمایید.
- از منوی Tools از قسمت Programmer گزینه Arduino as ISP را انتخاب نمایید سپس گزینه Burn Bootloader رو بزنید.
شماتیک اتصالی پایه های برد آردینو به میکروکنترلر در شکل زیر آورده شده است. توجه شود که میکروکنترلر به کریستال 16 مگا هرتز و هر پایه از آن به خازن های 22 پیکو فاراد متصل شود.
پروگرام کردن بوت لودر از طریق پروگرامر USB ASP
در این روش هم مشابه روش قبلی مراحل انجام خواهد پذیرفت. منتهی در این روش به جای استفاده از برد آردینو از یک پروگرامر خارجی استفاده خواهد شد.
- ابتدا میکروکنترلر را بر روی زیپ سوکت قرار دهید.
- از منوی Tools و از گزینه Programmer، آیتم USB ASP انتخاب شود.
- سپس گزینه Burn Bootloader رو بزنید.
موضوع اصلی در انجمن: https://www.eca.ir/forums/thread71735.html
سلام ببخشید من از روش اول سعی کردم بوت لودر آردوینو رو روی
Atmega8 A-PU بریزم
ولی هر جوری امتحان کردم خطای singnotur میده
یعنی فکر کنم چیپ رو نمیشناسه
میتونید کمک کنید درستش کنم
اینم بگم که با یه Attiny 2313 امتحان کردم کار کرد
که البته باز تبدیل USB to TTL که داشتم رو ویندوز نمیشناخت ولی با همون Arduino as ISP پروگرام کردن کار کرد.
با سلام در انجمن آردوینو ECA مطرح کنید