اموزش میکروکنترلر ARM STM32

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

اولین سوالی که شاید برای همه ی ما پیش بیاد  اینکه چرا باید میکروکنترلر ARM  یاد بگیریم ؟ خب جواب این سوال خیلی سادست!! ؛  به خاطر اینکه میکروکنترلر ARM قدرت پردازشی خیلی بالایی در مقایسه با سایر میکروکنترلر های بازار مثل میکروکنترلر AVR  و میکروکنترلر PIC داره . جالبه که بدونید که در اخرین سری میکروکنترلر های کمپانی  ST قدرت پردازش پردازنده در میکروکنترلر  تا 400 مگاهرتز رسیده !!!(STM32H7)  . دلیل بعدی اینکه بعضی امکانات جانبی که در میکروکنترلر های قبلی بودش ارتقاء پیدا کرده مثل تایمر و مبدل انالوگ به دیجیتال و … و همچنین امکانات جدیدی مثل شبکه ، USB ، کنترلر صفحه نمایش رنگی ،  واحد DSP برای پردازش دیجیتال سیگنال ، و …. اضافه شده که میشه در خیلی از پروژه های صنعتی استفاده کرد  .

قبل از اینکه بریم سراغ اموزش میکروکنترلر ARM  قصد دارم به یه سری از سوالاتی که در ذهنتون هست پاسخ بدم .

سوال : برای یادگیری و کار با میکروکنترلر ARM چه پیشنیاز هایی لازمه ؟

برای یادگیری میکروکنترلر ARM بایستی با معماری داخلی میکروکنترلر ها و همچنین زبان برنامه برنامه نویسی C  اشنایی داشته باشین .

برای یادگیری و کار با هر میکروکنترلری باید به یکی از زبان های به برنامه نویس اسمبلی ، C  ،  C++ اشنایی داشته باشین . زبان اسمبلی بیشتر  برای برنامه نویسی  میکروکنترلر های که با معماری CISC طراحی شدند ؛ استفاده میشه مثل میکروکنترلر 8051 . همانطور که میدونید میکروکنترلر های جدید مثل AVR , PIC, ARM با معماری RISC طراحی شده اند که اگر بخواهیم با زبان برنامه نویسی اسمبلی کار بکنیم خیلی کار سخت و زمان بری میشه و اصلا منطقی نیست !!!!

در حال حاظر  99.99 درصد مهندس های الکترونیک در دنیا از زبان برنامه نویسی C  برای برنامه نویسی میکروکنترلر ARM و سایر میکروکنترلر های استفاده میکنند . البته چند سال اخیر استفاده از زبان C++ توی میکروکنترلر خیلی رایج شده و بعضی از شرکت های معتبر در ایران  از این زبان برنامه نویسی برای انجام پروژه ی ها صنعتی استفاده میکنند .

پس  یکی از  مهمترین مهارتی که باید روش کار بکنید برنامه نویسی به  زبان C هستش . برای یادگیری میکروکنترلر ARM  اشنایی با مفاهیم اولیه زبان c  کافیه ولی اگر میخواهید که پروژه های صنعتی و پیشرفته با میکروکنترلر انجام بدین باید روی مهارت برنامه نویسیتون هم کار بکنید . خب شاید بپرسید که چطور مهارتمو افزایش بدم ؟  توی اینترنت و سایت YOUTUBE فیلم های اموزشی خیلی زیادی از مبتدی تا پیشرفته هستش که میتونید ببینید و همزمان هم با یکی از کامپایلر هایی که زبان C  رو پشتیبانی میکنند کار بکنید  و تمرین انجام بدید مثل نرم افزار Code::Blocks

 

برنامه نویسی زبان C

برنامه نویسی و اموزش میکروکنترلر ARM

سوال : برای برنامه نویسی میکروکنترلر ARM  از چه نرم افزار هایی استفاده بکنیم ؟

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

1 : نرم افزار KEIL

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

مزیت دیگه ای که این برنامه داره اینکه میتونید به راحتی (البته باید کرک بکنید !!!!) از لایبری های که این شرکت برای مباحث پیشرفته تر میکروکنترلر ARM  اماده کرده استفاده بکنید مثل Ethetnet , CAN ,USB , filersystem, …

2 : نرم افزار IAR

یکی از مهمترین مزیت هایی که این برنامه داره ، دیباگر و کامپایلر قدرتمندش هستش . شاید براتون سوال شده که دیباگر و کامپایلر قدرتمند به چه دردی میخوره ؟!!!!  اول از همه مفهوم دیباگ بهتون توضیح میدم . دیباگر این امکان رو به شما میده تا برنامه ای که نوشتید رو به صورت انلاین خط به خط اجرا بکنید و نتیجرو توی خروجی ببنید و همچنین مقادیر متغیر هایی که در برنامه استفاده کردید رو در زمان اجرا مشاهده بکنید . مزیت دیگه ای که این برنامه داره اینکه برنامه ای که به زبان C نوشتید با الگوریتم های بهتری به زبان ماشین تبدیل میکنه که در نتیجه باعث میشه برنامه ی شما با  سرعت بیشتری اجرا بشه .

نتیجه گیری : خب حالا با این تقاسیر برای شروع کار با کدوم یکی از این نرم افزار ها کار بکنیم؟!! . در کل از لحاظ شیوه ی برنامه نویسی هیچی تفاوتی با هم ندارند اما به خاطر اینکه برنامه ی KEIL  محیط کاربری بهتری داره ؛ توصیه میکنم که برای شروع کار از این برنامه استفاده بکنید .

سوال : چرا میکروکنترلر هاِی کمپانی ST ?!!!

در ایران میکروکنترلر های 32 بیتی کمپانی های  ST و ATMEL و NXP  که با هسته ی پردازش ARM  هستند ، بیشترین استفاده را در پروژه های صنعتی دارند .

میکروکنترلر های 32 بیتی کمپانی ATMEL :

اولین میکروکنترلر ARM  که چند سال پیش وارد ایران شد و خیلی هم طرفدار پیدا کرد میکروکنترلر 32 بیتی شرکت ATMEL  بود که معروفترین میکروکنترلر این شرکت به نام AT91SAM7 نام داشت ؛ که هسته ی پردازش این میکروکنترلر ARM7 بود . زماینکه این میکروکنترلر وارد بازار ایران شد خیلی طرفدار پیدا کرد و چنتا کتاب هم براش نوشته شد و شرکت های مختلفی هم چنتا برد اموزشی براش تولید کردند . اما بعد از یه مدتی کمپانی ARM  سری جدید پردازنده های 32 بیتی رو معرفی کرد که  برای استفاده در میکروکنترلر ها طراحی شده بود .  پردازنده ی CortexM توان پردازش بالاتری داشت و همچنین توان مصرفی شون خیلی پایین بود . بعد از معرفی این سری از پردازنده ها کمپانی های زیادی در دنیا اقدام به طراحی و تولید میکروکنترلر هایی با پردانده های CortexM کردند که متاسفانه شرکت ATMEL  توی این  بازار جدید نتونست موفق بشه ! .

میکروکنترلر های 32 بیتی کمپانی NXP :

میکروکنترلر های 32 بیتی کمپانی NXP  جزء اولین میکروکنترلر هایی با پردازنده های CortexM هستند که وارد بازار ایران شده است  . یکی از معروف ترین میکروکنترلر های 32 بیتی این شرکت LPC1768 نام دارد  که توان پردازشی این میکروکنترلر 100 مگاهرتز است که تقریبا دو برابر پردازنده های نسل قبل خودشه (منظورم ARM7!) . به دلیل وجود منابع اموزشی خوبی که در بازار وجود داره  ، بیشتر مهندسان الکترونیک  در ایران از میکروکنترلر های 32 بیتی ARM این شرکت اسفاده می کنند .

میکروکنترلر های 32 بیتی کمپانی ST :

کمپانی STMicroelectronics یکی از بزرگترین تولید کنندگان محصولات نیمه هادی در جهان است . این شرکت  از سال 2010 تا به الان به صورت تمرکز ،  اقدام به تولید میکروکنترلر های 8 بیتی و 32 بیتی کرده که در این زمینه خیلی موفق بوده و تونسته توجه خیلی از مهندسان الکترونیک در دنیا رو به خودش جلب بکنه . مزایای میکروکنترلر های 32 بیتی کمپانی ST قیمت پایین ، امکانات جانبی عالی و همچنین پشتیبانی نرم افزاری خوب است .


نتیجه گیری : برای یادگیری و کار با میکروکنترلر های 32 بیتی ARM  باید با معماری میکروکنترلر ها و همچنین و زبان برنامه نویسی C اشنایی داشته باشین . به خاطر قیمت پایین و پشتیبانی نرم افزاری خوبی که میکروکنترلر های کمپانی STMicroelectronics دارند ؛ ما هم با این میکروکنترلر ها کار میکنیم و تمامی اموزش ها و پروژه هایی که در سایت قرار می گیرند با این میکروکنترلر هستند . در مقاله ی بعدی به شما خواهیم گقت که برای یادگیری میکروکنترلر ARM از کجا شروعو چه مقالات و کتاب هایی رو مطالعه بکنید.

 

کانال تلگرام میکروکنترلر ARM

کانال تلگرام میکروکنترلر ARM