GebraBit

استفاده از CubeMX برای پیکربندی منبع کلاک تایمر General Purpose

متن سربرگ خود را وارد کنید

استفاده از CubeMX برای پیکربندی منبع کلاک تایمر General Purpose

  1. خانه
  2. »
  3. میکروکنترلر
  4. »
  5. استفاده از CubeMX برای پیکربندی منبع کلاک تایمر General Purpose

پیکربندی منبع کلاک تایمر general purpose می تواند برای افراد تازه کار یک کابوس باشد . CubeMX  توانسته این فرآیند را ساده کند.

 برای پیکربندی تایمر در حالت External Clock Mode 2  کافی است ETR2 را به عنوان منبع کلاک از نمای Pinout انتخاب کنید:

پس از انتخاب منبع کلاک، می توان فیلتر کلاک خارجی،  polarity و prescaler  را از کادر dialog پیکربندی تایمر تنظیم کرد.

برای پیکربندی تایمر در حالت External Clock Mode 1  ، باید این حالت را از ورودی Slave انتخاب کنیم و سپس منبع تریگر (که در این مورد منبع کلاک ، برای تایمر است) را انتخاب کنیم.

حالات همگام سازی Master/Slave

هنگامی که یک تایمر در حالت master  کار می کند، می تواند تایمر دیگری را که در حالت Slave پیکربندی شده است از طریق یک خط خروجی اختصاصی، به نام خروجی Trigger  (TRGO)، متصل به خطوط اختصاصی داخلی به نام ITR0، ITR1، ITR2 و ITR3 تغذیه (کلاک) کند. تایمر master  هم می تواند به عنوان منبع کلاک عمل کند (به عنوان یک prescaler  مرتبه اول) یا تایمر slave  را تحریک  trigger  کند.

این خطوط Trigger داخلی (ITR) (ITR0، ITR1، ITR2 و ITR3) دقیقاً داخل تراشه هستند و هر خط بین دو تایمر مشخص ، متصل می شود. به عنوان مثال، در میکروکنترلر STM32F030، خط TIM1 TRGO به خط ITR0 تایمر TIM2 متصل است، همانطور که در شکل زیر نشان داده شده است.

یک تایمر slave  می‌تواند به‌طور همزمان به‌عنوان master  برای تایمر دیگر نیز عمل کند و شبکه‌ پیچیده ای از تایمر ها را به وجود آورد. به عنوان مثال، شکل زیر نشان می دهد که چگونه تایمرها را می توان به صورت آبشاری متصل کرد:

اما شکل زیر نشان می دهد که چگونه تایمرها می توانند ساختارهای سلسله مراتبی را با استفاده از ترکیب حالت های master/slave تشکیل دهند. توجه داشته باشید که TIM1، TIM2 و TIM3 به صورت داخلی از طریق همان خط ITR0 به هم متصل هستند. این امر باعث می شود تا چندین تایمر در یک رویداد مشابه (reset, enable, update و غیره) همگام سازی شوند.

برای پیکربندی تایمر در حالت master  ، از تابع HAL_TIMEx_MasterConfigSynchronization() و نمونه‌ای از ساختار TIM_MasterConfigTypeDef استفاده می‌کنیم که به شکل زیر تعریف می‌شود.

				
					typedef struct {
 uint32_t MasterOutputTrigger; /* Trigger output (TRGO) selection */
 uint32_t MasterSlaveMode; /* Master/slave mode selection */
} TIM_MasterConfigTypeDef;

				
			
  • MasterOutputTrigger: رفتار خروجی TRGO را مشخص می کند و می تواند مقادیری از جدول زیر را در بر گیرد.
  • MasterSlaveMode: برای فعال/غیرفعال کردن حالت master/slave یک تایمر استفاده می شود. می تواند مقادیر TIM_MASTERSLAVEMODE_ENABLE یا TIM_MASTERSLAVEMODE_DISABLE را در بر گیرد.

در ادامه نحوه پیکربندی TIM1 و TIM3 را در حالت آبشاری با تنظیم TIM1 به عنوان master برای تایمر TIM3 نشان می‌دهیم. TIM1 به عنوان منبع کلاک برای TIM3 از طریق خط ITR0 استفاده می شود. علاوه بر این، TIM1 به گونه ای پیکربندی شده است که روی یک رویداد خارجی در خط TI1FP1 شروع به شمارش می کند، که در Nucleo-F030 مربوط به پین PA8 است: زمانی که پایه PA8 بالا می رود، TIM1 شروع به شمارش می کند و سپس تایمر TIM3 را از طریق خط ITR0. تغذیه (کلاک) می کند.

این مقاله را با دوستانتان به اشتراک بگذارید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Shopping cart
Start typing to see posts you are looking for.

Sign in

No account yet?