در ادامه آموزش های اصفهان درایو قصد داریم یک ویژگی پر کاربرد نرم افزار Keil رو به منظور trace کردن متغیرهای خودمون به صورت زمان واقعی(Real Time) با میکروکنترلر STM32 با هم بررسی کنیم.
بسیاری از موارد هست که مثلا ممکنه شما قصد داشته باشین یک داده ای رو از طریق واحد ADC قرائت بکنین و بررسی بکنین که سینگال دریافتی دارای نویز هست یا خیر.
بعد از بررسی این مسئله، خصوصا در کاربردهای کنترل موتور و به منظور قرائت جریان ممکن هست شما بخواین جریان قرائت شده توسط ADC رو فیلتر کنین و بررسی کنین که این فیلتر چقدر کارآمده! تو چنین مواردی هست که این ویژگی میتونه به کمک ما بیاد. البته که واضحه این قضیه میتونه برای موارد دیگه ای هم استفاده بشه و کار ما رو راه بندازه!
برای فعال کردن حالت trace به صورت زمان واقعی نیازی به انجام کارهای پیچیده نیست! ما در این آموزش از میکروکنترلر STM32F103VET6 برای بررسی این موضوع استفاده میکنیم. در نرم افزار stm32cubemx با فعال کردن کریستال خارجی و تنظیم فرکانس میکرو روی 72MHz کار ما تموم خواهد شد.
تنها مسئله ای که باید در نظر گرفته بشه، انتخاب پایه ی اختصاصی میکرو برای استفاده از قابلیت Serial Wire Viewer(SWV) هست. به همین منظور شما به سادگی در قسمت جستجوی پین ها میتونین SWO رو وارد کنین و بعد از پیدا کردن این پایه گزینه مناسب رو براش فعال کنید.
در نهایت ما میتونیم بدون انجام تنظیمات دیگه ای، پروژه رو تولید کنیم.
نکته بسیار مهم: برای این که بتونیم از SWV استفاده کنیم لازم هست پایه ی SWO از پروگرامر ST-LINK خودمون رو به پایه ی مربوطه در میکروکنترلر متصل کنیم. در غیر این صورت این ویژگی در دسترس ما نخواهد بود!
برای این هدف پیشنهاد ما استفاده از پروگرامر ST-LINK V2.1 اصفهان درایو هست که ویژگی های بسیار جالبی رو در عین سادگی و سهولت دسترسی به پایه های مختلف اون در اختیار شما قرار میده که میتونین با مراجعه به صفحه این محصول اون رو مطالعه کنین.
پروگرامر ST-LINK V2.1 اصفهان درایو
تنظیم کلاک میکرو به 72 مگاهرتز
انتخاب پایه ی PB3 به عنوان TRACESWO
در برنامه ی نوشته شده، متغیر i با یک تاخیر زمانی بین هر بار افزایش یا کاهش، صرفا قراره 50 بار با گام یک افزایش پیدا کنه و سپس به همین مقدار هم کاهش پیدا کنه، بنابراین قصد داریم یک شکل موج مثلثی به ساده ترین شکل ممکن ایجاد کنیم.
سورس کد
حالا نوبت به این میرسه که تنظیمات مورد نیاز برای فعال کردن SWV رو در نرم افزار KEIL انجام بدیم. با کلیک راست کردن روی اسم پروژه و انتخاب گزینه Options for target صفحه زیر برای ما باز میشه:
منوی options for target
حالا طبق تصاویر، گام های مورد نیاز رو طی میکنیم:
توجه داشته باشید که در سربرگ trace حتما مقدار Core Clock روی فرکانس میکرو باید تنظیم شه!
حالا با بردن برنامه به حالت دیباگ و انتخاب سربرگ VIEW، میتونیم logic analyzer رو فعال کنیم:
حالا باید از طریق گزینه setup متغیر i رو طبق تصویر به logic analyzer اضافه کنیم و مقدار ماکسیمم رو با توجه به نهایت مقدار i روی عدد مناسبی تنظیم کنیم:
نتیجه اجرای برنامه
logic analyzer دارای ویژگی های جالبی من جمله اندازه گیری فرکانس و زمان سپری شده بین دو نقطه که توسط ما انتخاب میشه رو داره. بررسی این ویژگی ها به سادگی با کمی کنکاش با این ابزار برای شما مشخص میشه و این بحث خارح از دامنه ی این آموزش قرار میگیره.
دانلود پروژه
امیدواریم که از این آموزش استفاده برده باشید!
با سایر آموزش های اصفهان درایو همراه باشید!