همانطور که میدونیم آردوینو چیزی نیست جز یک میکروکنترلر معمولی که دوستان مهربونی (شرکت آردوینو) اومدند برای اون یک ادیتور سطح بالا و یه سری سختافزار مناسب طراحی کردند که شما با کمترین دانش الکترونیکی درباره میکرو و خیلی از موضوعات دیگه میتونید از این بستر به سرعت استفاده کنید و ازش لذت ببرید. این ساختار صحبت شده اینقدر زیبا طراحی شده است که خیلی از مهندسین نرم افزار هم به اون سرک کشیده و پروژه های زیادی را باهاش انجام دادند و به واسطه همین استفادهکنندگان زیاد هم میشه گفت منابع و کتابخانههای متعددی برای این بردها نوشته شده، که انجام دادن پروژهها را میتونه برای شما سهل کنه! خب فرض کنید الان شما یک برد آردوینو دارید و پروژه ای را انجام دادید باهاش ولی تمایل دارید برای تولید تعداد و اینکه هزینههای تولید را کم کنید و دلایل متعدد دیگهای از این برد آردوینو و ساختارش استفاده کنید. در این حالت شما نیاز به ساختار آردوینو دارید نه خود برد آردوینو! راهکار چیه؟ راهکار کلی اینه که میکروکنترلر استفاده شده در پروژه را بر روی برد خودتون مونتاژ کرده و کدهای اولیه آردوینو را توسط پروگرمر بر روی اون بریزید به این کدهای اولیه اصطلاحا برنامه بوت لودر آردوینو گفته میشه! بارها شده که از یک برد آردینو برای پروژههای متفاوت استفاده کردهاید و توانستهاید که پروژههای متفاوت را انجام دهید. اما به این موضوع فکر کردهاید که اگر برای یک کار صنعتی و یا یک محیطی که آزمایشگاهی نباشد چگونه باید از آردینو استفاده کرد؟ و سولاتی از قبیل موارد زیر برای ما پیش خواهد آمد. مطمئنا در سایتهای مختلف در مورد پروگرام کردن آردوینو سوالات متفاوتی پرسیده شده اما تقریبا میتوان گفت که هیچ وبسایتی این توضیح را به صورت OnBoard نداده است و توضیحات اصطلاحا آزمایشگاهی(بردبردی) بوده که در این مقاله سعی داریم یک برد آردوینو البته از نوع SMD آن را طراحی و بدون اینکه آیسی را جدا کنیم برد را پروگرام کنیم و که این کار را در چند گام توضیح خواهیم داد. در ادامه مقاله به تمامی سوالات خود خواهید رسید. در مورد بوت لودر قبلا در سیسوگ مقالهای نوشته شده است، برای اطلاعات بیشتر در این مورد پیشنهاد میکنیم اینجا کلیک کنید.
همانطور که از شکل بالا مشخص شده، برای ریختن بوتلودر باید پایههای زیر را به برد آردوینو متصل کنیم.
طبق پایهایی که گفته شد، مشخص است که از پروتکل SPI برای این کار انجام استفاده میشود. پروتکل SPI چیست؟ یکی از انواع پروتکلهایی است که تا به حال شنیدهاید و برای ارتباط با بعضی از دیوایسها از این پروتکل استفاده میشود در این نوع ارتباطات، دستگاهها به صورت Master/Slave با هم ارتباط برقرار میکنند که در آن دستگاه Master فریمهای داده را به راه میاندازد. همچنین میتواند با چندین Slave ارتباط برقرار کند. گاهی برای جداسازی SPI از گذرگاههای سریال ۳ سیمه، دو سیمه و یک سیمه، به آن گذرگاه سریال ۴ سیمه نیز میگویند. SPI، چهار سیگنال منطقی دارد. SCLK: کلاک (خروجی از طرف Master) MOSI: خروجی Master، ورودی Slave (خروجی از طرف Master) MISO: ورودی Master، خروجی Slave (خروجی از طرف Slave) SS: انتخاب Slave (فعال پایین(Active Low)، خروجی از طرف Slave) پس از اینکه روی آیسی بوتلودر ریخته شد نوبت به آپلود کد مورد نظر میرسد.
طبق شکل بالا پایه های RX و TX و Reset و GND و VCC را به برد خود متصل میکنیم. و در نهایت گزینه آپلود کد را میزنیم در صورتیکه عملیات بوت لودر به درستی انجام شده باشد در آپلود کد هیچ مشکلی پیش نخواهد آمد.

- برای انجام یک پروژه صنعتی باید چیکار کنم؟
- چگونه برای آیسی موردنظر باید برنامهنویسی کنم؟
- چگونه کد را آپلود کنم؟
- آیا این کار امکان پذیر است یا خیر؟
- آیا باید طراحی برد انجام داد؟ از چه قطعاتی باید استفاده کرد؟ چگونه باید قطعات را شناخت؟ و …
گام اول: بوت لودر ( BootLoader ) در میکروکنترلر چیست؟
بوت لودر روشی برای پروگرام کردن تراشههای میکروکنترلر است که توسط خود ميکروکنترلر اقدام به برنامهریزی خودش میکند. این روش از پروگرام کردن تراشه مخصوص آن دسته از میکروکنترلرهایی است که قابلیت نوشتن در حافظه برنامه خود را دارند. در بوت لودر، ابتدا یک برنامه با حجم پائین در میکروکنترلر پروگرام میشود. وظیفه این برنامه برقراری ارتباط با کامپیوتر و اجرای دستورات دریافتی از آن (خواندن/نوشتن/پاک کردن و …) میباشد. پس از اینکه برنامه بوت لودر را بر روی میکروکنترلر پروگرام کردید، پس از هر بار ریست شدن میکروکنترلر و یا قطع و وصل تغذیه، ابتدا به برنامه بوت لودر میرود. تا اگر ارتباط با کامپیوتر برقرار بود، به اجرای دستورات دریافتی پرداخته شود و اگر ارتباط برقرار نبود، به برنامه اصلی میکروکنترلر میرود. از نظر تقسیم بندی و ساختار بوتلودر شامل سه قسمت مهم می باشد.- پشتیبانی میکروکنترلر شما و قابلیت بوت لودر در میکرو شما، برای نمونه میکروهای 8051 از این قابلیت پشتیبانی نمیکردند. ( یعنی این قسمت یک قابلیت سختافزاری در میکرو شما میباشد )
- نرم افزاری که بر روی بوت لودر میکرو شما نوشته میشه ( تقریبا مشابه برنامه ای است که در برنامه نویسی اون میکرو استفاده میکنید)
- نرم افزاری که قرار است اطلاعات برنامه را بر روی میکرو شما ارسال نماید (نرم افزار کامپیوتری یا میکروکنترلری مشابه)
گام دوم: پیاده سازی بوت لودر روی آردوینو
در این قسمت اتصالات برد آردوینو را مورد برسی قرار میدهیم. که دقیقا طبق چه پروتکلی کار میکند.- PB2
- PB3
- PB4
- PB5
نکته: از این به بعد هر میکروکنترلری که پایه های معرفی شده را داشت میتوان گفت که از پروتکل SPI استفاده میکند.
گام سوم: تنظیمات بوتلودر از طریق نرمافزار آردینو
پس اتصال سختافزار به صورتیکه گفته شد. وارد نرم افزار Arduino Ide میشویم و طبق مراحل زیر عمل میکنیم. ابتدا پورت COM را انتخاب میکنیم و مطمئن میشویم که دیوایس توسط PC شناخته شده است. سپس در قسمت نوار بالا محیط Arduino وارد Tools=> Programmer=> Arduino as ISP را انتخاب میکنیم و سپس گزینه Burn Bootloader را میزنیم. اگر در اخر در قسمت گزارشات DONE را مشاهده کردیم یعنی اینکه عملیات بوت ایسی به درستی انجام شده است. پس از ریختن بوتلودر روی ایسی، نوبت به آپلود کردن کد روی ایسی میرسد که برای این کار باید مراحل زیر را انجام دهیم.- در قسمت Tools => Board نوع بردی را که استفاده میکنیم انتخاب کنیم( در واقع نوع آیسی که مونتاژ کردیم روی برد خودمون )
- تنظیم Processor که در این بخش نوع ایسی استفاده شده را انتخاب میکنیم.
- تنظیم پورت COM
- و در نهایت گزینه آپلود را میزنیم که در قسمت گزارشات باید Done Uploading را مشاهده کنید. در صورت مشاهده، شما موفق شدهاید.
گام چهارم: طراحی و ساخت برد آردینو
خب در این بخش که میتوان گفت مهمترین بخش این مقاله محسوب میشود میخواهیم یک برد آموزشی(SMD) طراحی کنیم (البته اگر بازخورد مطلب خوب بود و دوستان علاقهمند بودند بردهای کاربردی دیگری در زمینه های صنعتی و IOT و … را طراحی خواهیم کرد.) در واقع سه مرحله قبل، پیش نیاز این قسمت بود، تا بتوانیم برد را به درستی طراحی و پیادهسازی کنیم و در حین طراحی اشتباهی رخ ندهد. پیشنیاز این قسمت نرمافزار آلتیوم دیزاینر است که ما با فرض تسلط خواننده در این قسمت پیش میرویم. بدون فوت وقت ابتدا نرم افزار آلتیوم دیزاینر را باز میکنیم و شماتیک مدار را طراحی میکنیم که به شکل زیر میباشد.نکته: دقت کنید که پایه های پروگرام کردن برنامه کاملا در شماتیک مشخص شده است و برای پروژه های آردینو خود میتوانید از این شماتیک برای پروگرام کردن ONBOARD برد خود استفاده کنید. التبه به خاطر داشته باشید پس از ریختن بوت لودر برای آپلود کردن کد کافی است توسط اتصال به یک مبدل usb to ttl کد مورد نظر را آپلود کنید.
بسیار عالی بود
آموزش هاتون رو ادامه بدید ??
سلام دوست عزیز
حتما ان شالله با حمایت های شما مخاطبین عزیز، این اموزش ها بیشتر و با کیفت تر هم خواهد شد.
بنظر من بهترین راه برای پروگرام یه میکروکنترلر با کامپایلر آردوینو خرید یه پروگرامره چون با پروگرامر میشه بدون استفاده از بوت لودر برنامه رو ریخت رو میکرو به این شیوه میشه حافظه میکرو رو ذخیره کرد برا کار های دیگه. برای استخراج فایل هگز هم میشه از کلید های ترکیبی ctrl+alt+s استفاده کرد. با این دستور کد هگز با بوت لودر و بدون بوت لودر کنار اسکچتون ذخیره میشه و میتونید استفاده کنید ازش.
برا پروگرامر هم هاتل بهترین گزینس (البته به نظر من).
سلام
در اینصورت تنظیمات فیوز بیت آن چطوری هست؟ اگه نیاز به تنظیم خاصی می خاد لطفا بگید؟
سلام دوست عزیز فکر میکنم فیوز بیت ها به شکل زیر مقدار دهی میشن
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
تنکس چوخ زیاد!!!
مقالات در سطوح مختلف نوشته میشه و این تنوع میتونه جذاب باشه.
ممنون از سایت خوبتون
خواهش میکنم دوست عزیز
امیدواریم که بتونیم همچنان با قدرت در زمینه های متنوع عمل کنیم البته با حمایت شما مخاطبین عزیز که واقعا باعث دلگرمی تیم سیسوگ هستید.
موفق باشید.