آموزش کار با میکروکنترلرهای سری STM32 بخش دوم
بخش دوم – آشنایی اجمالی با محیط نرمافزار STM32CubeMX
+ ضمیمهی شماره (2) – راهنمای دانلود و نصب نرمافزار STM32CubeMX و پکهای آن
مقدمه
همانطور که در بخش قبل معرفی شد ، نرمافزار STM32CubeMX نوآوری شرکت ST در راستای شیءگرا کردن عملیات پیکرهبندی واحدهای داخلی و جانبی میکروکنترلرهای STM32 میباشد که هدف آن سادهتر کردن مراحل برنامهنویسی تا حد ممکن است.
در این بخش سعی بر آن است که محیط این نرمافزار بصورت خلاصه در معرض معرفی قرار گیرد. در پایان نیز راهنمای دانلود و نصب نرمافزار STM32CubeMX و پکهای آن در قالب یک ضمیمه ارائه خواهد شد.
معرفی
STM32CubeMX بخشی از پروژهی STMCube میباشد که هم اکنون در دو حالت مستقل (Standalone) – نرمافزار کنونی – و پلاگین برای محیطهای توسعهی مجتمع (IDE) در دسترس است. STMCube راحتی توسعه دهندگان را از طریق کاهش چالشهای توسعه مانند هزینه و زمان فراهم میکند.
در شکل زیر جریان عملکرد نرمافزار STM32CubeMX در قالب تصویر بیان شده است ، نرمافزار اطلاعات پایه مانند دیتاشیت و ساختار سختافزاری که در پایگاه داده خود گنجانده را در قالب محیط گرافیکی به کاربر ترجمه میکند و پس از اتمام تنظیمات کاربر ، تنظیمات را در قالب پروژهی C تولید میکند.
برخی از ویژگیهای STM32CubeMX
- – انتخاب آسان میکروکنترلر با پوشش کامل میکروکنترلرهای سری STM32
- – انتخاب بردهای آموزشی و توسعه از لیست موجود در برنامه
- – پیکرهبندی آسان میکروکنترلر (پینها ، ساختار کلاک ، واحدهای جانبی) و تولید فایل سورس متناظر آن
- – تعویض میکروکنترلر موجود در پروژه با همان تنظیمات
- – صادر کردن آسان تنظیمات جاری به یک میکروکنترلر سازگار دیگر
- – تولید تمام فایلهای پروژه C به همراه درایورهای STM32HAL برای IDEهای محبوب و رایج
- – محاسبهی توان مصرفی بر مبنای برنامهی تعریف شده توسط کاربر
- – Self-Update که به کاربر اجازه میدهد تا نرمافزار خود را بهروز نگه دارد
- – امکان دانلود پکهای سختافزاری سریهای مختلف از داخل برنامه
- – تولید گزارش تمامی تنظیمات در قالب فایلهای csv و pdf
- – ایجاد کدهای کاربر به همراه فایلهای تولید شده
- – در طول عملیات پیکرهبندی تمام تنظیمات غیرمجاز و متناقض بصورت هوشمندانه و Real-time شناسایی شده و در قالب آیکونها یا پیغامهای معنیدار مشخص میشوند
Welcome Page
اولین صفحهای که پس از اجرای برنامه با آن روبرو خواهید شد ، صفحهی زیر میباشد.
[1] با کلیک بر روی این قسمت پنجرهی New Project جهت ایجاد یک پروژهی جدید باز خواهد شد [2] با کلیک بر روی این قسمت میتوانید پروژههایی را که قبلا ذخیره کردهاید بارگذاری کنید [3] با کلیک بر روی این قسمت شما به یک فایل راهنمای کامل نرمافزار در قالب pdf دسترسی پیدا خواهید کرد
New Project Window
با کلیک روی New Project در Welcome Page پنجرهی زیر ظاهر خواهد شد.
در تب MCU Selector شما میتوانید میکروکنترلر پروژهی خود را انتخاب کنید ، برای این کار کیوب به شما فیلترهای قدرتمند و کاملی ارائه داده است (شکل زیر سمت چپ) تا بتوانید یک انتخاب دقیق ، مقرون به صرفه و متناسب با پروژهی خود را داشته باشید.
[1] این قسمت فیلترهای متنوعی در اختیار شما قرار میدهد تا بتوانید میکروی مورد نظر خود را با توجه به معیارهای خودتان پیدا کنیدفیلتر Core: بر اساس نوع معماری ARM
فیلتر Serie: بر اساس سری کلی
فیلتر Line: بر اساس سری جزئی
فیلتر Package: بر اساس پکیج فیزیکی میکروکنترلر
فیلتر Advanced Choice: تعیین بازههای قیمت ، میزان حافظهی Eeprom , Flash , Ram ، فرکانس کاری و …
فیلتر Peripheral Choice: بر اساس امکانات جانبی مورد نیاز و تعداد آنها
[2] این پوشباتون تمامی فیلترهایی را که اعمال کرده اید حذف میکند [3] پس از اینکه شما فیلترهایی را برای پیدا کردن میکروی خود با مشخصات دلخواهتان در قسمت [1] اعمال کردید ، میکروهای متناسب با فیلترهای شما در این لیست نمایش داده خواهند شد ، نهایتا با دابل کلیک روی میکروی انتخاب شده در این لیست یا کلیک روی پوشباتون [9] پروژهی شما شروع خواهد شدهمچنین مشاهدهی مشخصات دقیقتر از جمله میزان حافظهی Flash و RAM ، فرکانس کاری ، تعداد ورودی/خروجی ، نوع پکیج و … در این لیست مقدور میباشد
[4] با کلیک بر روی این پوشباتون علاوه بر میکروهای پیدا شدهی متناسب با فیلترهای اعمال شده ، میکروهای نزدیک به فیلترهای شما نیز نمایش داده خواهند شد [5] تعداد میکروهای شناسایی شده با فیلترهایی که اعمال کردهاید [6] با کلیک بر روی این پوشباتون خلاصه مشخصات میکروکنترلر انتخاب شده در لیست [3] در ناحیهی [10] نمایش داده خواهد شد [7] پوشباتونهایی برای نمایش بلوک دیاگرام ، دیتاشیت و لیست فایلهای راهنمای مرجع [8] این پوشباتون شما را به صفحهی اینترنتی خرید میکروی انتخاب شده هدایت خواهد کرد [9] با کلیک روی این پوشباتون پروژهی شما بر مبنای میکروی انتخاب شده در لیست [3] شروع خواهد شد [10] نمایش خلاصه مشخصات میکروکنترلر انتخاب شده در لیست [3] در صورتی که پوشباتون [6] زده شود [11] این برچسب نشان میدهد که میکروی انتخاب شده در انبار شرکت ST جهت فروش موجود میباشد [12] این قسمت قیمت فروش میکروی انتخاب شده را نشان میدهد ، بدیهی است که این پارامتر – همچون سایر پارامترها – نیز همیشه ثابت نخواهد بود و احتمال دارد در زمانهایی که شما آنلاین هستید تغییر کند [13] پکیج فیزیکی میکروی انتخاب شده را نشان میدهد [14] این قسمت ویژگیهای شاخص میکروکنترلر را نشان میدهد
در صورتی که شما از یک برد آموزشی یا توسعه برای پروژهی خود استفاده میکنید ، میتوانید از تب Board Selector اقدام به شروع پروژهی خود کنید. برای این منظور در New Project Window بجای این که از تب MCU Selector استفاده کنید به تب Board Selector بروید.
[1] فیلتر کردن برد بر مبنای فروشندهی برد ، نوع برد (آموزشی ، توسعه ، …) و سری میکروکنترلر بکار رفته در برد [2] اگر این چکباکس تیک داشته باشد ، پروژه در حالتی شروع خواهد شد که تمامی تنظیمات پیشفرض امکانات جانبی برد اعمال شده است در غیر این صورت امکانات جانبی بدون تنظیمات پیشفرض خواهند بود [3] در این قسمت میتوانید لیست بردها را بر مبنای امکاناتی که لازم دارید روی برد باشند فیلتر کنید [4] لیست بردهایی را نشان می دهد که از دو فیلتر بیان شده در بخشهای [1] و [3] گذشتهاند ، با دابلکلیک روی برد انتخاب شده در این لیست پروژهی متناظر آن شروع خواهد شد [5] این پوشباتون قسمت شکل برد و توضیحات آن را آشکار و مخفی میکند [6] شکل فیزیکی برد انتخاب شده از لیست [7] توضیحات برد انتخاب شده از لیست [8] راهنمای استفاده از برد در قالب فایل pdf [9] انتقال به صفحهی اینترنتی خرید برد
محیط پروژه
– تب Pinout
این تب دارای دو قسمت اصلی نقشهی پینها (سمت راست) و لیست امکانات جانبی (سمت چپ) می باشد.
در قسمت نقشهی پینها ، نوع سیگنال پینها (ورودی ، خروجی ، توابع ثانویه …) و در قسمت امکانات جانبی ، توابع سختافزاری لازم را تعیین میکنید.
[1] به این قسمت Chip View می گویند که در آن شما میتوانید نقشهی گرافیکی پینهای میکرو را مشاهده و سیگنال (وظیفهی) هر کدام را تعیین و ویرایش کنید [2] به این قسمت IP Tree Pane گفته میشود ، در این قسمت امکانات و واحدهای جانبی و داخلی میکرو تعیین میگردند [3] به هر کدام از اینها یک IP میگویند [4]اگر IP تعریف شده باشد اما حداقل یکی از مدهای دیگر آن در دسترس نباشد به این وضعیت نمایش داده خواهد شد [5] اگر IP تعریف نشده باشد و تمامی مدهای دیگر آن نیز در دسترس باشند به این وضعیت نمایش داده خواهد شد [6] اگر IP تعریف نشده باشد و تمامی مدهای دیگر آن نیز در دسترس نباشند به این وضعیت نمایش داده خواهد شد [7] اگر IP تعریف شده باشد و تمامی مدهای دیگر آن نیز در دسترس باشند به این وضعیت نمایش داده خواهد شد [8] اگر IP تعریف نشده باشد و حداقل یکی از مدهای دیگر آن در دسترس نباشد به این وضعیت نمایش داده خواهد شد ، مثلا در اینجا مد کاری SMBus-Alert-mode از I2Cی سوم میکرو در دسترس نیست [9] منوی Project:Generate Code با انتخاب این گزینه پروژهی کد متناسب با تنظیمات شما تولید خواهد شد (چنانچه قبل از این کار تنظیمات پروژهی کیوب را انجام نداده باشید بطور خودکار ابتدا به آن قسمت هدایت خواهید شد)
:Generate Report با انتخاب این گزینه گزارش تمامی تنظیماتی که در کیوب انجام دادهاید در قالب یک فایل pdf صادر میشود (چنانچه قبل از این کار تنظیمات پروژهی کیوب را انجام نداده باشید برنامه از شما خواهد خواست که ابتدا تنظیمات پروژهی کیوب را انجام دهید)
:Settings … با انتخاب این گزینه شما به پنجرهی Project Settings جهت انجام تنظیمات کلی پروژه هدایت خواهید شد
[A] تعیین نام پروژه [B] تعیین دایرکتوری پروژه [C] در این قسمت تعیین میکنید که پیکرهبندیهای شما در قالب کدام IDE تولید شودپس از انجام تنظیمات با کلیک روی پوشباتون Ok پروژهی کامل کد متناظر با تنظیمات شما تولید خواهد شد.
* سایر تنظیمات مربوط به این قسمت در بخشهای آتی به صورت کامل شرح داده خواهد شد.
[10] منوی Pinout: این منو فقط برای تب Pinout در دسترس است [E] با کلیک بر روی این گزینه تنظیمات تمامی پینها بصورت یکجا حذف میشود ، همهی پینها بغیر از پینهای تغذیه ، بوت و ریست خاکستری رنگ (حالت پیشفرض – پین بدون وظیفه) میشوند [F] این گزینه تمامی پینهایی را که به رنگ نارنجی (بیانگر پیکرهبندی ناقص یک واحد) هستند و سوزن ندارند را به حالت خاکستری (حالت پیشفرض – پین بدون وظیفه) در میآورد [G] با استفاده از این ابزار میتوانید بصورت دستهجمعی و یکجا اقدام به الصاق وظیفه به تمامی پینهای استفاده نشده (بدون وظیفه) کنید برای مثال تمامی پینهای خاکستری را یکجا خروجی یا ورودی کنید [H] با استفاده از این ابزار میتوان بصورت دستهجمعی و یکجا اقدام به حذف وظیفه پینهایی که در حالت GPIO (ورودی ، خروجی) تعریف شدهاند کرد [I] این گزینه گزارش تنظیمات تمامی پینها را در قالب یک فایل جدولبندی شده (csv) صادر میکند [J] با کلیک بر روی این گزینه لیست میکروهای سازگار با میکروی موجود در پروژهی شما نمایش داده میشود و شما میتوانید به راحتی میکروی پروژهی خود را با یک میکروی کاملا همساز تعویض کنید (مثلا برای زمانی که میخواهید بدنبال یک میکروی ارزانتر با قابلیتهای یکسان بگردید)
موارد نشان داده شده با سبز پر رنگ نشان دهندهی سازگاری کامل (به راحتی میتوانید میکروی خود را با این موارد تعویض کنید) ، سبز کم رنگ نشان دهندهی سازگاری متوسط با همخوانی سخت افزاری است ، با اعمال تغییرات جزئی که شرح آنها با نگه داشتن اشارهگر ماوس روی میکروهای مورد نظر بصورت Tooltip قابل مشاهده است میتوانید میکروی خود را با این موارد نیز تعویض کنید ، رنگ زرد نشان دهندهی سازگاری کم با نیاز به تغییرات سخت افزاری است که در این موارد نیز تغییرات لازم بواسطهی Tooltip قابل مشاهده است
[K] این قسمت تمامی پینها را در یک پنجرهی کوچک بصورت یک لیست نشان میدهد که دو ستون برچسب گذاری و سوزن گذاری در آن قابل ویرایش هستند
[L] با ابزارهای این قسمت میتوانید IPها را به حالت جمع شده و باز شده در آورید یا تمامی تنظیمات آنها را یکجا حذف کنید [M] با ابزارهای این قسمت میتوانید روی شکل میکرو در Chip View از بابت zoom مانور دهید [N] با ابزارهای این قسمت میتوانید شکل میکرو را در Chip View بصورت ساعتگرد ، برعکس ، عمودی و افقی بچرخانید
[11] یکی از قابلیتهای میکروکنترلرهای STM32 قابلیت remap میباشد ، این قابلیت به شما اجازه خواهد داد که جای پینهای برخی توابع خارجی را تغییر دهید یعنی مثلا اگر پینهای مورد نیاز برای پیکرهبندی واحد I2C قبلا برای کابرد دیگری رزرو شده باشد اگر این چکباکس تیک نداشته باشد کیوب (در صورت امکان) هوشمندانه از پینهای دیگری برای این کار استفاده خواهد کرد اما برای زمانهایی که ما از یک برد آموزشی یا توسعهی مونتاژ شده که محل توابع خروجی آن ثابت است استفاده میکنیم نباید به برنامه اجازه دهیم که توابع پینها را بصورت خودکار تغییر دهد و حتما باید این چکباکس تیک داشته باشد برای مثال اگر فرض کنیم شما از برد کاتالیست استفاده میکنید از آنجایی که پینهایی از کانکتور SD Memory که به میکرو وصلاند مونتاژ شدهاند ، دیگر نرمافزار اجازه ندارد بصورت خودکار محل اتصال واحد SDIO را که به کانکتور SD Memory وصل است تغییر دهد. در صورت عدم رعایت این مسئله ، هنگام اجرای کد روی برد کاتالیست ، کدهای نوشته شدهی مربوط به آن قسمت درست عمل نخواهند کرد [12] از این تکستباکس میتوانید برای پیدا کردن سریع پین مورد نظرتان روی میکرو استفاده کنید [13] اگر این چکباکس تیک داشته باشد برچسبهایی را که روی پینها نوشتهاید در نقشهی پینها نمایان خواهند شد [14] پینهای Boot و Reset به رنگ زرد خاکی هستند و امکان تغییر تنظیمات آنها وجود ندارد [15] با سوزن کردن یک پین به نرمافزار اعلام میکنیم که این پین را در عملیات remap خودکار شرکت ندهد [16] پینهای تغذیه به رنگ زرد هستند و امکان تغییر تنظیمات آنها وجود ندارد [17] پینهایی که تنظیم شدهاند اما واحد جانبی مربوط به آنها هنوز بطور کامل تنظیم نشدهاند به رنگ نارنجی نمایش داده خواهند شد [18] برچسبهایی که کاربر بر روی پینها چسبانده به این شکل نمایش داده میشوند ، البته مشروط بر اینکه چکباکس [13] تیک داشته باشد [19] پینهایی که بدون مشکل تنظیم شدهاند به رنگ سبز نشان داده خواهند شد [20] پینهایی که تنظیم نشدهاند
– تب Clock Configuration
این تب ساختار کامل سیستم کلاک میکروکنترلر را بصورت گرافیکی نمایش میدهد ، همچنین برنامه بصورت اتوماتیک و هوشمندانه شما را در انجام تنظیمات کلاک کمک خواهد کرد.
– تب Configuration
در این تب شما تنظیمات مربوط به واحدهای جانبی تعریف شده را انجام میدهید.
– تب Power Consumption Calculator
در این تب شما میتوانید توان مصرفی میکروکنترلر را با توجه به واحدهای داخلی و جانبی استفاده شده در پروژه محاسبه کنید. همچنین میتوانید طول عمر باتری منبع را برای مواقعی که سیستم شما با باتری تغذیه میشود محاسبه کنید.
ضمیمهی شماره (2) – راهنمای دانلود و نصب نرمافزار STM32CubeMX و پکهای آن
راهنمای دانلود و نصب نرم افزار STM32CubeMX
دانلود نرم افزار
برای دانلود این نرم افزار ابتدا به اینترنت وصل شده و سپس به آدرس زیر بروید:
http://www.st.com/en/development-tools/stm32cubemx.html
در صفحه ی باز شده روی قسمت مشخص شده در شکل زیر کلیک کنید:
با این کار شما بصورت خودکار به قسمت نشان داده شده در شکل زیر هدایت خواهید شد:
روی قسمت مشخص شده در شکل بالا کلیک کنید.
و در ادامه مطابق شکل زیر عمل کنید:
در مرحله ی بعد (شکل زیر) چنانچه شما یک حساب کاربری در سایت st.com داشته باشید روی قسمت [A] کلیک کنید – در این حالت پس از هدایت شدن شما به صفحه ی Login و وارد شدنتان به حساب خود ، دانلود نرم افزار بصورت اتوماتیک شروع خواهد شد – در غیر اینصورت ابتدا فرم [B] را پر کرده و سپس روی دکمه ی Download کلیک کنید.
نصب نرم افزار
ابتدا فایل نصب را اجرا کنید:
چنانچه با پنجره زیر مواجه شدید باید نرم افزار Java Standard Edition Runtime Environment v7u45 را تهیه و نصب کنید.
مطابق شکل های زیر عمل کنید (کادر قرمز رنگ را دنبال کنید):
تا اینجا نصب برنامه ی STM32CubeMX به اتمام رسید ، اما شما برای استفاده از هر سری از خانواده میکروکنترلر هایST باید پک آن سری را نیز تهیه و نصب نمایید در غیر این صورت کیوب قادر به ساخت تمام فایل های پروژه ی کد نخواهد بود.
پس در ادامه:
راهنمای دانلود ، نصب و حذف پک های نرم افزار STM32CubeMX
دو روش برای دانلود و نصب پک وجود دارد:
1- دانلود و نصب پک بصورت خودکار
2- دانلود و نصب پک بصورت دستی
دانلود و نصب پک بصورت خودکار
به اینترنت وصل شده ، سپس وارد برنامه شوید و روی قسمت مشخص شده در شکل زیر کلیک کنید:
مطابق شکل زیر در پنجره ی باز شده آخرین ورژن از پک مورد نظر خود را پیدا کرده و آن را انتخاب کنید. سپس روی دکمه ی Install Now در پایین پنجره کلیک کنید. بعنوان مثال پک مورد نظر ما برای نصب ، پک سری F1 می باشد:
پک مورد نظر بصورت خودکار دانلود و نصب خواهد شد.
دانلود و نصب پک بصورت دستی
– مشابه قسمت دانلود نرم افزار کیوب – برای دانلود پک مورد نظر ابتدا به اینترنت وصل شده و سپس به آدرس زیر بروید:
http://www.st.com/en/development-tools/stm32cubemx.html
در صفحه ی باز شده روی قسمت مشخص شده در شکل زیر کلیک کنید:
با این کار شما بصورت خودکار به قسمت Embedded Software هدایت خواهید شد در این قسمت پک مورد نظر خود را پیدا کرده و سپس بر روی دکمه ی مقابل آن کلیک کنید ، به عنوان مثال در شکل زیر ما قصد دانلود پک برای سری F1 را داریم. در ادامه – مشابه قسمت دانلود نرم افزار کیوب – پس از سپری کردن مراحل ورود به حساب کاربری یا تکمیل فرم مشخصات ، دانلود پک شروع خواهد شد.
برای نصب دستی پک دانلود شده وارد برنامه شوید و سپس به منوی Help -> Install New Libraries بروید.
مطابق شکل زیر در پنجره ی باز شده آخرین ورژن از پک مورد نظر خود را پیدا کرده و آن را انتخاب کنید. سپس روی دکمه ی From Local … در پایین پنجره کلیک کنید. بعنوان مثال پک مورد نظر ما برای نصب ، پک سری F1 می باشد:
در پنجره ی باز شده فایلی را که دانلود کرده اید انتخاب کنید و سپس روی Open کلیک کنید:
در صورتی که پک انتخابی مورد تایید نرم افزار باشد ، بصورت اتوماتیک نصب خواهد شد.
حذف پک
چنانچه – به هر دلیلی – خواستار حذف پک هستید ، دوباره به منوی Help -> Install New Libraries بروید و در پنجره ی باز شده مطابق شکل های زیر عمل کنید (برای مثال پک مورد نظر برای حذف در شکل زیر ، پک F1 می باشد):
نهایتا پک مورد نظر حذف خواهد شد.
* در بخش بعدی خواهید خواند …
بخش سوم – پروژه (1) – راه اندازی واحد GPIO