نمایش نتایج: از 1 به 10 از 19
Like Tree6 لایک

موضوع: تبدیل AVR به Arduino

Threaded View

  1. #7
    Member
    تاریخ عضویت
    Jan 2016
    محل سکونت
    ایران
    نوشته ها
    85
    بلاخره تونستم چند روش برای پروگرام کردن بوت لودر آردوینو روی میکرو های avr پیدا کنم که از همه ی این روش ها به جز یکی جواب گرفتم که برای دوستان مراحل کار رو میگم تا بقیه هم بهره ببرند.

    اپتدا یه سری چیز ها در مورد بوت لودر هم میگم که کاربردش چیه و محتویاتش چیه.

    بوت لودر آردوینو یه جور برنامه ست(نرم افزار) که بودنش رو میکرو باعث میشه میکرو ی ما تبدیل به یک آردوینو بشه. برای پروگرام کردن تقریبا تمام میکروهای avr از پروگرامر ISP استفاده میشه کرد ISP یه جور استاندارد برای پروگرام کردن میکرو های AVR هست. در این نوع پروگرامر ها یک پورت وجود داره به نام ISP که این پورت حاوی 6 عدد پین هست که به پایه های میکرو وصل میشه این پین ها عبارتند از:

    programmer pins micro pins ISP Pins in arduino uno

    1. MISO -----------------------------> MISO -----------------------> PIN 12
    2. VCC 5V -----------------------------> VCC -----------------------> VCC
    3. SCK -----------------------------> SCK -----------------------> PIN 13
    4. MOSI -----------------------------> MOSI -----------------------> PIN 11
    5. RESET ----------------------------> RESET-----------------------> RES
    6. GND ----------------------------> GND ------------------------>GND

    خوب گفتیم توسط این 6 تا پین میکرو های AVR پروگرام میشن اما یه سوال اینجا پیش میاد!!!! چه جوریه که آردوینو ها توسط دو تا پین میتونند پروگرام بشن؟؟؟
    خوب پس الان میشه فهمید که کار بوت لودر آردوینو دقیقا چیه. بوت لودر آردوینو میاد برنامه ای که میخواد پروگرام بشه رو از طریق دو تا پین TX و RX (پورت سریال) دریافت میکنه و برنامه رو روی حافظه ی فلش ذخیره میکنه و این کار رو آسون تر میکنه و این امکان رو فراهم میسازه که با کمترین هزینه بشه از طریق پورت USB به میکرومون برنامه بدیم. در واقع در آردوینو UNO یه چیپ به نام CH340 هست که اطلاعات رو از USB گرفته و به اطلاعات سریال تبدیل کرده و برنامه رو به میکرو میده. ولی در آردوینو UNO R3 این کار بر عهده ی یه میکروی atmega 8 است که کار تبدیل رو انجام میده.

    حالا محتویات بوت لودر چیه؟؟
    وقتی توی برنامه ی آردوینو از منوی Tools و بعد گزینه ی Burn Bootloader رو انتخاب میکنیم ،برنامه ی آردوینو دو کار روی میکرو انجام میده.
    1.ریختن برنامه ی بوت لودر در میکرو
    2.تنظیم فیوز بیت های مخصوص آردوینو روی میکرو

    گزینه ی اول که ساده ست اما گزینه ی دوم: تمام آردوینو uno ها با فرکانس 16 مگا هرتز خارجی کار میکنند و آردوینو پرو مینی ها هم بعضی با 8 مگاهرتز خارجی و بعضی با 16 مگاهرتز خارجی کار میکنند که مقدار فیوز بیت پیش فرض میکروی AVR روی فرکانس 8مگاهرتز داخلی هست که باید تنظیماتش برای آردوینو شدن تغییر کنه.
    یک فیوز بیت هم هست که این اختیار رو برای ما قرار میده که وقتی خواستیم عملیات پروگرام رو انجام بدیم ، برنامه رو از همون Bit 0 یا بهتر بگم از همون اول حافظه ی فلش رایت نکنه و چند کیلوبایت از اول حافظه رو خالی بزاره و از کیلو بایت سوم رایت کنه. این کار به خاطر اینه که بوت لودر در قسمت اول میکرو قرار داره و اگه موقع پروگرام شدن پاک بشه بعدش کلی دردسر خواهیم داشت.
    و یه سری فیوز بیت های دیگه هم تنظیم میشه که دیگه اگه بگم طولانی میشه.

    خوب حالا از اینا بگذریم و برسیم به اصل کار و ببینیم که چه جوری بوت لودر رو روی میکرو بریزیم.

    راه های ریختن بوت لودر توسط نرم افزار آردوینو روی میکرو

    1. از طریق تبدیل آردوینو به پروگرامر usb asp
    2. از طریق پروگرامر ISP
    3. از طریق سوکت ISCP1 در آردوینو uno R3



    1.از طریق تبدیل آردوینو به پروگرامر ISP

    در این روش شما اپتدا باید آردوینوی خودتون رو به یک پروگرامر تبدیل کنید. حالا چه جوری؟؟؟؟؟؟؟؟؟؟
    هیچ کاری نداره تنها کاری که باید انجام داد اینه که باید برنامه ی آردوینو رو باز کرد و رفت توی منوی File و بعد گزینه ی Examples و بعد روی برنامه ی شماره ی 11 که نوشته ArduinoISP کلیک کنید بعدش برنامه رو روی آردوینو آپلود کنید و بعدش توی منوی Tools در قسمت Programmer گزینه ی Arduino as ISP رو انتخاب کنید و بعد از بستن مدار گزینه ی Burn Bootloader رو بزنید.

    طبق شکل زیر پایه های آردوینو رو به میکرو تون وصل کنید. در ضمن باید به میکرو یه کریستال 16مگاهرتز وصل کنید و هر پایه ی کریستال رو با منفی مدار توسط یک خازن 22پیکو فاراد سری کنید.


    http://s6.picofile.com/file/8253345334/bootloader.jpg

    2. از طریق پروگرامر usb asp
    این روش هم مثل روش بالاست مدارش هم به همین شکل بسته میشه تنها فرقش اینه که شما اینجا به وسیله ی پروگرامر برنامه ت رو پروگرام میکنی ولی در قسمت اول ، آردوینو رو تبدیل به یه پروگرامر میکنی و بعد عملیات پروگرام رو انجام میدی.
    البته یه سری پروگرامر های usbasp وجود داره که دارای سوکت ZIF میباشد که شما میکروتون رو بدون نیاز به هیچ مداری روی سوکت قرار میدین و گزینه ی Burn Bootloader رو فشار میدین و پروگرام انجام میشه که خود منم روی میکرو هام از همین راه بوت لودر رو ریختم.
    راستی یادم رفت یه چیزی بگم: قبل از پروگرام کردن به این روش از منوی Tools و گزینه ی Programmer ، گزینه ی usb asp قرار بدین تا برنامه ی آردوینو از طریق این پروگرامر میکرو رو برنامه ریزی کنه.

    اینم یه عکس از پروگرامر خودم در حال ریختن بوت لودر روی atmega328
    http://s7.picofile.com/file/82533462...528_174656.jpg

    3. از طریق سوکت ISCP1 در آردوینو uno R3
    حقیقتش من هر کاری کردم تنونستم از این راه روی میکرو بوت لودر رو نصب کنم اما از اساتیدی که از این راه جواب گرفتند خواهش میکنم که روشش رو برای ماهم توضیح بدن.
    اینم یه عکس از این سوکت:

    http://s7.picofile.com/file/82533476...528_175601.jpg
    اینم یه عکس از ترتیب پایه های
    http://s6.picofile.com/file/82533491...528_175637.jpg
    ویرایش توسط cjmj : 05-28-2016 در ساعت 01:57 PM

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO