آموزش STM32
آموزش STM32 یکی ازسریهای آموزشی پرطرفدار مخصوصاً در جامعه الکترونیک ایران میباشد، حدود یک دهه پیش که تازه بحث میکروکنترلر ARM در ایران داغ شده بود کسی فکرش را نمیکرد که میکروکنترلر محبوب AVR روزی جایگاه خودش را از دست بدهد، اما زمان ثابت کرده است که هیچچیز ماندگار نیست و تغییرات درراه هستند، اگر امروز برای مصاحبه یک موقعیت شغلی embedded دعوت شوید بهاحتمالزیاد در مورد تجربه شما با میکروکنترلرهای ARM خصوصاً STM32 سؤال خواهد شد. دلیل این همهگیری را به جرات میتوان عملکرد خوب شرکت ST در تولید میکروکنترلرهای ARM دانست که علاوه بر قیمت مناسب دارای امکانات و تنوع خیلی زیادی نیز هستند.
این همهگیری خاص بازار ایران نیست و خیلی از شرکتهای بینالمللی از میکروکنترلرهای ST در محصولات خود استفاده میکنند، همین امر باعث شده جامعه کاربری این خانواده از میکروکنترلر STM32 فعال باشد و کاربرها پاسخ بیشتر سؤالات و مشکلات را با یک جستجوی ساده در اینترنت پیدا کنند. البته و صد البته که ارائه کتابخانههای نرمافزاری کامل به همراه مثالهای ارزنده نیز در این فراگیری بی تأثیر نبوده است.
مساله مهم دیگری که نیاز میبینم در مورد آن صحبت کنم رایگان بودن این دوره است آموزش جامع میکروکنترلر STM32، به منزله بیکیفیت یا ناقص بودن آن نیست، هدف ما از قراردادن آموزش و مطالب رایگان کسب منفعت مالی نیست که آموزشها را ناقص منتشر کنیم تا بعد بتوانیم پکیج آموزش خودمان را بفروشیم، در واقع هدف ما همافزایی است، یادگرفتن از همدیگر است، برای ساخت این سری آموزشی زمان و هزینه زیادی شده است. امیدوارم که توانسته باشیم گام مثبتی در این راستا برداریم.
پیش نیاز: برای هر دو آموزش STM32، آشنایی با مفاهیم الکترونیک دیجیتال و همچنین آشنایی خوب با زبان برنامهنویسی C الزامی است (در این آموزشها از زبان سی استفاده شده است). همچنین دانستن مفاهیم مدارهای الکترونیکی و دیجیتال به یادگیری بهتر و عمیقتر آموزشها کمک خواهد کرد.
آموزش STM32 با توابع LL
درایورهای کتابخانه LL یا Low Layer، به لایهی سختافزاری نزدیکاند و با استفاده از آنها به طور مستقیم با رجیسترهای میکروکنترلر درگیر میشویم. شاید استفاده از این کتابخانه برای کسانی که آشنایی کمتری از سختافزار دارند، اندکی دشوارتر باشد اما مزیت های زیادی دارد.
آموزش STM32 با توابع HAL
توابع HAL یا Hardware Abstraction Layer همانطور که از نام آن نیز پیداست باهدف انتزاع و دور شدن از لایه سختافزار، توسعه دادهشده است. با استفاده از کتابخانه HAL، زمان و انرژی بیشتر صرف توسعه نرمافزار میشود و درگیری با سختافزار به حداقل میرسد.
میکروکنترلرهای STM32
واژه STM32 به خانوادهای از میکروکنترلرهای 32 بیتی تلقی میشود که برپایه پردازندههای Cortex-M شرکت ARM، و با هدف اراِئه آزادی عمل بالا برای کاربران، طراحی شدهاند. میکروکنترلرهای STM32 مزایایی همچون Performance بسیار بالا، قابلیتهای real-time، پردازش سینگال دیجیتال، عملکرد توان/ولتاژ پایین، Connectiviry را همگی به صورت مجتمع در یک چیپ، به همراه امکاناتی برای توسعه، ارائه میدهند. همچنین این میکروها به دلیل تنوع مدلها، برخورداری از پشتیبانی نرمافزاری و ابزارهای قدرتمند، برای هر نوع کاربردی، از پروژههای کوچک گرفته تا پروژههای صنعتی یا پلتفورمهای end-to-end مناسب هستند.
کاربردهای میکروکنترلرهای خانواده STM32
اشاره شد که میکروکنترلرهای شرکت ST توسط طراحان و تولیدکنندههای مختلف و زیادی استفاده میشود. برخی کاربردهای ملموس این میکروکنترلرها در تجهیزات الکترونیکی لیست زیر است:
- گوشیهای موبایل
- خودروها
- دوربینها
- ماشینهای لباسشویی (و دیگر تجهیزات خانگی)
- سیستمهای امنیتی و هشدار دهنده
پیش از معرفی آموزش STM32 سیسوگ، میخواهیم در مورد معماری پردازنده بهکاررفته در این میکروکنترلرها، یعنی Arm Cortex-M، صحبت کوتاهی بکنیم.
پردازندههای سری Arm Cortex-M
پردازندههای Cortex-M، گروهی از هستههای پردازشی هستند که برای بهینگی مصرف توان و انجام عملیات قطعی طراحیشدهاند. این پردازندهها به دلیل ویژگیهایی که دارند بهطور گسترده در میکروکنترلرها (MCU) و همچنین بهصورت چندهستهای در ریزپردازندهها (MPU) بهکار میروند.
همانطور که پیشتر گفته شد، مدلهای مختلف میکروکنترلرهای STM32 ویژگیهای متفاوتی دارند و برای کاربردهای خاصی مناسباند. اصلیترین دلیل این تفاوت این است که هر گروه از این میکروکنترلرها از مدل مشخصی از پردازندههای سری Cortex-M استفاده میکند، و خود این پردازندهها تفاوتهای عمدهای دارند. به این صورت که Cortex-M3 مدلهای اولیه هستند که قدرت پردازشی قابل قبولی دارند و ازنظر قیمت نیز اقتصادی هستند، مدل Cortex-M0 (و نمونه جدیدتر آنها یعنی +Cortex-M0) برای کممصرف بودن بهینهشدهاند، ازنظر Performance و توان پردازشی Cortex-M7 سرآمد است. Cortex-M4 برای کاربردهای real-time و Cortex-M33 برای کاربردهای امنیتی مناسب هستند.
معماری Arm Cortex-M درواقع یک معماری استاندارد برای میکروکنترلرهای 32 بیتی است که جایگزین مناسبی نیز برای معماریهای میکروکنترلرهای 8 بیتی و 16 بیتی محسوب میشود. در این معماری، ویژگیهای اصلی و ساختاری پردازنده در تمام مدلها مشابه است که از مزیتهای اصلی این امر میتوان به موارد زیر اشاره کرد:
- امکان انتقال بسیار راحت کد نوشتهشده برای یک سری میکروکنترلر به سری دیگر با توجه به نیازهای پروژه (مثل توان پردازشی، مصرف انرژی، امنیت و دستگاههای جانبی).
- امکان انتخاب میان تولیدکنندههای بسیار زیاد و متنوع چیپ، ابزارهای سختافزاری و همچنین نرمافزارها.
- سرعت بخشیدن به توسعه و خلاقیت در زمینههای Embedded.
شرکت STMicroelectronics جزء اولین شرکتهایی است که از هستههای پردازشی Arm Cotex-M در محصولات خود استفاده میکند و با ارائه بزرگترین طیف موجود از میکروکنترلرهای 32 بیتی Cortex-M، در بازار میکروکنترلرها پیشتاز است.
منبع:سیسوگ