معرفی برد های توسعه ی ( STM)
خیلی از افراد خاطره ی مشترکی در اولین برنامه نویسی الکترونیک خود با آردوینو دارند. اما پس از مدتی ادامه دادن کار با Arduino متوجه میشویم که یک CPU هشت بیتی و یک کلاک آهسته به اندازه کافی برای پروژه ها مناسب نیست. در این مطلب درباره ی برد هایی صحبت میکنیم که با آن ها می توانیم برد ها آردوینو را توسعه بدهیم.
علاوه بر بردهای آشنای آردوینو، گزینه های دیگری نیز برای استفاده در پروژه های الکترونیکی وجود دارد، از جمله این گزینه ها استفاده از میکروکنترلرهای STM میباشد. میکروکنترلرهای STM مبتنی بر ساختار ARM هستند و به راحتی و با قیمت بسیار مناسب در دسترس قرار دارند.
معرفی ARM و بردهای STM
شاید واژه (Advanced RISC Machine)ARM برای شما آشنا باشد. ARM نوعی معماری (نه میکروکنترلر) برای ساخت پردازنده های 32 و 64 بیتی است. به دلیل قیمت بسیار مناسب، سرعت بالا و توان مصرفی پایین از این معماری در ساخت پردازنده های سیستم های نهفته (Embedded system) مانند گوشی های تلفن همراه، رسپبری پای، میکروکنترلرها و … بسیار استفاده می شود. میکروکنترلرهایی که با معماری ARM ساخته شده اند، معمولا با نام Cortex-(A,R,M)X عرضه می شوند، A برای سیستم های کاربردی مانند گوشی تلفن همراه، تبلت، سیستم های نهفته (Embedded system) و …، R برای سیستم های زمان واقعی (Real-Time) و M برای سیستم های با مصرف توان پایین است. عدد بعد از این حروف نشانگر تعداد خطوط اجرایی (performance lines) پردازنده است. یکی از شرکت هایی که این معماری را برای ساخت پردازنده های خود انتخاب می کند، شرکت ST است. میکروکنترلرهای این شرکت تحت عنوان STM بعلت تنوع بالا و ارائه کتابخانه های برنامه نویسی کاربردی، بسیار محبوب شده اند.
نام گذاری خانواده های میکروکنترلرهای STM از قاعده زیر پیروی می کند:
- STM32xxaayznn ST: نام شرکت.
- M32: میکروکنترلر 32 بیتی.
- xx: خانواده و کلاس کاری
- aaبه کارایی میکروکنترلر بستگی داشته و الگوریتم خاصی ندارد.
- Y: تعداد پایه ها
- z:حافظه
- nn:پکیج بندی، مهم ترین پکیج ها را در جدول زیر مشاهده می کنید
مزایای استفاده از برد های توسعه
میتوانیم با نرم افزار Arduino، IAR و Keil روی این برد های STM32 برنامه نویسی کنیم.
برد های توسعه STM32
مشهورترین میکروکنترلر خانواده STM، میکروکنترلر 32 بیتی ARM به نام STM32 است .استیام ۳۲ (STM32) خانوادهای از ریزکنترلگرها است که شرکت استیمایکروالکترونیکس آنها را از سال ۲۰۰۷ تولید میکند. این ریزکنترلگرها بر اساس معماری آرمARM طراحی شدهاند و از هستهٔ پردازشی ۳۲ بیتی بهره میبرند .میکروکنترلر ARM خانواده STM32 مبتنی بر Cortex-M است. خانواده STM32 به طور کلی به چهار دسته کلی طبقهبندی میشوند که هر یک بازار خاص خودش را دارد.
این چهار دسته عبارتند از:
- کارایی بالا
- اصلی
- توان بسیار کم
- و بیسیم.
میکروکنترلرهای STM32 امکانات جانبی ارتباطی سریال و موازی را ارائه میدهند که میتوانند با انواع قطعات الکترونیکی از جمله سنسورها، نمایشگرها، دوربینها، موتورها و سایر تجهیزات ارتباط برقرار کنند. هر نوع میکروکنترلر ARM از خانواده STM32 دارای حافظه داخلی فلش و رم هستند. دامنه عملکرد میکروکنترلر ARM خانواده STM32 بسیار گسترده است. برخی از ابتداییترین انواع این خانواده، سری STM32F0 و STM32F1 است که از فرکانس تنها 24 مگاهرتز شروع میشوند و در بستههایی با حداقل 16 پین در دسترس هستند.
از طرف دیگر، میکروکنترلر ARM سری STM32H7 با کارایی بسیار عالی، در بستههایی با حداکثر 240 پین موجود است. این میکروکنترلر، یک میکروکنترلر ARM تک یا دو هستهای است که از یک هسته Cortex- M7 با فرکانس 480 مگاهرتز و یک هسته Cortex-M7 با فرکانس 240 مگاهرتز اضافه برای نسخههای دو هستهای تشکیل شده است. دسته عملکرد بالا، بهترین عملکرد را در اجرای کد و انتقال دادهها ارائه میدهد. مدلهای پیشرفتهتر با واحدهای ممیز شناور (FPU) برای کاربردهای نیازمند پردازش عددی در دسترس هستند. این مدلهای پیشرفته خط بین میکروکنترلر و سرانجام، سری STM32L به طور خاص برای کاربردهای قابل حمل با توان کم (از یک باتری کوچک) طراحی شده است. یک میکروپروسسور را حذف میکنند.
میکروکنترلر STM32F103C8T6 به علت قیمت پایین و در دسترس بودن، برای شروع کار با میکروکنترلرهای STM گزینه مناسبی است. مشخصات کلی این میکروکنترلر به شرح زیر است:
- میکروکنترلر 32 بیتی از خانواده CortexM3
- دارای 64 کیلوبایت حافظه فلش
- دارای 20 کیلوبایت حافظه SRAM
- حداکثر سرعت پردازش 72 مگاهرتز
- دارای 37 پایه GPIO
- دارای 12 کانال PWM
- دارای 10 کانال ADC 12 بیتی
- پشتیبانی از دو واحد I2C و دو واحد SPI و سه واحد UART
- دارای 3 تایمر 16 بیتی
- دارای یک واحد پشتیبانی از پروتکل Can 2.0
- این میکروکنترلر بصورت ماژولار و آماده استفاده در دسترس است.
برد های توسعه ی STM8
میکروکنترلر STM8 یک میکروکنترلر 8 بیتی از خانواده میکروکنترلرهای STM است. با وجود اینکه میکروکنترلرهای STM8 دارای ویژگیهای سختافزاری مناسبی هستند، در بین خانواده STM کمتر موردتوجه قرار میگیرند. در مقایسه با طراحی 32 بیتی ARM، شباهتهای زیادی بین STM32 و STM8 وجود دارد و تنها تفاوتهای جزئی در عملکرد این دو مشاهده میشود. در بیشتر زمینهها، میکروکنترلر STM8 هماهنگی و شباهت زیادی با PICها و AVRها دارد. برخلاف PICها و AVRها که بیشتر در شکل سختافزاری DIP دیده میشوند، STM8 عمدتاً در قالب سختافزاری SMD دیده میشود. تنها تعداد انگشتشماری از این تراشه در بستهبندی DIP وجود دارد. ممکن است یکی از دلایلی که اکثر افراد در صنایع کوچک از این تراشه استفاده نمیکنند نیز همین موضوع باشد؛ چون افراد علاقه دارند در ابتدا بردهای خود را روی بردبورد (breadboard) آزمایش کرده و سپس برد نهایی را تولید کنند. برای حل این موضوع شرکت STM چندین برد را برای شروع به کار فراهم کرده است. برای میکروکنترلر STM8 ابزارهای مختلفی وجود دارد که ممکن است در نگاه اول سخت به نظر آیند. یکی از عوامل اصلی در یادگیری STM8 قیمت است. خوشبختانه این تراشه بسیار ارزان است.امروزه بیش از صدها میکروکنترلر STM8 وجود دارد.
خانواده STM8 را میتوان به 3 دسته طبقهبندی کرد
گروه اول: میکروکنترلرهای STM8S که بهطورکلی میکروکنترلرهای قوی و قابلاطمینانی هستند و میتوانند تقریباً در تمام زمینهها مورداستفاده قرار گیرند. این گروه ارزان و هوشمند نیز هستند.
گروه دوم: خانواده STM8A که بهطور عمده برای صنایع خودرو استفاده میشوند. این گروه با رابطهای سختافزاری اضافی مانند CAN و LIN ارائه شده است که بر طبق اصول صنایع خودروسازی امروز استSTM8A . ها نیز بسیار متنوع هستند و به گونهای طراحی شدهاند که در محیطهای نویز پذیر میتوانند کارایی مناسبی داشته باشند. بهعنوانمثال، STM8Aها میتوانند درجه حرارت بالا (تا بیش از 100 درجه سانتیگراد) را تحمل کنند.
گروه سوم: شامل میکروکنترلرهای STM8L است که برای دستگاههای کممصرف یا با باتری پشتیبان طراحی شدهاند. عملاً آنها در حالت آمادهبهکار (sleep) هیچ توانی مصرف نمیکنند. بنابراین اگر به صرفهجویی در مصرف انرژی یا کاهش انرژی در پروژههای خود نیاز دارید، این گروه انتخاب مناسبی است. همچنین نسخههای کممصرفی برای صنایع خودرو با برچسب STM8AL نیز وجود دارد. جدا از همه اینها، نوعی میکروکنترلر STM8 وجود دارد که بهطور خاص برای برنامههای کاربردی تاچ خازنی طراحی شده است که STM8Ts نامیده میشود.
مزایای میکروکنترلرهای STM8
ویژگیها و مزایای میکروکنترلرهای STM8 بسیار متنوع است و نمیتوان با چند کلمه آنها را بیان کرد. برای مثال: تغذیه STM8s را میتوان با منبع DC سه یا پنج ولت تأمین کرد که میکروکنترلر قادر است این تنظیم را تشخیص دهد. نسخههای کممصرف میتوانند در ولتاژهای بسیار پایینتر از این مقادیر بدون مشکل کار کنند. سایت رسمی STM8 به کاربران اجازه میدهد تا ولتاژ عملیاتی موردنظر خود را انتخاب کنند. تمهیداتی قرار داده شده که این میکروکنترلر را در برابر نویزهای الکترومغناطیسیِ محیطی مقاوم میکند. این میکروکنترلر دارای سیستمی است که قادر است قطع شدن کلاک خارجی را تشخیص داده و بدون توقف در کار خود به کلاک داخلی تغییر وضعیت بدهد.
برد توسعه مدلهای مختلف با کارایی متفاوتی دارد. برای انتخاب نوع مناسب برد توسعه باید بخشهای مختلف پروژه را در نظر گرفت. سپس اقدام به انتخاب و خرید آن کرد.