نصب و راه‌اندازی بوت‌لودر (Bootloader) آردوینو

سه شنبه, 12 دی 1396 16:17
این مورد را ارزیابی کنید
(11 رای‌ها)

در این آموزش با بوت‌لودر و اینکه چرا شما نیاز دارید آن را نصب و راه‌اندازی کنید آشنا می‌شوید و همین‌طور نحوه راه‌اندازی آن را خواهید آموخت. در این پروژه از برد آردوینو استفاده شده است. در صورتی که به آردوینو علاقه‌مند هستید، می‌توانید آموزش کامل آردوینو (مبتدی و پیشرفته) را مطالعه کنید.

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

بوت‌لودر چیست؟

میکروکنترلرهای Atmel AVRs، آی‌سی‌های کوچک فوق‌العاده‌ای هستند، اما آن‌ها برای برنامه‌نویسی شدن می‌توانند کمی پیچیده باشند. شما به یک پروگرامر خاص و تعدادی فایل هگز(hex)  نیاز دارید و برنامه‌نویسی آن‌ها برای تازه‌کارها خیلی راحت نخواهد بود! آردوینو این مشکلات را ندارد. آن‌ها یک فایل هگز را روی چیپ های AVR قرار داده‌اند که به شما اجازه می‌دهد از طریق یک پورت مخصوص برد را برنامه‌ریزی کنید، این به این معنی است که تمام چیزی که شما نیاز دارید تا آردوینوی خود را برنامه‌ریزی کنید یک کابل USB است.

به‌طورکلی بوت‌لودر یک فایل هگز است که زمانی که شما برد را روشن می‌کنید اجرا می‌شود. این خیلی شبیه به BIOS است که روی کامپیوتر شما اجرا می‌شود. این فایل دو کار را انجام می‌دهد: اول، اطراف را جستجو می‌کند تا ببیند اگر کامپیوتر شما در تلاش است آن را برنامه‌ریزی کند، در این صورت، برنامه را از کامپیوتر می‌گیرد و آن را در حافظه IC ها بارگذاری می‌کند(در یک مکان مشخص؛ بنابراین، نیازی به دوباره‌نویسی بوت‌لودر نیست). به این دلیل است که زمانی که شما تلاش می‌کنید برنامه‌ای را بارگذاری کنید، IDE آردوینو چیپ را مجدداً راه‌اندازی می‌کند. این به‌طور پایه اول IC را خاموش می‌کند و دوباره روشن می‌کند، بنابراین بوت‌لودر می‌تواند دوباره شروع بکار کند. اگر کامپیوتر قرار نباشد برنامه‌ای را بارگذاری کند؛ این به چیپ می‌گوید تا برنامه‌ای را اجرا کند که قبلاً در حافظه ذخیره‌شده است. یک‌بار که این برنامه را جایگذاری و اجرا کرد، آردوینو به‌طور پیوسته برنامه را تا زمانی که برد تغذیه دارد حلقه وار انجام می‌دهد.

چرا یک بوت‌لودر نصب و راه‌اندازی کنیم؟

اگر شما دارید آردوینوی خود را می‌سازید، یا نیاز به ‌جایگزینی IC دارید، شما نیاز دارید تا بوت‌لودر را نصب و راه‌اندازی کنید. هم‌چنین شما ممکن است یک بوت‌لودر بد داشته باشید (هرچند که این خیلی نادر است) و نیاز داشته باشید تا بوت‌لودر را مجدداً نصب و راه‌اندازی کنید. هم‌چنین گاهی مواردی وجود دارد که شما برد خود را در تنظیمات عجیبی قراردادید و نصب و راه‌اندازی مجدد بوت‌لودر و برگرداندن تنظیمات کارخانه آسان‌ترین راه تعمیر آن است. ما بردهایی را دیده‌ایم که مردم پورت سری آن را خاموش کرده‌اند به این معنی که هیچ راهی برای آپلود کردن برنامه به برد وجود ندارد، درحالی‌که راه‌های ممکن دیگری برای تعمیر وجود دارد، نصب و راه‌اندازی مجدد بوت‌لودر احتمالاً سریع‌ترین و راحت‌ترین راه است. همان‌طور که قبلاً گفتم داشتن یک بوت‌لودر بد درواقع بسیار بسیار نادر است. اگر شما یک برد جدیدی داشتید که برنامه را قبول نمی‌کرد، 99.9% مواقع مشکل از بوت‌لودر نیست، اما برای 1% مواقعی که مشکل از بوت‌لودر است، این راهنما به شما کمک می‌کند تا این مشکل را برطرف کنید.

استفاده از آردوینو به‌عنوان پروگرامر

یک‌راه نصب بوت‌لودر، استفاده از پروگرامرهای اختصاصی این کار مانند استفاده از پروگرامر USBasp میکروکنترلر - ATMEL اتمل AVR - آپلودر Boot Loader آردوینو است. انتخاب دیگر این است که از آردوینو استفاده کنیم. اگر شما به IDE آردوینو بروید، مثالی شماتیکی به نام “Arduino as ISP” را خواهید دید. اگر شما این برنامه را در آردوینوی خود آپلود کنید، این به‌طور اساسی به‌عنوان یک پروگرامر AVR عمل خواهد کرد. البته، این برنامه نوشته‌شده فقط روی بردهای ATmega328 کار می‌کند، شاید یک روز این روی بردهای Leonardo یا Due هم کار کند، اما نه در حال حاضر.

متصل کردن پروگرامر

In-Circuit Serial Programming

خیلی غیرمعمول است که IC ها را قبل از اینکه به یک PCB لحیم شوند، برنامه‌ریزی کنیم. به‌جای این، اکثر میکروکنترلرها چیزی دارند به نام in-system programming (ISP) header. به‌طور خاص، بعضی از کارخانه‌های IC، مانند Atmel و Microchip، روش مخصوص ISP برای برنامه‌ریزی IC های خود دارند که این به ICSP اشاره می‌کند. بیشتر بردهای آردوینو و بردهای سازگار با آن‌ها یک هدر ICSP 2*3 پین روی آن‌ها دارند. بعضی از آن‌ها ممکن است بسته به اینکه چند IC روی PCB قرار بگیرند، بیشتر از یکی داشته باشند. این پورت درواقع سه پین SPI یعنی، (MISO, MOSI,SCK) و تغذیه، زمین و reset را نشان می‌دهد. این‌ها پین‌هایی هستند که شما برای اتصال پروگرامر به‌منظور reflash برنامه firmware روی برد خود نیاز خواهید داشت. در تصویر زیر بردآردوینو Uno نشان داده‌شده است. روی این برد، دو هدر ICSP نشان داده‌شده است که یکی برای میکروکنترلرهای ATmega16U2 و دیگری برای ATmega328 استفاده می‌شود. اگر بخواهید بوت‌لودر روی این برد را reflash کنید فقط به هدر ICSP برای ATmega328 نیاز دارید.

uno

روی بعضی از بردهای کوچک ممکن است شما این رابط را نبینید، اما پین‌ها باید جای دیگری پدیدار شوند. شما چه از SMD IC استفاده کنید و چه از DIP IC، پین‌های ISP باید در هر شکلی قابل‌دسترسی باشند.

زمانی که هر شش پین ICPS را روی برد خود پیدا کردید، زمان این است که پروگرامر خود را به برد وصل کنید. برای این منظور می‌توانید از سیم‌های سیم جامپر 40 تایی مادگی – نری استفاده کنید.

اگر شما از یک پروگرامر برای این کار استفاده می‌کنید، تنظیمات شما باید مانند چیزی شبیه به شکل زیر باشد:

bootloader

و یا اگر شما از آردوینو به‌عنوان پروگرامتان استفاده می‌کنید، باید مشابه شکل زیر عمل کنید:

bootloader

این جدول به‌وضوح کمک می‌کند که متوجه شوید هر اتصال کجا می‌رود:

bootloader

آپلود کردن برنامه - راه ساده

راه آسان برای آپلود بوت‌لودر شامل استفاده از IDE آردوینو است. IDE خود را بازکنید و بردی را که می‌خواهید برنامه‌ریزی کنید را انتخاب کنید. سپس پروگرامر را انتخاب کنید (اگر از Arduino به‌عنوان ISP استفاده می‌کنید، همچنین باید پورت COM را انتخاب کنید که Arduino به‌عنوان ISP متصل است). سپس BurnBootloader را انتخاب کنید. این برد انتخابی شمارا انتخاب می‌کند و بوت‌لودر مربوطه را در فایل board.txt جستجو می‌کند. سپس، بوت‌لودر را در پوشه bootloader پیدا می‌کند و آن را نصب می‌کند. این تنها در حالتی کار می‌کند که برد به‌درستی در IDE نصب‌شده باشد و بوت‌لودر شما هم صحیح و سالم باشد. اگر به دلایلی بخواهید از بوت‌لودری استفاده کنید که در IDE نصب نشده است، به قسمت nest بروید. بااین‌حال، احتمالاً ساده‌تر است که بوت‌لودر را از  IDE آردوینو نصب کنید.

 bootloader

آپلود کردن برنامه - راه دشوار

راه دشوار برای کسانی است که می‌خواهند از خط فرمان استفاده کنند. این روش ارجح‌تر است اگر شما نمی‌خواهید مدام IDE را آپدیت و به‌روز کنید، در غیر این صورت کاملاً غیرضروری است. دوباره شما نیاز دارید تا یک پروگرامر بگیرید و همه‌چیز را به هم متصل کنید. در این مثال ما از avrdude تحت ویندوز استفاده می‌کنیم.

در این پردازش دو قدم وجود دارد. اولین قدم شامل تنظیمات فیوز بیت‌ها است. فیوز بیت‌ها قسمتی از چیپ AVR هستند که چیز‌هایی مانند آنچه شما به‌عنوان یک کریستال اضافی و یا آنچه شما برای آشکارسازی کاهش جریان برق می‌خواهید را تعیین می‌کنند. فرمان‌هایی که در زیر لیست شده‌اند برای آردوینو uno با استفاده از ATmega328 هستند، آن‌ها ممکن است روی بردهای مشابه مانند Duemilanove نیز کار کنند، اما اطمینان حاصل کنید که شما قبل از بازی با فیوز بیت‌ها، میدانید چه می‌کنید. (توجه: این فیوزبیت ها روی یک برد 3.3V/8MHZ کار نخواهند کرد). همه‌ی فیوز بیت‌های موردنیاز در پوشه  “boards.txt”  برای بردهای مختلف فهرست شده‌اند، اما دوباره اگر شما یک فایل board.txt نصب‌شده دارید، پس از راه آسان استفاده کنید.

آردوینو به‌عنوان  ISP:

avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

پروگرامر AVR Pocket:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

قدم دوم درواقع آپلود برنامه است:

آردوینو به‌عنوان ISP:

avrdude -P comport -b 19200 -c avrisp -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

پروگرامر AVR Pocket:

avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

 

 

نظرات، پيشنهادات و انتقادات خود را براي بهتر شدن محتواي مطالب با ما در ميان بگذاريد...

 


ترجمه شده توسط تيم الکترونيک صنعت بازار | منبع: سايت learn.sparkfun.com

خواندن 24629 دفعه
پشتیبانی

عباس بطالبلو دانش‌آموخته کارشناس ارشد رشته مهندسی مکاترونیک از دانشگاه صنعتی خواجه نصیرالدین طوسی و عضو گروه رباتیک جراح آزمایشگاه ارس (ARAS) هستند. موضوع پایان نامه کارشناسی ارشد ایشان در زمینه ی «طراحی و پیاده سازی ربات ۲RT برای جراحی از دور چشم» بوده است. ایشان سابقه پیاده سازی و ساخت ربات هایی چون ربات موازی جراحی چشم، ربات سری SCARA، ربات Palletizer و … را دارند.

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (49)

  1. KAP co

سلام یک برد uno دارم که شیلد کیپد و السیدی کارکتری روش سواره و یک ماژول بلوتوث هم روشه کلا یک کیت مگنومتر بوده یبار همزمان پورت ادابتور به پاور بانک وصل بود که پورت یو اس بی هم به لبتاب وصل کردم که باعث سوختن پورت های لبتاب و پریدن برنامه روی...

سلام یک برد uno دارم که شیلد کیپد و السیدی کارکتری روش سواره و یک ماژول بلوتوث هم روشه کلا یک کیت مگنومتر بوده یبار همزمان پورت ادابتور به پاور بانک وصل بود که پورت یو اس بی هم به لبتاب وصل کردم که باعث سوختن پورت های لبتاب و پریدن برنامه روی بورد شد قبل اون همیشه به راحتی استفاده می‌کردم ولی الان فقط کاراکتر سفید نشون میده با توجه به اینکه میکرو روی برد برداشته شده از ابتدا چه راهی دارم که بتونم دوباره ازش مثل قبل استفاده کنم آیا راهی هست که بتونم ب نامشو برگردونم؟

ادامه مطلب
 
  1. خودم    KAP co

لطفا راهنمایی کنید گیرم

 
  1. محمد مهدی توکلی

سلام منatmega8 با اردینو پروگرام کردم ولی وقتی تو مدار اصلی میخاسم استفاده کنن پینRx را حتما باید به پینRx اردینو وصل کنم میشه کمک کنید

 
  1. بهرام

سلام مهندس .بهرام هستم.بوت لودراتمگا8.برای آی سی اتمگا16هم میشه نصب کرد یا اینکه بوت لودرهای آی سی هاباهم فرق میکنند.اگر فرق میکنند بوت لودر آی سی اتمگا16ازکجا دانلود کنم..سپاس

 
  1. ارین امرایی

سلام.من یک اردوینوی UNO-rev3 خریداری کردم اما بوت لودر مثل اینکه درست کار نمیکنه.تصمیم گرفتم خودم یکی بسازم.سوالم این بود که ایا میتونم دوباره بوتلودر رو روی ATmega328p که روی اردوینوی من هست اپلود کنم تا اگه مشکلی داره برطرف بشه?اصلا اگه دوباره...

سلام.من یک اردوینوی UNO-rev3 خریداری کردم اما بوت لودر مثل اینکه درست کار نمیکنه.تصمیم گرفتم خودم یکی بسازم.سوالم این بود که ایا میتونم دوباره بوتلودر رو روی ATmega328p که روی اردوینوی من هست اپلود کنم تا اگه مشکلی داره برطرف بشه?اصلا اگه دوباره بوتلودر رو لود کنم,بوتلودر قبلی پاک میشه?

ادامه مطلب
 
  1. ارین امرایی    ارین امرایی

(در واقع میخوام با میکروکنترلری که در حال حاضر روی اردوینو ام هست اردوینو بسازم)

 
  1. پشتیبانی    ارین امرایی

سلام دوست عزیز
بله، در این آموزشی که توضیح داده شده بوت لودر قبلی پاک میشه و بوت لودر جدید و سالم جایگزین میشود منتهی برای این کار بایستی یا یک آردوینو سالم داشته باشید و یا از یک پروگرامر مثل AVR Pocket programmer (برد قرمز رنگ در شکل های آموزش)...

سلام دوست عزیز
بله، در این آموزشی که توضیح داده شده بوت لودر قبلی پاک میشه و بوت لودر جدید و سالم جایگزین میشود منتهی برای این کار بایستی یا یک آردوینو سالم داشته باشید و یا از یک پروگرامر مثل AVR Pocket programmer (برد قرمز رنگ در شکل های آموزش) استفاده کنید.

ادامه مطلب
 
  1. Gholamreza

با سلام
من یک بردمگا2560 -R3 ایتالیایی گرفتم .هرکاری میکنم پورت شناسایی نمیشه لطفا راهنمایی کنید.

 
  1. پشتیبانی    Gholamreza

سلام دوست عزیز
اگروقتی آردوینو را متصل میکنید و در device manager نمیتونید port مربوط به آردوینو خودتون رو ببینید به این معنا هست که درایور پروگرامر مربوط به آردوینو شما توسط کامپیوتر شناخته نشده و بایستی درایورهای مخصوص USB را آپدیت کنید.
معمولا...

سلام دوست عزیز
اگروقتی آردوینو را متصل میکنید و در device manager نمیتونید port مربوط به آردوینو خودتون رو ببینید به این معنا هست که درایور پروگرامر مربوط به آردوینو شما توسط کامپیوتر شناخته نشده و بایستی درایورهای مخصوص USB را آپدیت کنید.
معمولا با نصب درایور CH340 مشکل اکثر بردهای آردوینو حل میشود. لینک درایور:
https://www.dropbox.com/s/oisjqb8x7t676aq/CH341SER.ZIP?dl=0

ادامه مطلب
 
  1. ali

سلام و وقت بخیر
ی برد اردوینو uno smd دارم ک وقتی میزنم ب کامپوتر تراشه smd atmega32 خیلی داغ میکنه
مشکل از چی میتونه باشه؟
خریدمش و از قبل همچین مشکلی داشته

 
  1. پشتیبانی    ali

سلام وقت بخیر
داغ شدن تا یک مقدار طبیعی هست ام برای اطمینان با کابل دیگر و در پورت های دیگر نیز امتحان کنید. چنانچه همچنان داغ می کرد، در همان حالت استفاده کنید.
موفق باشید.

 
  1. امید

سلام من یک usbasp و اردوینو مگا 2560 دارم که بوت لودر 16u2اردینو مگا خراب شده و به عنوان کیبورد شناسایی می شود

چطور میتونم درستش کنم که به عنوان اردوینو مگا 2560 شناخته بشه؟

 
  1. پشتیبانی    امید

سلام امید عزیز
احتمالا با آپدیت کردنش مشکل حل بشه. می تونید از لینک زیر کمک بگیرید
https://www.arduino.cc/en/Hacking/DFUProgramming8U2
موفق باشید

 
  1. صابر

سلام وقت بخیر من یک آبرد اردوینو uno r3 جدیدا گرفتم
پروژه رو بستم تموم کردم تو ide کد رو که کامپایل کردم نشد ینی کامپایل نمیشه فقط چراغ on روشن میشه چراغ 13 هم روشن نمیشه بنظرتون چرا؟؟!!

 
  1. پشتیبانی    صابر

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

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

ادامه مطلب
 
  1. کرمی

سلام،خسته نباشید.من یه اردینو دارم که برنامه هم ریختم روش و داره با برنامه قبلی کار میکنه ولی برای اینکه برنامه رو تغییر بدم و بریزم دیگه ارور skech 500 میده.به نظرتون مشکل چیه؟من کابل و عوض کرم،ide رو دوباره نصب کردم،خلاصه هر چی گفته بودن من...

سلام،خسته نباشید.من یه اردینو دارم که برنامه هم ریختم روش و داره با برنامه قبلی کار میکنه ولی برای اینکه برنامه رو تغییر بدم و بریزم دیگه ارور skech 500 میده.به نظرتون مشکل چیه؟من کابل و عوض کرم،ide رو دوباره نصب کردم،خلاصه هر چی گفته بودن من انجام دادم ولی نمیشه!!

ادامه مطلب
 
  1. پشتیبانی    کرمی

سلام دوست عزیز
اروری که گفتید معمولا با تعویض کابل یا سیستم مشخص میشه که درست میشه یا خیر. در غیر این صورت احتمالا میکروی روی بردتون دچار مشکل شده که می تونید با تغییر بوت لودر بررسی کنید درست میشه یا خیر.
موفق باشید

 
  1. مجتبی

سلام ممنون میشم راهنماییم کنید
من یک برد uno آردونیو دارم روش شیلدv3 با سه تا درایوa4988قرمز نصب کردم همه رو هم تازه گرفتم با سه تا استپ موتور کوچک.
و اداپتور ۱۲ ولت.نصب میکنم و کابل میزنم چراغ ها روشن میشه و حتی سیستم اردینو میشناسه.و در نرم...

سلام ممنون میشم راهنماییم کنید
من یک برد uno آردونیو دارم روش شیلدv3 با سه تا درایوa4988قرمز نصب کردم همه رو هم تازه گرفتم با سه تا استپ موتور کوچک.
و اداپتور ۱۲ ولت.نصب میکنم و کابل میزنم چراغ ها روشن میشه و حتی سیستم اردینو میشناسه.و در نرم افزار سی ان سی هم فعال میشه.فقط با حرکت دادن x.y.z موتور ها میلرزه و با هم کار نمیکنند.و عمل کردشون درست نمیشه.چیکار باید بکنم.کد دستوری داره،مشکل از سیم های استپ موتور؟یا...

ادامه مطلب
 
  1. پشتیبانی    مجتبی

سلام دوست عزیز
برای استفاده از شیلد ورژن 3 باید برد آردوینو شما برنامه نویسی بشه و از فریم ویرهایی همچون GRBL استفاده بشه. اگر این قسمت رو انجام دادید باید دقت کنید با پتانسیومتر قرار گرفته روی درایورها جریان اونها متناسب با جریان موتورهاتون...

سلام دوست عزیز
برای استفاده از شیلد ورژن 3 باید برد آردوینو شما برنامه نویسی بشه و از فریم ویرهایی همچون GRBL استفاده بشه. اگر این قسمت رو انجام دادید باید دقت کنید با پتانسیومتر قرار گرفته روی درایورها جریان اونها متناسب با جریان موتورهاتون محدود شده باشه. مابقی کار بستگی به تنظیمات و برنامه نویسی شما و تغییرات لحاظ شده در GRBL هست. همچنین توجه کنید که منبع تغذیه شما هم باید توانایی جریان دهی به تمامی موتورها تون رو داشته باشه.
موفق باشید

ادامه مطلب
 
هیچ نظری در اینجا وجود ندارد
بارگذاری بیشتر ...

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید

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

ما را دنبال کنید:

Copyright © 2017-2018 | Sanatbazar.com