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

 

در این دوره یکی از جدیدترین میکروکنترلر های ساخته شده برای محیط صنعتی تدریس می‌شود. در بین شرکت های مختلف سازنده ی میکروکنترلرها ، شرکت ST پرچم‌دار طراحی و ساخت میکروکنترلر با قابلیت های بیشتر و توان مصرفی کمتر برای کاربردهای صنعتی و گاها نظامی است . این شرکت میکروکنترلرهای 32 بیتی ARM خود را با پارت نامبرهای STM32F4xx و STM32F7xx به بازار معرفی کرده است . F4 موید میکروکنترلر CortexM-4 و F7 موید میکروکنترلر با هسته ی Crortex-M7 می باشد.

 

در دنیای الکترونیک امروز ، کاربرد های میکروکنترلر در همه ی صنایع و قسمت ها مشهود است و رقابت عمده بر سر راندمان ، سهولت کار ، استفاده از کاربردهای مختلف و ... می باشد. میکروکنترلر ARM سری Cortex-M4 ساخت شرکت ST با قابلیت های پیشرفته و بی نظیری از قبیل فرکانس کاری 168 MHz ، برخورداری از جدیدترین Core صنعتی ، برخورداری از هسته های DSP و FPU ، امکان برقراری ارتباط مستقیم با نرم افزار MATLAB و ... به بازار عرضه گردید . از جمله کاربردهای این میکروکنترلر می توان به کاربردهای نظامی ، استفاده در دستگاه های پزشکی پیشرفته ، کاربرد در دستگاه های تست و اندازه گیری ، کنترل موتورهای متفاوت و کاربردهای ارتباطی اشاره کرد .

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

 

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

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

 

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

• قادر به ایجاد پروژه برای برنامه نویسی میکروکنترلرهای STM32 و Debug کردن آن‌ها در محیط Keil خواهند بود.

• با واحد های RCC، GPIO، EXTI، TIM، USART، ADC، DMA و SPI آشنایی پیدا کرده اند.

• با سایت www.st.com آشنا خوهند بود و قادر خواهند بود مطالب مورد نیاز برای میکروکنترلرهای خود را دانلود کنند.

• با مراجعه به برگه‌ی اطلاعاتی (datasheet) و مرجع دستی (Reference manual) میکروکنترلرهای شرکت ST قادر به برنامه نویسی این خانواده از میکروکنترلرها باشند.

• قادر به استفاده از STM32 Standard Peripheral Libraries برای برنامه نویسی راحت تر این میکروکنترلرها خواهند بود و در ضمن با رجیسترهای مهم هر واحد هم آشنا خواهند بود و کد نویسی های خود قادر به خواندن و نوشتن از رجیسترهای میکروکنترلر خواهند بود.

 

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

 

تدریس هر واحد در پنج قسمت انجام می‌شود:

 1. توضیح عملکرد و وظیفه‌ی واحد (بنابراین دانشجویانی که قبل از این دوره با میکروکنترلر AVR و یا ... کار کرده باشند در این دوره موفق‌تر خواهند بود.)

2. توضیح و معرفی رجیسترهای مهم واحد (بنابراین دانشجویانی که توانایی بهتری در خواندن متون انگلیسی داشته باشند موفق‌تر خواهند بود زیرا برگه‌ی اطلاعاتی (datasheet) و مرجع دستی (Reference manual) میکروکنترلرهای شرکت ST که طی این دوره مرتباً به آنها رجوع می‌کنیم و مطالب را از آنها توضیح می‌دهیم، انگلیسی هستند.)

 3. استفاده از STM32 Standard Peripheral Libraries برای برنامه نویسی راحت تر (بنابراین دانشجویانی که با زبان C آشنایی خوبی دارند در این دوره موفق‌تر خواهند بود.)

 4. ارائه مثال

5. ارائه‌ی تکلیف در منزل (بنابراین علاقه مند به یادگیری بودن و پرتلاش بودن شرط موفقیت در این دوره است.)

 

 

سرفصل دوره آموزشی میکروکنترلرARM سری CORTEX-M4 شرکت ST :

 

• بررسي و مقايسه ميكروكنترلرهاي ARM ساخت شركت هاي ATMEL, PHILIPS, ST و ...

• آشنايي با پردازنده STM32F407 ساخت شركت ST  :

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

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

• معرفی نرم افزار Keil و نصب Pack مورد نیاز برای میکروکنترلرهای STM32F4xx

• معرفی و کار با واحد General-purpose I/Os) GPIO) و رجیسترهای مربوط به این واحد

• معرفی CMSIS، HAL و Std Peripherals Library  و انتخاب استفاده از درایورهای Std Peripherals Library به دلیل تنوع مثال‌ها و forum هایی که کدهای به این سبک را می‌توان مشاهده کرد.

• آموزش ماژولار نویسی برنامه و ساختن فایل‌های .c و .h

• معرفی مفهوم وقفه (Interrupt) و توضیح اولویت وقفه‌ها

• معرفی عملکرد و کاربردهای واحد تایمر (TIM) و رجیسترهای مربوط به این واحد

• راه اندازی نمایشگرهای کاراکتری (Alphanumetric LCD)

• معرفی رجیسترهای Capture Compare و توضیح کاربردهای آن‌ها

• معرفی مدولاسیون عرض پالس (PWM) و کاربردهای آن و شیوه ساختن PWM به کمک تایمرها

• توضیح مود Alternate functions برای GPIO

• توضیح روش استفاده از IC درایو موتور L293D برای کنترل سرعت موتور DC

• راه اندازی پروتکل ارتباطی USART

♦ ارتباط سریال یکطرفه، دو طرفه و نیمه دو طرفه

♦ ارتباط سریال سنکرون و آسنکرون

♦ ارتباط UART و شیوه ارتباط بین دو میکروکنترلر یا یک میکروکنترلر و یک وسیله جانبی

♦ مقایسه پروتکل های ارتباطی UART، RS232، RS485 و RS422

• تدریس شیوه‌ی استفاده از union جهت تبدیل داده ها به فرمت های مختلف 

• راه اندازی مبدل آنالوگ به دیجیتال (ADC) به روش تقریب متوالی و یا Successive Approximation

• مقایسه Regular channels group و Injected channels group در واحد ADC

• بررسی مودهای Continuous و Discontinuous در ADCهای میکروکنترلر های شرکت ST

• بررسی Direct Memory Access و توضیح کاربردهای استفاده از DMA

• توضیح نحوه استفاده از تایمرها در Trig کردن ADC

 

 

عناوین بخشی از پروژه‌ها و تمرین‌های دوره :

 

♦ کار با واحد Reset and clock control (RCC)

• انجام تنظیمات مربوط به PLL

• راه‌انداری و توقف Clock واحدهای مختلف میکروکنترلر

 

♦ کار با واحد General-purpose I/Os (GPIO)

• آموزش انجام تنظیمات به صورت رجیستری

• معرفی طرز استفاده از لایه‌های Std Peripherals Library در مثال‌ها و تمارین

 

♦ کار با واحد External interrupt/event controller (EXTI)

 

♦ ماژولار نویسی و ساختن فایل‌های .c و .h و ...

 

♦ کار با نمایشگرهای کاراکتری (Alphanumetric LCD)

 

♦ کار با واحد تایمر (TIM)

• طرز کار با اینتراپت‌های Update و Capture Compare تایمرهای مختلف

• معرفی مدولاسیون عرض پالس (PWM) و کاربردهای آن و شیوه ساختن PWM به کمک تایمرها

• توضیح مود Encoder برای تایمر و معرفی کاربردهای آن

• کنترل سرعت موتور DC

 

♦ کار با واحد Universal synchronous asynchronous receiver transmitter (USART)

• ایجاد ارتباط آسنکرون دوطرفه بین دو میکروکنترلر به روش‌های استفاده از فلگ‌های TXE و RXNE و همچنین وقفه‌های TXE و RXNE

• تبدیل پروتکل UART به پروتکل RS232 و ارتباط دوطرفه با کامپیوتر

• کار با پروتکل‌های ارتباطی RS485 و RS422

• استفاده از مفهوم union برای ارسال packet های داده و تبدیل فرمت‌های مختلف داده به یکدیگر بدون عملیات پردازشی اضافه

 

♦ کار با واحد Analog-to-digital converter (ADC)

• کار با ADC در حالت‌های مختلف Continuous و Discontinuous

• کار با ADC به روش‌های استفاده از فلگ EOC و همچنین وقفه‌ی EOC

• کار با ADC در حالت‌های مختلف Regular channels group و Injected channels group

• استفاده از Direct memory access (DMA) برای خواندن راحت‌تر داده‌های ADC Data Register

• نحوه استفاده از تایمرها در Trig کردن ADC

 

تمرین‌ها و پروژه‌های ترکیبی : 

 

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

• راه اندازی ولوم انکودر و نمایش داده آن روی LCD و کنترل سرعت موتور DC

• ارسال آنلاین داده‌های ADC به کمک پروتکل RS232 به رابط گرافیکی کاربر نوشته شده با C# و نمایش داده‌ها به صورت آنلاین در کامپیوتر

• ساخت ماوس به کمک Joystick پتانسیومتری و ارسال داده‌های حرکت و کلیک کردن Joystick به کمک پروتکل RS232 به رابط گرافیکی کاربر نوشته شده با C# در کامپیوتر

و ...

 

 

• دانشجویانی که قبل از این دوره با میکروکنترلر (AVR و یا ...) کار کرده باشند در این دوره موفق‌تر خواهند بود.

• دانشجویانی که توانایی بهتری در خواندن متون انگلیسی داشته باشند موفق‌تر خواهند بود زیرا برگه‌ی اطلاعاتی (datasheet) و مرجع دستی (Reference manual) میکروکنترلرهای شرکت ST بهترین منبع آموزشی برای برنامه نویسی این میکروکنترلرها هستند و طی این دوره مرتباً به آنها رجوع می‌کنیم و مطالب را از آنها توضیح می‌دهیم.

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

 

در حال بروز رسانی

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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