پروگرامر Sisoog-Link
ابزار! همیشه یکیاز اساسیترین امکانات لازم برای یادگیری و انجام کارهای مختلف بوده و خواهد بود، متاسفانه یکیاز رشتههای گران در دنیا، رشته الکترونیک است، چراکه ابزارهای لازم مربوطه از قیمتهای سرسامآوری برخوردار هستند و تهیه تمام ابزارهای لازم واقعا نیازبه سرمایهگذاری بسیار زیادی دارد. حتی در ایران که متاسفانه قوانین کپیرایت بهدرستی رعایت نمیشود و خیلیاز ابزارها بهصورت تقلبی و یا قفل شکسته در دسترس کاربر است، همچنان از قیمتهای بالایی برخوردار هستند مخصوصا برای دانشجویی که سعی میکند با کار نیمهوقت هزینههای تحصیل و یادگیری را تامین کند، یا دانشآموز علاقهمندی که مجبور است ماهها صبرکند تا بتواند لوازم موردنیاز ربات موردنظر خود را خریداری کند آنهم بهشرطیکه دلار بالا نرفته باشد، گمرکات کالا را ترخص کردهباشند و… .
خرید حداقل تجهیزات لازم برای شروع کار، مخصوصا درشرایطکنونی هزینه سنگینی را به افراد علاقهمند تحمیل خواهد کرد! همین امر باعث دلسردی و زدگی افراد میشود و دلیلی برای دنبالنکردن علاقه. اما باتوجهبه شرایط موجود، چه کار میتوان انجامداد؟
تیم سیسوگ قصد دارد برخیاز ابزارهای ضروری را بهصورت کاملا حرفهای و البته همانند گذشته بهصورت متنباز و رایگان منتشر کند تا علاقهمندان بتوانند با کمترین هزینه ممکن، از ابزارهای حرفهای استفاده کنند. بهعنوان اولین ابزار تیم سیسوگ شروعبه طراحی نوعی پروگرامر حرفهای کردهاست.
چرا پروگرامر؟
باتوجهبه فراگیری میکروکنترلرها و پردازندهها شاید به جرات بتوان گفت یکیاز اولین ابزارهای مورداستفاده برای شروع الکترونیک، پروگرامر میباشد! معمولا این ابزار بستهبه تعداد آیسی و میکروکنترلری که پشتیبانی میکنند قیمتهای متفاوتی دارند از چند دلار تا چند هزار دلار!
یکیاز نیازهای ضروری، پروگرامکردن میکروکنترلرها میباشد، درواقع میتوان گفت یکیاز بخشهای هیجانانگیز الکترونیک بخش مربوطبه پردازندهها و میکروکنترلرها میباشد، همانطورکه میدانید برای پروگرامکردن هر میکروکنترلری نیاز به پروگرامر میباشد. دلیل انتخاب پروگرامر بهعنوان اولین انتخاب نیز همین مساله است.
امروزه با فراگیرشدن پردازندههای ARM و کاربرد آن در انواع وسایل صنعتی، آموزشی، پزشکی و … بیشتر افراد علاقهمند درحال کوچ و حرکت بهسوی پردازنده ARM هستند.
ازطرفی همچنان افرادی هستند که با میکروکنترلرهای قدیمی، نظیر AVR کار میکنند و عدهای هم شاید بهسراغ خانواده STM8 رفته باشند، تقریبا برای هر خانواده از میکروکنترلرها نیاز به یک نوع پروگرارم خواهیم داشت که تهیه آنها هزینه زیادی را به ما تحمیل خواهد کرد.
برای حل این مشکل ما در سیسوگ تصمیم گرفتیم که سادهترین روش ممکن را برای ارائه یک پروگرامر متن باز و رایگان در پیش بگیریم.
ما چیزی را کپی نمی کنیم!
معمولا پروگرامرهای حرفهای، قیمت خیلی زیادی دارند، بهعنوان نمونه پروگرامر J-Link را فرض کنید، این پروگرامر پروگرامری است که قادراست تعداد بسیارزیادی از میکروکنترلرهایARM را برنامهریزی کند و امکانات واقعا جالبی هم به کاربر میدهد، اما آیا واقعا برای یک شخص امکاندارد که چنین پروگرامری را با قیمت ۲۹۸یور (با کمترین امکانات موجود) تهیهکند؟ یعنی قیمتی معادل ۴میلیون تومان! نوع حرفهای این پروگرامر هم معادل ۱۹۸۰یور قیمت دارد که تقریبا معادل ۲۵میلیون تومان میشود! پرواضحاست که تهیه چنین پروگرامری حتی برای شرکتهای کوچک هم مقدور نیست!
ممکناست بهخود بگویید، که ما نوع حرفهای این پروگرامر را با مبلغ ۹۰هزارتومان از بازار تهیه میکنیم!بله درست است ولی واقعا چه چیزی رو تهیه میکنید؟یک پروگرامر قفل شکسته که در ورژنهای جدید نرمافزار فیلترشده و فریمور آن هر چندروز یکبار پاک شود! شاید با اینکار بهصورت ناخواسته مرتکب عملی میشویم.
خلاف قانون و غیر اخلاقی! وقعا چرا باید چنین عملی را مرتکب شویم؟
استفادهاز نرمافزار و سختافزار قفل شکسته و کپیشده، عملیاست غیراخلاقی، غیرقانونی! حتی بهلحاظ شرعی و دینی هم مذموم است.
خودتان را بهجای تولیدکننده محصول قراردهید، آیا واقعا دوستدارید که محصولشما به این صورت کپی و استفاده شود؟ پس سعیکنیم مرتکب چنین عملی نشویم؛ بهجای استفادهاز نرمافزار و سختافزارهای قفل شکسته سعیکنید از دنیای اپن سورس نرمافزار یا سختافزار معادل آن را پبدا و استفادهکنید!
Sisoog-Link چگونه پروگرامری خواهد بود؟
گفتیم قراراست پروگرامری طراحی کنیم که حرفهای باشد، اما حرفهایبودن را چگونه تفسیر میکنیم!؟ پروگرامر Sisoog_Link نسبتبه دیگر پروگرامرهای متنباز یا حتی غیرمتنباز نظیر ST-Link یا J-Link چه برتریهایی خواهد داشت؟ اصلا چرا باید از پروگرامر Sisoog-Link استفاده کنیم؟
بگذارید مقداری مساله را بهصورت تخصصی بررسی کنیم، پروگرامر Sisoog-Link بهصورت مستقیم در نرمافزارهای Keil و IAR و Eclipse و… شناسایی خواهدشد، نیازیبه درایور برای پروگرامر ARM ندارد، علاوهبر پروگرام قادر است درون نرمافزارهای ذکرشده برنامه را دیباگ کند ، یعنی تمام پارامترهای لازم برای کارکردن با میکروکنترلرهای رایج بازار!
پشتیبانیاز میکروکنترلرهای AVR با پروتکل استاندارد STK500، که این امکان را به پروگرامر میدهد که بهصورت مستقیم در نرمافزارهای Codevision و Bascom Avr و AtmelStudio شناسایی شود و بدوننیازبه برنامه دیگر در درون این نرمافزارها قادربه پروگرام میکروکنترلرهای AVR باشید.
اگر بخواهیم بهصورت تیتروار قابلیتهای این پروگرامر را مرور کنیم، قابلیتها شامل موارد زیر میباشد:
- سخت افزار ارزان و در دسترس
- پشتیبانی از بوت لودر جهت بروز رسانی فریمور
- پشتیبانی از رابط SWD برای پروگرام میکروکنترلر ARM
- پشتیبانی از رابط ISP برای پروگرام میکروکنترلر AVR
- پشتیبانی از پروتکل STK500 جهت ارتباط مستقیم با نرم افزار های Codevision و Bascom Avr و AtmelStudio
- پشتیبانی از پروتکل CMSIS-DAP برای ارتباط مستقیم با نرم افزار های Kail و IAR
- پشتیبانی از تمام هسته های Cortex-m نظیر تمام خانواده های ST برخی میکروهای جدید NXP و Atmle و…
سخت افزار ارزان پروگرامر Sisoog-Link
یکیاز دلایل موفقیت پروگرامر USBAsp سختافزار ساده این پروگرامر است که جز یک میکروکنترلر Atmega8 تقریبا قطعه خاص دیگری ندارد، همین سادگی علاوهبر ارزانشدن، کمک میکند که این پروگرامر توسط افراد مبتدی نیز قابل ساخت و بهرهبرداری باشد. ما نیز در طراحی این پروگرامر سعی کردهایم که از این قانون پیرویکنیم و جز یک میکروکنترلر ارزان قیمت تقریبا قطعه خاص دیگری مورداستفاده قرارنگرفتهاست.
حتی ما پا را فراتر گذاشته و از یک سختافزار آماده که قیمت چندانی هم ندارد برای این پروگرامر استفاده کردهایم ، پروگرامر ST-Link که بهصورت کلون و دانگل USB درحالحاضر به قیمت بسیارپایین قابلتهیه است را بهعنوان پایه سختافزار قراردادهایم، که حتی دوستان دغدغه چاپ برد، مونتاژ و جعبهکردن نداشته باشند! اگر هم شخصی دوستداشت که تمام روالها را از اول طی کند، قبلا در سیسوگ مقالهای درخصوص نحوهی ساخت پروگرامر ST-Link منتشر کردهایم که میتواند بامراجعهبه آن سختافزار را بررسی و تولیدکند.
شناسایی مستقیم در نرم افزار های keil و IAR
پروگرامر Sisoog-Link بهصورت مستقیم در نرمافزارهای IAR و Keil قابلاستفاده است، اما چطور ممکناست؟ خوشبختانه همه بهصورت تجاری فکر نمیکنند و هنوز شرکتهای بزرگی هستند که برخی قابلیتها و کتابخانهها رو بهصورت متنباز منتشر میکنند، شرکت ARM هم از این گونه شرکتها است، پروتکل CMSIS-DAP درواقع یک پروتکل متنباز برای پروگرام و دیباگکردن میکروکنترلرهایی است که بر پایه هسته Cortex-M تولید می شوند. همانطور که میدانید هسته Cortex-m مخصوص استفادهاز میکروکنترلرها ساخته و طراحی شدهاست . تقریبا تمام میکروکنترلرهای جدید از هسته Cortex-m استفاده میکنند مگر در شرایطخاص یا میکروکنترلرهایی با طراحی قدیمی که از هستههایی غیر از Cortex-m استفاده میکنند.
میتوان نتیجهگرفت که از پروتکل CMSIS-DAP در اغلب میکروکنترلرهای رایج میتوان استفادهکرد، پس منطقیاست که این پروتکل نیز جزء پروتکلهای استاندارد به ادیتور و دیباگرها اضافهشود.
شناسایی مستفیم در نرم افزار هایCodevision ،Bascom Avr AtmelStudio
شرکت atmel نیز با رویکرد متنباز، شروعبه گسترش میکروکنترلر avr کرد، کامپایلر، پروگرامر و ابزارهای مختلفی نیز برای این منظور ارائهکردهاست و فکر میکنم همین رویکرد باعث موفقیت و مطرحشدن این میکروکنترلر در جهان شد، پروگرامر stk500، بهتر بگم پروتکل stk500 که برای پروگرامکردن میکروهای avr ازسوی شرکت Atmel معرفیشد، بااستفادهاز پورت سریال امکان پروگرامکردن میکروکنترلرهای avr را در اختیار کاربر میگذارد. تقریبا تمام کامپایلرها و ideهای avr از این پروتکل برای پروگرامکردن میکروکنترلر avr استفاده میکنند.
پروگرامر sisoog-link با شبیهسازی یک پورت سریال و پیادهسازی پروتکل stk500، امکان برنامهریزی از درون این نرمافزارها را بهصورت مستقیم فراهمکردهاست، و دیگر لازم نیست از نرمافزار جانبی دیگری برای این کار استفاده کنید.
چطور پروگرامر St-Link را به پروگرامر sisoog-Link تبدیل کنیم ؟
برای پاسخ به این سوال منتظر قسمت بعدی مقاله باشید. در قسمت آینده جزییات بیشتری از پروگرامر sisoog-link و نحوه ساخت این پروگرامر بیان خواهیم کرد. با ما همراه شوید.
منبع: سیسوگ