صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 10 از 19
Like Tree6 لایک

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

  1. #1
    Member
    تاریخ عضویت
    Jan 2016
    محل سکونت
    ایران
    نوشته ها
    85

    تبدیل AVR به Arduino

    سلام خدمت دوستان گرامی

    من یه میکرو at328p دارم که میخوام کد آردوینو رو روش آپلود کنم. توی اینترنت سرچ کردم و تو همین انجمن هم دنبالش گشتم ولی یه سوال توی ذهنم مونده.
    اینطور که من مطالب رو خوندم باید میکرو رو به پین های ISP آردوینو UNO وصل کرد یا یه مبدل USB به سریال ISP استفاده کرد.

    حالا سوال من اینه : وقتی توی برنامه ی آردوینو ، برد خودمون رو انتخاب میکنیم و گزینه ی Upload Bootloder رو میزنیم ، آیا فقط بوت لودر آردینو توی میکروی ما ریخته میشه یا اینکه به همراهش فیوز بیت های مخصوص آردوینو هم به صورت اتوماتیک تنظیم میشه؟

    ممنون میشم از دوستان اگز مرا از این ابهام و گمراهی نجات دهند.

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    ببین بوت لودری که توی atmega328 شما ریخته میشه میاد بعضی از فیوز بیت ها رو متناسب با پلتفرم آردوینو دستخوش تغییر می کنه .
    لایک کردن

  3. #3
    Member
    تاریخ عضویت
    Jan 2016
    محل سکونت
    ایران
    نوشته ها
    85
    آقا آردوینو پرو من میکروش سوخت و من عوضش کردم میکروش رو حالا هر کاری میکنم که بوت لودر رو روش بریزم ارور میده
    از طریق پورت isp آردوینو این کار رو کردم. در ضمن نمیدونم گزینه ی پروگرامر رو توی آردوینو چی بزارم.
    اگه میشه تمام گزینه های واسه پروگرامر رو یه توضیح کوچیک هم بدین.

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط cjmj نمایش پست ها
    آقا آردوینو پرو من میکروش سوخت و من عوضش کردم میکروش رو حالا هر کاری میکنم که بوت لودر رو روش بریزم ارور میده
    از طریق پورت isp آردوینو این کار رو کردم. در ضمن نمیدونم گزینه ی پروگرامر رو توی آردوینو چی بزارم.
    اگه میشه تمام گزینه های واسه پروگرامر رو یه توضیح کوچیک هم بدین.

    به این بستگی داره که پروگرامری که استفاده می کنی چیه

    توی لیستش اسم یه سری هست
    مثلا usbting
    usbtiny و .......

    تو بر حسب این که نوع پروگرامرت چیه اینوانتخاب می کنی

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

  6. #6
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط cjmj نمایش پست ها
    خوب من دارم با آردوینو ینو پروگرام رو انجام میدم ولی نمیدونم کدوم گزینه رو باید انتخاب کنم.

    این آموزش رو مطالعه کن
    http://www.arduino-hausautomation.de...oader-flashen/

  7. #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

  8. #8
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط cjmj نمایش پست ها
    بلاخره تونستم چند روش برای پروگرام کردن بوت لودر آردوینو روی میکرو های avr پیدا کنم که از همه ی این روش ها به جز یکی جواب گرفتم که برای دوستان مراحل کار رو میگم تا بقیه هم بهره ببرند.


    اینم یه عکس از پروگرامر خودم در حال ریختن بوت لودر روی 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
    مرسی از توضیحات کاملی که دادید
    امیدوارم با حضور افرادی مثل شما این فروم رونق بیشتری بگیره

    در مورد اون قسمت سوم که موفق نشدید این قسمت ساده ترین حالتشه

    شما یه پروگرامر مثل usbtiny یا usbasp که داشته باشید با رعایت پین به راحتی می تونید آپلود کنید
    من تو این آموزش دقیقا با پین هدرهای خود آردوینو این کار رو انجام دادم
    http://blog.arduino.ir/?p=363
    مطالعه کنید اگر مشکلی داشتید بازم بهم بگید
    ویرایش توسط magmagmary : 05-29-2016 در ساعت 05:23 AM
    لایک کردن

  9. #9
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    .....
    مطالعه کنید اگر مشکلی داشتید بازم بهم بگید
    سلام مهندس. خسته نباشی.
    من از روندی که اینجا گفته شده بود برای قابل پروگرم کردن مگا32 با نرم افزار Arduino IDE استفاده کردم : ATmega DIP40 in Arduino IDE 1.6.4 by Silvius
    درواقع این میاد میگه نیازی نیس بوت لودر و این داستانا،
    شما بیاین با یه پروگرمر usbasp و البته میکروی 40 پایه ای که هرچیزی میتونه باشه (من Mega32A گذاشتم) ،
    برو از قسمت Board Maneger اون بردهای دلخواهت رو دانلود کن و دیگه ازین به بعد شما میتونی بدون نیاز به Burn کردن بوت لودر ، تو محیط Arduino برای Mega32 برنامه نویسی.
    حالا من نمیدونم کجارو اشتباه رفتم یا چی رو اشتباه زدم که وقتی میخوام پروگرم کنم این خطا رو میگیرم:
    کد:
    Arduino: 1.6.10 (Windows 10), Board: "ATmega32-16MHz"
    
    Warning: Board arduino:avr:?menu doesn't define a 'build.board' preference. Auto-set to: AVR_?MENU
    <command-line>:0:21: warning: missing whitespace after the macro name [enabled by default]
    
    cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.
    
    exit status 1
    Error compiling for board ATmega32-16MHz.
    در صورتیکه تموم اتصالات روی برد درسته و پروگرمر هم فیوزبیت ها رو روی مقادیر زیر ست کرده :

    hfuse:0xD6
    lfuse:0xFF

    شما نظری ندارین؟
    ینی ممکنه وقتی داشتم فایل Board.txt رو ادیت میزدم یچیزی رو کم و زیاد پاک کردم؟ :/
    اگه مشکل ازین باشه، ممنون میشم فایل خودت رو برام بفرستی که جایگزین کنم و بررسی کنم ببینم درست میشه یا نه
    ویرایش توسط ratin : 07-30-2016 در ساعت 08:56 PM

  10. #10
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط ratin نمایش پست ها
    سلام مهندس. خسته نباشی.
    من از روندی که اینجا گفته شده بود برای قابل پروگرم کردن مگا32 با نرم افزار Arduino IDE استفاده کردم : ATmega DIP40 in Arduino IDE 1.6.4 by Silvius
    درواقع این میاد میگه نیازی نیس بوت لودر و این داستانا،
    شما بیاین با یه پروگرمر usbasp و البته میکروی 40 پایه ای که هرچیزی میتونه باشه (من Mega32A گذاشتم) ،
    برو از قسمت Board Maneger اون بردهای دلخواهت رو دانلود کن و دیگه ازین به بعد شما میتونی بدون نیاز به Burn کردن بوت لودر ، تو محیط Arduino برای Mega32 برنامه نویسی.
    حالا من نمیدونم کجارو اشتباه رفتم یا چی رو اشتباه زدم که وقتی میخوام پروگرم کنم این خطا رو میگیرم:
    کد:
    Arduino: 1.6.10 (Windows 10), Board: "ATmega32-16MHz"
    
    Warning: Board arduino:avr:?menu doesn't define a 'build.board' preference. Auto-set to: AVR_?MENU
    <command-line>:0:21: warning: missing whitespace after the macro name [enabled by default]
    
    cc1.exe: error: -fno-fat-lto-objects are supported only with linker plugin.
    
    exit status 1
    Error compiling for board ATmega32-16MHz.
    در صورتیکه تموم اتصالات روی برد درسته و پروگرمر هم فیوزبیت ها رو روی مقادیر زیر ست کرده :

    hfuse:0xD6
    lfuse:0xFF

    شما نظری ندارین؟
    ینی ممکنه وقتی داشتم فایل Board.txt رو ادیت میزدم یچیزی رو کم و زیاد پاک کردم؟ :/
    اگه مشکل ازین باشه، ممنون میشم فایل خودت رو برام بفرستی که جایگزین کنم و بررسی کنم ببینم درست میشه یا نه

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

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

صفحه 1 از 2 12 آخرینآخرین

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

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

SEO by vBSEO