بخش اول – مقدمه و ابزارهای پیشنهادی برای شروع یادگیری

+ ضمیمه ی شماره (۱) – استاندارد نام گذاری میکروکنترلرهای سری STM32

۱- مقدمه

معماری آرم

معماری آرم نوعی از معماری و ساختار پردازنده‌های رایانه‌ای است که به ‌وسیلهٔ شرکت انگلیسی آرم هولدینگز طراحی شده ‌است و بیش‌تر برای تلفن‌های هوشمند ، تبلت‌ها و دستگاه‌های قابل‌ حمل کاربرد دارد. معماری آرم دستورالعمل‌های ۳۲ بیتی را پردازش می‌کند و از دههٔ ۱۹۸۰ میلادی تا به امروز در حال توسعه و گسترش است. شرکت آرم هولدینگز خود تولیدکننده پردازنده‌ها نیست و گواهی‌نامهٔ به‌کارگیری از معماری آرم را به تولید کنندگان نیمه‌هادی می‌فروشد. کمپانی‌ها نیز به راحتی تراشه‌ های خود را براساس معماری آرم تولید می‌کنند.

ARM مخفف Advanced RISC Machine است و از آنجایی که این معماری براساس طراحی RISC بنا شده ، هسته اصلی CPU تنها نیاز به حدود ۳۵ هزار ترانزیستور دارد و این باعث می ‌شود که توان بسیار کمی ‌مصرف کند ، کم ‌تر داغ کند و نیازی به خنک‌کننده یا فن نداشته باشد بر خلاف معماری x86 به‌کار رفته در پردازنده‌های شرکت‌های اینتل و ای‌ام‌دی که براساس CISC طراحی شده‌اند و نیازمند میلیون‌ها ترانزیستور هستند و همین مسئله باعث افزایش توان مصرفی و داغ شدن آنان می‌شود.

RISC که مخفف Reduced Instruction Set Computing یا مجموعه دستورهای ساده شده است در واقع نوعی از طراحی CPU است که پایه و اساس آن ، ساده‌ سازی دستورها است که منجر به بازده بالا و سرعت بخشیدن به اجرای دستورها می‌شود. پردازنده‌ ای که براساس این طراحی ساخته می‌شود را RISC می‌نامند. مهمترین و معروفترین معماری که براساس RISC طراحی شده ، ARM است. درست نقطه مقابل RISC ، طراحی دیگری با نام CISC وجود دارد که مخفف Complex Instruction Set Computing یا مجموعه دستورهای پیچیده است و معماری x86 اینتل براساس آن طراحی شده و پردازنده کامپیوترهای رومیزی و لپ‌تاپ‌ها و بسیاری از ابزارهای دیگر از آن بهره می ‌برند.

برخی از نسخه های معماری آرم عبارتند از:

ARMv1 شامل ARM1 32بیتی ، ARMv3 شامل ARM6 , ARM7 32بیتی ، ARMv7E-M شامل ARM Cortex-M4 , ARM Cortex-M7 32بیتی.

یکی از شرکتهای دریافت کننده ی مجوز استفاده از معماری ARM شرکت ST می باشد ، این شرکت خانواده ای از  میکروکنترارهای خود موسوم به STM32 را بر اساس معماری ARM بنا نهاده است که از هسته ی پردازشی ۳۲ بیتی بهره می برند.

میکروکنترارهای STM32 معمولا مبتنی بر سری CORTEX-M از معماری ARM بنا نهاده شده اند ، برای مثال سری  F4بر مبنای سری Cortex®-M4 از معماری ARM بنا شده است.

شکل (۱): نمایش نموداری سری های مختلف میکروکنترلرهای ۸ و ۳۲ بیتی شرکت ST – محور عمودی بر اساس نوع کاربرد و محور افقی بر اساس نوع ۸ یا ۳۲ بیتی طبقه بندی شده است.

Automotive:معمولا برای کاربرد در صنعت اتومبیل بعنوان امکانات پیشرفته از جمله کنترل موتور یا امکانات امنیتی خودرو

Ultra-low-power:برای کاربرد های با توان مصرفی خیلی کم

Mainstream: خط تولید پیش فرض برای کاربرد های عمومی با قابلیت متوسط

High performance :سری های با کارایی و قابلیت های بالا معمولا برای کاربردهای خاص

سری L از این خانواده برای توان های مصرفی خیلی کم و سری F برای کاربردهای عمومی و در برخی موارد (سری های با عدد بیشتر) برای کاربردهای خاص طراحی شده اند.

آموزش حاضر مختصری است ، بخش بندی شده با تلاش بر اینکه بتواند یک سری کامل از آموزش میکروکنترلرهای سری STM32 را ارائه دهد. بدیهی است بازخورد های خوانندگان در هر بخش ، کمک شایانی برای بهبود بخش های آینده خواهد بود.

شروع کار …

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

۲- ابزار های پیشنهادی برای شروع یادگیری

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

۱-۲- ابزارهای نرم افزاری

نرم افزار “STM32CubeMX”

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

کتابخانه “HAL”

کتابخانه ی نرم افزاری جدید ، قدرتمند و کامل شرکت ST با پوشش سراسری تمام میکروکنترلرهای ۳۲ بیتی این شرکت می باشد. این کتابخانه یک لایه نرم افزاری است که با در اختیار دادن توابع متعدد و متنوع برای راحتی برنامه نویسان ارائه شده است. با این کتابخانه شما تجربه ی یک برنامه نویسی با توابع بروز را خواهد داشت.

نرم افزار “Keil UV5”

از محبوب ترین محیط های توسعه ی مجتمع یا همان محیط برنامه نویسی زبان C برای میکروکنترلرهای مبتنی بر ARM می باشد که شما در آن می توانید اقدام به برنامه نویسی کنید. پشتیبانی و سازگاری این IDE (Integrated Development Environment) از اکثر پروگرمرهای محبوب و رایج مانند J-Link در مراحل پروگرم کردن و عیب یابی سخت افزاری ، شما را شگفت زده خواهد کرد.

۲-۲- ابزارهای سخت افزاری

برد آموزشی “Catalyst F400”

این برد در واقع شما را از تمام دردسرهای مربوط به مونتاژ ، سیم بندی و اتصالات سخت افزاری میکروکنترلر رها ساخته و با در برداشتن اکثر پروتکل ها و توابع سخت افزاری استاندارد و پر کاربرد ، امکان آموزش کار با این امکانات محبوب را نیز فراهم کرده است. میکروکنترلر بکار رفته در این برد “STM32F407ZGT6” می باشد که معیار ما در ادامه ی آموزش ها خواهد بود.

پروگرمر – دیباگر “J-Link”

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

* همچنین شما می توانید بدون تهیه ی این پروگرمر ، میکرو خود را از روش بوت لودر ISP که امکان این امر روی برد کاتالیست فراهم شده است پروگرم کنید ، البته ناگفته نماند که در این صورت از امکان دیباگ سخت افزاری که در J-Link وجود دارد محروم خواهید شد.

ضمیمه ی شماره (۱) – استاندارد نام گذاری میکروکنترلرهای سری STM32

مثال: STM32F407ZGT6
* در بخش بعدی خواهید خواند …
بخش دوم – آشنایی اجمالی با محیط نرم افزار STM32CubeMX