آموزش کار با میکروکنترلرهای سری STM32 – بخش اول
بخش اول – مقدمه و ابزارهای پیشنهادی برای شروع یادگیری
+ ضمیمه ی شماره (1) – استاندارد نام گذاری میکروکنترلرهای سری STM32
1- مقدمه
معماری آرم
معماری آرم نوعی از معماری و ساختار پردازندههای رایانهای است که به وسیلهٔ شرکت انگلیسی آرم هولدینگز طراحی شده است و بیشتر برای تلفنهای هوشمند ، تبلتها و دستگاههای قابل حمل کاربرد دارد. معماری آرم دستورالعملهای ۳۲ بیتی را پردازش میکند و از دههٔ ۱۹۸۰ میلادی تا به امروز در حال توسعه و گسترش است. شرکت آرم هولدینگز خود تولیدکننده پردازندهها نیست و گواهینامهٔ بهکارگیری از معماری آرم را به تولید کنندگان نیمههادی میفروشد. کمپانیها نیز به راحتی تراشه های خود را براساس معماری آرم تولید میکنند.
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 بنا نهاده است که از هسته ی پردازشی 32 بیتی بهره می برند.
میکروکنترارهای STM32 معمولا مبتنی بر سری CORTEX-M از معماری ARM بنا نهاده شده اند ، برای مثال سری F4بر مبنای سری Cortex®-M4 از معماری ARM بنا شده است.
شکل (1): نمایش نموداری سری های مختلف میکروکنترلرهای 8 و 32 بیتی شرکت ST – محور عمودی بر اساس نوع کاربرد و محور افقی بر اساس نوع 8 یا 32 بیتی طبقه بندی شده است.
Automotive:معمولا برای کاربرد در صنعت اتومبیل بعنوان امکانات پیشرفته از جمله کنترل موتور یا امکانات امنیتی خودرو
Ultra-low-power:برای کاربرد های با توان مصرفی خیلی کم
Mainstream: خط تولید پیش فرض برای کاربرد های عمومی با قابلیت متوسط
High performance :سری های با کارایی و قابلیت های بالا معمولا برای کاربردهای خاص
سری L از این خانواده برای توان های مصرفی خیلی کم و سری F برای کاربردهای عمومی و در برخی موارد (سری های با عدد بیشتر) برای کاربردهای خاص طراحی شده اند.
آموزش حاضر مختصری است ، بخش بندی شده با تلاش بر اینکه بتواند یک سری کامل از آموزش میکروکنترلرهای سری STM32 را ارائه دهد. بدیهی است بازخورد های خوانندگان در هر بخش ، کمک شایانی برای بهبود بخش های آینده خواهد بود.
شروع کار …
برای شروع یادگیری ابتدا شما باید ابزارهایی را تهیه کنید تا بتوانید حداکثر استفاده از این سری آموزشی را داشته باشید ، در ادامه با این ابزارها آشنا خواهید شد.
2- ابزار های پیشنهادی برای شروع یادگیری
در این بخش سعی شده تا بروزترین ، متداول ترین و در دسترس ترین ابزارهای مورد نیاز برای شروع یک یادگیری موفق برای شما فراهم آورده شود.
1-2- ابزارهای نرم افزاری
نرم افزار “STM32CubeMX”
از این برنامه می توانید جهت پیکره بندی واحدهای مختلف میکروکنترلر در یک محیط گرافیکی استفاده کنید. این برنامه روند برنامه نویسی را سریعتر و آسانتر می کند. پوشش سراسری تمام میکروکنترلرهای سری STM32 از دیگر نقاط قوت این نرم افزار به شمار می رود. کیوب ، کدهای خود را بر مبنای دو کتابخانه ی نرم افزاری جدید HAL و LL تولید خواهد می کند.
کتابخانه “HAL”
کتابخانه ی نرم افزاری جدید ، قدرتمند و کامل شرکت ST با پوشش سراسری تمام میکروکنترلرهای 32 بیتی این شرکت می باشد. این کتابخانه یک لایه نرم افزاری است که با در اختیار دادن توابع متعدد و متنوع برای راحتی برنامه نویسان ارائه شده است. با این کتابخانه شما تجربه ی یک برنامه نویسی با توابع بروز را خواهد داشت.
نرم افزار “Keil UV5”
از محبوب ترین محیط های توسعه ی مجتمع یا همان محیط برنامه نویسی زبان C برای میکروکنترلرهای مبتنی بر ARM می باشد که شما در آن می توانید اقدام به برنامه نویسی کنید. پشتیبانی و سازگاری این IDE (Integrated Development Environment) از اکثر پروگرمرهای محبوب و رایج مانند J-Link در مراحل پروگرم کردن و عیب یابی سخت افزاری ، شما را شگفت زده خواهد کرد.
2-2- ابزارهای سخت افزاری
برد آموزشی Catalyst F400
این برد در واقع شما را از تمام دردسرهای مربوط به مونتاژ ، سیم بندی و اتصالات سخت افزاری میکروکنترلر رها ساخته و با در برداشتن اکثر پروتکل ها و توابع سخت افزاری استاندارد و پر کاربرد ، امکان آموزش کار با این امکانات محبوب را نیز فراهم کرده است. میکروکنترلر بکار رفته در این برد “STM32F407ZGT6” می باشد که معیار ما در ادامه ی آموزش ها خواهد بود.
پروگرمر – دیباگر “J-Link”
پروگرمر رایج و محبوب شرکت SEGGER که امکان یک پروگرم حرفه ای را در اختیار شما خواهد گذاشت. مضاف بر این ، پروگرمر حاضر امکان دیباگ سخت افزاری را نیز فراهم می کند ، این امکان بسیار ارزشمند است چرا که بواسطه ی آن شما می توانید بصورت گام به گام یا کلی ، برنامه ی خود را روی برد کاتالیست اجرا کرده و نتیجه ی کار خود را در محیط واقعی مشاهده و عیب یابی کنید.
* همچنین شما می توانید بدون تهیه ی این پروگرمر ، میکرو خود را از روش بوت لودر ISP که امکان این امر روی برد کاتالیست فراهم شده است پروگرم کنید ، البته ناگفته نماند که در این صورت از امکان دیباگ سخت افزاری که در J-Link وجود دارد محروم خواهید شد.
ضمیمه ی شماره (1) – استاندارد نام گذاری میکروکنترلرهای سری STM32
مثال: STM32F407ZGT6
* در بخش بعدی خواهید خواند …
بخش دوم – آشنایی اجمالی با محیط نرم افزار STM32CubeMX