نصب بوت لودر آردوینو (آموزش ریختن و آپلود Bootloader)

محتویات
همه ما می دانیم که IC Atmega328 در برد آردوینو UNO استفاده می شود. این آی سی مغز برد آردوینو است. در واقع، طراحان آردوینو میخواستند یک برد کاربردی مفید برای علاقمندان بسازند. آن ها این برد را طوری طراحی کردند که هر کسی میتواند به میکروکنترلر دسترسی داشته باشد و برای خودش برد آردوینو بسازد. امروزه هرکس میتواند میکروکنترلری را تهیه کند و بوت لودر آردوینو را روی آن نصب کنید. برد آردوینو برای پروژه های مختلف صنعتی و سرگرمی مناسب است. ممکن است برای کاهش هزینه بخواهید از میکروکنترلر به جای برد کامل استفاده کنید اما میخواهید از برنامه نویسی آردوینو برای کنترل میکروکنترلر خود استفاده کنید. در این حالت شما باید بوت لودر آردوینو را روی میکروکنترلر خود نصب کنید تا بتوانید به راحتی این کار را انجام دهید.
در این آموزش خواهیم دید که چگونه از میکروکنترلر ها مانند برد آردوینو استفاده کنیم. برای استفاده از آی سی Atmega328 به جای آردوینو، ابتدا باید بوت لودر آردوینو را در آن رایت کنیم و سپس با استفاده از FTDI یا با استفاده از برد آردوینو آن را برنامه ریزی می کنیم. همچنین با استفاده از مداری که در زیر توضیح داده شده است، می توانید برد آردوینو خود را بسازید.
اگر میکروکنترلر برد شما آسیب دیده است یا بوت لودر آن به اصطلاح پریده است میتوانید از این آموزش برای رفع مشکل استفاده کنید.
مدار نصب بوت لودر آردوینو
نمودار مدار برای ساخت آردوینو در Breadboard در زیر آورده شده است:
قطعات مورد نیاز
- آی سی Atmega 328
- برد بورد LM7805
- کریستال 16 مگاهرتز
- 2* خازن سرامیکی 22pF
- 2* خازن 10uF
- مقاومت 10 کیلو اهم
- مقاومت 1 کیلو اهم
- سیم های جامپر
به صورت اختیاری، می توانید از تنظیم کننده ولتاژ 3.3 ولت LM1117-3.3 ولت نیز استفاده کنید تا پایه 3.3 ولتی را نیز در مدار خود قرار دهید.
قسمت های مختلف مدار
قسمت منبع تغذیه:
- تنظیم کننده ولتاژ: آی سی Atmega 328 با منبع تغذیه 5 ولت کار می کند. بنابراین در اینجا، ما از LM7805 برای دریافت خروجی 5 ولت استفاده می کنیم، می تواند تا 30 ولت را به عنوان ورودی دریافت کند و 5 ولت را خروجی بدهد. اگر منبع 5 ولت جداگانه دارید، می توانید این رگولاتور را حذف کنید.
- خازن ها: خازن 10uF در قسمت ورودی و خروجی 7805 برای بای پس
- LED: این ال ای دی به شما نشان می دهد که خروجی 5 ولت شما متصل است.
بخش میکروکنترلر:
- Atmega328: این قطعه اصلی ما در برد بورد است.
- نوسانگر کریستال: یک کریستال خارجی 16 مگاهرتز بین پایه 9 و پایه 10 میکروکنترلر ATmega328 متصل است. این کریستال برای دادن ساعت به میکروکنترلر برای انجام سریعتر وظایف استفاده می شود.
- دکمه فشاری: برای تنظیم مجدد میکروکنترلر یک دکمه فشاری بین پایه 1 و GND متصل می شود. برای پول آپ شدن با استفاده از یک مقاومت 10k به 5 ولت وصل می شود.
- LED: یک LED به پین دیجیتال 13 متصل می شود.
این آموزش کامل به سه قسمت تقسیم شده است تا بتوانید راخت تر آردوینو خود را روی برد بورد اجرا کنید:
- ساخت مدار آردوینو بر روی برد بورد
- رایت بوت لودر در آی سی Atmega328
- نحوه برنامه نویسی میکروکنترلر با آردوینو
حالا هر قسمت را یکی یکی توضیح می دهیم.
1. ساخت مدار آردوینو روی برد بورد
مرحله 1: قسمت منبع تغذیه را همانطور که در تصویر مدار نشان داده شده است وصل کنید و آن را با اتصال منبع تغذیه خارجی به LM7805 تست کنید. به این شکل خواهد بود.
مرحله 2: اکنون قسمت میکروکنترلر را همانطور که در تصویر مدار نشان داده شده است وصل کنید. اتصالات را با دقت انجام دهید.
مرحله 3: اکنون منبع تغذیه و قسمت میکروکنترلر را با استفاده از جامپرها وصل کنید. مدار نهایی شما چیزی شبیه به این خواهد بود.
در نهایت این آردوینو ما روی برد بورد است. شما می توانید همین مدار را روی PCB با استفاده از ابزارهای ساده ای مانند EasyEDA، آلتیوم دیزاینر و … پیاده سازی کنید. حال باید بوت لودر را روی آی سی جدید Atmega 328 آپلود کنیم تا بتوانیم آی سی را برنامه نویسی کنیم.
2. ریختن بوت لودر در میکروکنترلر
بوت لودر چیست و چرا به آن نیاز داریم؟
بوت لودر قطعه کوچکی از کد اجرایی است که به طور دائم در حافظه میکروکنترلر ذخیره می شود. این قطعه کد حافظه کمتر از 1 کیلوبایت را اشغال می کند. بوت لودر به آی سی اجازه می دهد تا کد را از کامپیوتر بپذیرد و آن را در حافظه میکروکنترلر قرار دهد.
به طور سنتی، تمام میکروکنترلرهای Atmel با کمک پروگرامر برنامه نویسی می شوند که برخی اتصالات دارند. بوت لودرها پیچیدگی را کاهش می دهند و به ما اجازه می دهند تا با روشی آسان و کارآمد برنامه نویسی میکروکنترلر را انجام دهیم. این بدان معناست که شما می توانید میکروکنترلر را فقط با اتصال یک کابل USB برنامه نویسی کنید و دیگر نیازی به پروگرامر ندارید.
وقتی یک Atmega 328 جدید میخرید، هیچ بوت لودری در آن وجود ندارد. بنابراین برای برنامه نویسی Atmega328 خود با استفاده از Arduino IDE، ابتدا باید بوت لودر را آپلود کنید.
برای آپلود بوت لودر دو روش داریم:
- با استفاده از پروگرامر USBasp
- با استفاده از برد آردوینو UNO
روش دوم در مقایسه با روش اول ساده تر است. زیرا به اتصالات کمتری نیاز دارد و البته آخرین نسخه Arduino IDE از پروگرامر های USBasp پشتیبانی نمی کند.
بنابراین، در این آموزش ما بوت لودر را با استفاده از برد آردوینو Uno آپلود می کنیم.
آپلود بوت لودر آردوینو در میکروکنترلر
مرحله 1: آردوینو IDE را باز کنید. به File -> Examples -> ArduinoISP بروید. سپس ArduinoISP را انتخاب کنید. همانطور که در زیر نشان داده شده است.
مرحله 2: اکنون باید این کد را در برد آردوینو خود آپلود کنید. بنابراین پورت com و برد را از منوی Tools انتخاب کنید.
مرحله 3: پس از مشاهده پیام “Done Uploading”، برد آردوینو را از کامپیوتر جدا کرده و همانطور که در تصویر زیر نشان داده شده است، اتصالات برد آردوینو را با Atmega 328 انجام دهید.
مرحله 4: حالا برد آردوینو را به کامپیوتر متصل کنید. سپس Arduino IDE را باز کنید.
به منوی Tools بروید، برد را به عنوان Arduino/Genuine Uno انتخاب کنید و پورت مناسب را برای برد خود انتخاب کنید. قسمت Programmer را به عنوان “Arduino as ISP” انتخاب کنید. آن را با ArduinoISP اشتباه نگیرید این دو مورد متفاوت هستند.
مرحله 5: حالا دوباره به منوی Tools رفته و بر روی Burn Bootloader درست در زیر گزینه Programmer کلیک کنید. پس از چند ثانیه، Done Uploading Bootloader را مشاهده خواهید کرد. اگر خطایی در آپلود وجود داشت، اتصالات را بررسی کنید.
حالا این میکروکنترلر میتواند به راحتی با استفاده از نرم افزار آردوینو برنامه نویسی شود. در حقیقت برد بورد شما مثل یک برد آردوینو عمل میکند. حال این سوال پیش می آید که چگونه آی سی Atmega 328 را برنامه نویسی کنیم؟ در بخش بعدی به آن خواهیم پرداخت.
3. برنامه نویسی میکروکنترلر دارای بوت لودر
تراشه Atmega328 که حالا دارای بوت لودر است را می توان به روش های مختلفی برنامه ریزی کرد.
- استفاده از برد آردوینو خالی (یعنی برد آردوینو بدون آی سی Atmega 328)
- استفاده از ماژول مبدل USB به سریال TTL (ماژول FTDI)
- استفاده از پروگرامر USBasp (دارای اتصالات زیاد)
در اینجا با استفاده از دو روش مبدل USB به سریال و برد آردوینو میکروکنترلر را برنامه نویسی می کنیم.
برنامه نویسی Atmega328 با برد آردوینو
مرحله 1: یک برد آردوینو بدون تراشه Atmega328 بگیرید (یا میکروکنترلر آن را جدا کنید). همانطور که در تصویر زیر نشان داده شده است اتصالات برد آردوینو را با میکروکنترلر خود انجام دهید.
مرحله 2: برد آردوینو را به کامپیوتر متصل کرده و Arduino IDE را باز کنید. Arduino Uno را از منوی Board انتخاب کنید. سپس Programmer را در حالت USBasp انتخاب کنید و همچنین COM صحیح را انتخاب کنید.
مرحله 3: با آپلود برنامه Blink شروع می کنیم. بنابراین برنامه چشمک زدن را از Examples انتخاب کنید و دکمه Upload را بزنید.
اکنون، می توانید ببینید که LED روی برد بورد شروع به چشمک زدن می کند.
برنامه نویسی Arduino Atmega328 با مبدل سریال
اگر برد آردوینو ندارید. این بهترین روش برای برنامه نویسی آردوینو در میکروکنترلر شماست.
مرحله 1: اتصالات را به صورت زیر انجام دهید:
پین RXD FTDI -> پین Tx Atmega328 (پین 3)
پین TXD FTDI -> پین Rx Atmega328 (پین 2)
GND -> GND (پین 8)
5v -> Vcc (پین 7)
برخی از ماژولهای FTDI دارای پین Reset هستند که با نام پین DTR نیز شناخته میشود. این پایه باید به پین Reset Atmega328 (پین 1) متصل شود. اگر پین ریست در ماژول وجود ندارد، نگران نباشید وقتی تراشه را برنامه نویسی می کنیم راه حل را ارائه می کنیم.
مرحله 2: اکنون FTDI را به رایانه متصل کرده و Device manager را در کنترل پنل باز کنید. بخش Port را مشاهده خواهید کرد، آن را گسترش دهید. اگر یک علامت زرد جلوی درایور وجود دارد، باید درایور ماژول خود را به روز کنید.
اگر علامتی وجود ندارد، شماره پورت com را یادداشت کرده و Arduino IDE را باز کنید. به Tools -> Ports -> Com بروید سپس پورتی که یادداشت کرده اید را انتخاب کنید.
مرحله 3: اکنون، برنامه چشمک زدن ال ای دی را در آردوینو انتخاب میکنیم. به File -> Examples -> Basics -> Blink بروید. Arduino Uno را از منوی Board در منوی Tools و سپس Programmer به عنوان USBasp انتخاب کنید.
سپس دکمه آپلود را بزنید.
توجه: اگر ماژول FTDI شما پین DTR ندارد، دکمه Reset را روی تخته برد بورد فشار دهید و دکمه آپلود را فشار دهید. زمانی که در نرم افزار آردوینو مینویسد Compiling Sketch آن را فشار دهید و به محض اینکه مینویسد Uploading، دکمه را رها کنید.
اکنون برنامه با موفقیت در تراشه آردوینو Atmega328 آپلود خواهد شد.
سلام آقای رحیمی من میخوام بوت لودر را روی میکرو کنترلر Atmega328p u بریزم
بسته هاتون رو خریدم در تلگرام ازتون سوال پرسیدم گفتین اینجا مطرح کنم
1- کلید سمت چپ برای چیست؟
2- آقای رحیمی IC من
atmega 328p u
است شماتیک آن مانند atmega 328 است؟
3- تنظیماتی که باید در سربرگ Tools اعمال کنم فقط همین هایی هست که گفتین ؟
4- قطعات مورد نیاز :
آی سی Atmega 328
کریستال 16 مگاهرتز
2* خازن سرامیکی 22pF
مقاومت 10 کیلو اهم
مقاومت 1 کیلو اهم
سیم های جامپر
کدام یک از این مقاومت ها رو تهیه کنم؟
ممنونم 🌹
سلام عزیز
مطالب سایت از دوره ها جدا هستند و اکثر مطالب از سایت های خارجی ترجمه شده است و توسط ما تست نشده است.
شما باید مشابه با همین مدار ببندید و مراحل را انجام بدهید.
اما در هر صورت خرید برد جدید راه بهتری هست.
سلام ببخشید من اردوینوGenuine Uno رو نمیتونم پیدا کنم لطفا راهنمایی کنید
سلام
زمانی که دارید بوت لودر رو آپلود میکنید روی آردینو یونو میکرو کنترل هست؟
و اینکه میشه همین کار رو با آردینو Mega انجام داد؟
تشکر
سلام خسته نباشید
من یک برد یونو دارم که پروگرم ندارد ایا راهی برای پروگرم کردن برد بدون ماژول با کامپیوتر است
متشکرم
سلام عزیز
به یک برد دیگر یا پروگرامر نیاز دارید.
با سلام
ممنون از آموزش های خوبتون
امکان پذیر است تا فایل بوت رو ATMEGA8A_PU
البته برای برنامه بسکام و یا آردینو داشت تا بشه مستقیم برنامه داد.
و طریقه آن را هم راهنمایی کنید
با تشکر
سلام عزیز
مشابه همین روش هست