آشنایی مختصر با دوره میکروکنترلر ARM مقدماتی


میکروکنترلرهای ARM یکی از پرکاربردترین و بروزترین میکروکنترلرهای مورد استفاده در صنعت هستند. از کاربردهای این میکروکنترلرها می توان به تلفن های هوشمند (Smartphones)، سیستم های اتوماسیون صنعتی(Automotive Systems)، سرور و شبکه (server and networking)، دستگاه های پوشیدنی (Wearables)، تبلت ها و کارتخوان ها (Tablets and Readers)، گیرنده های ست تاپ و ماهواره ای (Set-top and satellite receivers)، رباتیک (Robatics) و بسیاری از کاربردهای دیگر اشاره نمود.

تحلیل بازار کار


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

توانایی دانشجو پس از پایان دوره میکروکنترلر ARM مقدماتی


دانشجو در پایان دوره از توانمندی های زیر برخوردار خواهد شد :

 

 • راه اندازی واحدهای اصلی میکروکنترلرهای سری AT91SAM7S و AT91SAM7X شرکت ATMEL از قبیل PIO، RTT،  PIT، ADC، AIC،  PMC، T/C و USART.

• کسب تجارب مختلفی از قبیل نوشتن کتابخانه استاندارد و توانایی مقایسه و انتخاب پروتکل های ارتباطی مختلف در پروژه ها

 

شیوه برگزاری کلاس


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

سرفصل دوره آموزشی میکروکنترلرهای ARM :

 

♦ آشنايي با معماري پردازنده ARM و تفاوت آن با ساير پردازنده ها بررسي و مقايسه ميكروكنترلرهاي ARM ساخت شركت هاي ATMEL, PHILIPS, ST و ...

 

♦ آشنايي با پردازنده AT91SAM7S256 ساخت شركت ATMEL 

• بررسي سخت افزار و آشنايي با كاربرد هر پايه

• آشنايي با امكانات داخلي آي سي و مشخصات الكتريكي هر واحد

 

♦ آشنايي با كامپايلر KEIL :

• آموزش ايجاد پروژه جديد، برنامه نويسي و ساخت فايل HEX برنامه

• استفاده از ديباگر نرم افزاري و تست برنامه قبل از پروگرام كردن

 

♦ نحوه پروگرام كردن (Programming) :

• آموزش نحوه پروگرام كردن آي سي توسط پروگرامر wiggler و نرم افزار H-JTAG

• استفاده از امكان SAM-BA و پروگرام كردن آي سي توسط كابل USB

 

♦ آشنايي با واحد PMC(Power Management Controller) :

• انتخاب منبع كلاك داخلي، خارجي و يا استفاده از PLL داخلي ميكرو

• انتخاب فركانس اصلي سيستم (Main Clock)

• فعال كردن يا غير فعال كردن كلاك هر واحد

 

♦ آشنايي با واحد PIO(Parallel Input Output) :

• نحوه تنظيم هر پين به عنوان ورودي و يا خروجي

• امكان استفاده از مقاومت هاي pullup داخلي براي هر پين

• فعال كردن و يا غير فعال كردن وقفه براي هر پين

 

♦ راه اندازي تايمر PIT و نوشتن توابع تأخير (Delay)

 

♦ راه اندازي LCD كاراكتري 16x2 و نوشتن توابع براي استفاده از LCD

 

♦ راه اندازي تايمر RTT و نحوه تنظيم ALARM براي زمان هاي طولانی

 

♦ راه اندازي واحد ADC(Analog Digital Converter):

• نوشتن توابع مورد نياز براي كار با اين واحد

• نحوه اتصال سنسورهاي آنالوگ به اين واحد و برنامه نويسي براي آنها

 

♦ بررسي واحد AIC(Advanced Interrupt Controller) :

• نحوه فعالسازي وقفه هر واحد و تنظيمات مربوط به آن

• راه اندازي وقفه هاي داخلي و خارجي ميكرو

 

♦ راه اندازي واحد USART :‌

• آشنايي با مدهاي كاري متفاوت اين واحد از قبيل (RS232 , RS485, Iso7816, IrDA,…)

• ايجاد ارتباط بين دو ميكرو، ارسال و دريافت اطلاعات از طريق USART

• نحوه ایجاد ارتباط با پورت سريال كامپیوتر

 

عناوین بخشی از پروژه ها و تمرین های کلاس :

 

• انجام تمرین های متعدد جهت درک نوع دسترسی به رجیسترهای ARM و کار با واحد PIO

• نوشتن کتابخانه delay توسط واحد PIT

• راه اندازی LCD کاراکتری

• انجام یک پروژه دارای منوهای متعدد توسط LCD و LED و کلیدهای روی برد

• طراحي ولت متر

•​​​​​​​ ساخت شکل موج های مختلف توسط واحد تایمر

•​​​​​​​ ارتباط بین میکرو و کامپیوتر توسط پورت سریال

 

 

یکی از ملزومات بسیار مهم این دوره، توانایی طراحی الگوریتم و فلوچارت و همچنین پیاده سازی آن توسط برنامه نویسی با زبان C می باشد.

بدیهی است که انتخاب ARM به عنوان اولین میکروکنترلر مورد یادگیری کار درستی نیست و بهتر است دانشجو قبل از این دوره با یکی از میکروکنترلرهای AVR یا PIC به خوبی کار کرده باشد و مفاهیم آن را بداند.

نکته دیگری که از اهمیت بسیار بالایی برخوردار است این است که شرکت در دوره، بدون انجام تمرین مستمر و بدون پیاده سازی سخت افزاری تمرین ها، نمی تواند مفید باشد.

 

آقای متینی صدر :

در مورد مدرس بايد بگم كه آقاي حق وردي تدريس خوب و آرامش بخشي داشتند و به سوالات ما به خوبي جواب ميدادند . همچنين مهارت هاي برنامه نويسي هم به ما ميگفتند كه از اين نظر براي من جالب بود

درمورد سوالات ديگري كه خارج از مباحث از ايشان ميپرسيديم با صبر و حوصله به ما جواب ميدادند 

نكات منفي تدريس ايشان فقط اين بود كه مقداري ريتم درس دادن تند بود و باعث ميشد مباحث خيلي زود از ياد من برود و مجبور به سوال كردن از ايشان بشوم
 

خانم بختیاری مقدم :

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

آرم چیزیه که خیلی به درد بخوره و تو بازار کار و کارای پژوهشی هم خیلی کاربرد داره قطعا خیلی میتونه توی پیداکردن کار موثر باشه. 

در کل نیراسیستم مرکز خوبیه و از نظر نظم و به موقع بودن و کیفیت استادا خوبه. در کل نظرم مثبته. رفتار مسئولین هم خیلی خوب بود.
 

آقای میرقاسمی : 

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

آقای ستاری فرد :

راضی بودم از اون چیزی که یاد گرفتم .یه قسمتایی رو هم از استاد خواستیم تا یاد بدن و گفتن مربوط به دوره پیشرفته اس. 

و اینکه اگه از آرم های کاربردی دیگه هم مثل cortex ها برای آموزش استفاده میکردن خیلی بهتر بود.
 

آقای خاکسار :

مدرس دوره فوق العاده بودن ... هم رو مباحث مسلط بودن هم روش تدریسشون خوب بود. خیلی خوش اخلاق و همچنین بسیار صبور در رفع اشکالات دانشجوها ...

فکر می کنم تسلط بر میکرو آرم  به مهندسین برق تو بازارکار واقعا کمک می کنه
 

آقای آل علی : 

مدرس(جناب آقای مهندس حقوردی) دانش و توانایی بالایی داشتند، و مطالب خوب و به دردبخوری به ما آموخت. زحمات زیادی برای ما کشیدند، و من از کلاسشان تا حد خوبی راضی بودم.
 

آقای قدیمیان :

در دوره مقدماتی که مدرس آقای مهندس حق وردی بودند ،بسیار عالی و قدرت انتقال مفاهیم بالا و تسلط بر مباحث بسیار خوب بود. برای ARM دوست دارم بیشتر کتابخانه HAL تدریس بشه. 

من در نیرا حدود ۴ سال دانشجو بودم و در کسب و کارم بسیار تاثیر گذار بوده به طوریکه در محصولاتی که الان تولید میکنیم و دانش بنیان ثبت شده است، تماما در نیرا آموزش دیدم. از این بابت بسیار ممنونم. 

 

 

. آیا آشنایی با میکروکنترلرها برای شرکت در این دوره الزامیست؟

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

 

. درصورتی که قبلا با میکرویی غیر از میکروکنترلر AVR کار کرده باشیم، مجاز به شرکت در این دوره هستیم؟

بله؛ هدف اصلی آشنایی با ساختار داخلی، واحدهای مختلف و کدنویسی میکروکنترلرها می باشد و تسلط بر یک میکروی ساده تر (از نظر راه اندازی) مثل AVR و یا PIC می تواند در یادگیری هرچه بهتر ARM موثر واقع شود . 

 

. من میکروکنترلر AVR را با زبان بیسیک راه اندازی کرده ام. آیا برای پیش نیاز دوره کفایت می کند؟

با توجه به اینکه زبان برنامه نویسی مورد نیاز جهت کار با میکروهای ARM زبان C می باشد، دانشجو حتما می بایست به زبان C نیز تسلط داشته و زبان بیسیک مناسب این دوره نیست. 

 

.برنامه نویسی ARM مبتنی بر چه کامپایلری هست ؟

برای یادگیری برنامه نویسی ARMها انتخاب کامپایلر مناسب به عهده برنامه نویس می باشد و از نظر برنامه نویسی تفاوت چندانی بین کامپایلرهای Keil یا IAR وجود ندارد و با هر دو کامپایلر امکان برنامه نویسی وجود دارد.

 

.آیا در طول دوره از سخت افزار هم جهت یادگیری استفاده می شود؟

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

 

. آیا برای استفاده از سخت افزار و بردهای آموزشی باید هزینه جداگانه ای پرداخت کرد؟

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

 

. آیا امکان تهیه برد آموزشی برای استفاده خارج از کلاس نیز وجود دارد؟

بله؛ در صورتی که دانشجو جهت انجام تمرینات خارج از کلاس و انجام پروژه های شخصی نیازمند برد آموزشی باشد می تواند برد مورد نیاز را از مرکز آموزش نیراسیستم خریداری نماید اما هیچ اجباری در این خصوص وجود ندارد. 

 

. آیا در انتهای دوره برای شرکت کنندگان گواهینامه صادر می شود؟

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

 

. نحوه برگزاری آزمون پایانی دوره به چه صورت است؟

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

 

.آیا برای این دوره جزوه یا کتاب خاصی باید خریداری شود ؟

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