تایمرهای general purpose همه منظوره و advanced پیشرفته STM32 را می توان برای کار در حالت master یا slave پیکربندی کرد. زمانی که یک تایمر بهعنوان slave پیکربندی شده باشد، میتواند توسط خطوط داخلی ITR0، ITR1، ITR2 و ITR3، یک کلاک خارجی متصل به پین ETR1 یا از منابع کلاک دیگر متصل به منابع TI1FP1 و TI2FP2، که مطابق با پین های 1 و 2 کانال است تغذیه (کلاک) شود. این حالت کاری External Clock Mode 1 نامیده می شود .
حالت کلاک خارجی 1 و 2 برای همه مبتدیان در میکروهای STM32 گیج کننده است. هر دو حالت راهی برای کلاک کردن یک تایمر با استفاده از یک منبع کلاک خارجی هستند، اما حالت اول با پیکربندی تایمر در حالت slave ایجاد میشود (در واقع نوعی ” triggering ” است)، در حالی که حالت دوم با انتخاب ساده منابع کلاک مختلف به دست میآید.
نکته: ورودیهای TI1FP1 و TI2FP2 چیزی بیش از کانالهای ورودی TI1 و TI2 تایمر پس از اعمال فیلتر در ورودی نیستند.
برای پیکربندی تایمر در حالت slave از تابع HAL_TIM_SlaveConfigSynchronization() و نمونه ای از ساختار TIM_SlaveConfigTypeDef استفاده می کنیم که به صورت زیر تعریف می شود:
typedef struct {
uint32_t SlaveMode; /* Slave mode selection */
uint32_t InputTrigger; /* Input Trigger source */
uint32_t TriggerPolarity; /* Input Trigger polarity */
uint32_t TriggerPrescaler; /* Input trigger prescaler */
uint32_t TriggerFilter; /* Input trigger filter */
} TIM_SlaveConfigTypeDef;
- SlaveMode: هنگامی که یک تایمر در حالت slave پیکربندی می شود، می تواند توسط چندین منبع مختلف کلاک/راه اندازی شود. این فیلد می تواند مقادیری از جدول زیر را در بر گیرد. این پاراگراف در مورد حالت TIM_SLAVEMODE_EXTERNAL1 است.
- InputTrigger: منبعی که تایمر پیکربندی شده در حالت برده را فعال/کلاک می کند، مشخص می کند. این فیلد می تواند مقادیری از جدول زیر را در بر گیرد.
- TriggerPolarity: قطبیت منبع تریگر/ساعت را نشان می دهد. می تواند مقادیری از جدول زیر را در بر گیرد.
- TriggerPrescaler: این بخش prescaler را برای منبع کلاک خارجی مشخص می کند. می تواند مقادیری از جدول زیر را در بر گیرد. به طور پیش فرض، مقدار TIM_TRIGGERPRESCALER_DIV1 انتخاب شده است.
TriggerFilter: این فیلد 4 بیتی فرکانس مورد استفاده برای نمونه برداری از کلاک خارجی/سیگنال تریگر متصل به پین ورودی و طول فیلتر دیجیتال اعمال شده روی آن را مشخص می کند. فیلتر دیجیتال از یک شمارنده رویداد ساخته شده است که در آن N رویداد متوالی برای تأیید یک انتقال در خروجی مورد نیاز است. به طور پیش فرض، این فیلتر غیرفعال است.
یک شمارنده رویداد ساخته شده است که در آن N رویداد متوالی برای تأیید یک انتقال در خروجی مورد نیاز است. به طور پیش فرض، این فیلتر غیرفعال است.
هنگامی که حالت External Clock Source Mode 1 انتخاب می شود، فرمول محاسبه فرکانس به روز رسانی رویدادها به صورت زیر در می آید:
UpdateEvent = TRGIclock/(P rescaler + 1)(P eriod + 1)(RepetitionCounter + 1)
که در آن TRGIclock فرکانس منبع کلاک متصل به پین ETR1، فرکانس منبع کلاک داخلی/خارجی متصل به خطوط داخلی ITR0..ITR3 یا فرکانس سیگنال متصل به کانال های خارجی TI1FP1..T2FP2 است.
بنابراین، آنچه را که تا به حال دیدهایم مرور می کنیم:
- یک تایمر را وقتی در حالت master کار می کند ، می توان با یک منبع خارجی متصل به پین ETR2 کلاک کرد.
- اگر تایمر در حالت slave کار کند، می توان آن را با یک سیگنال متصل به پین ETR1، منابع تریگر متصل به خطوط داخلی ITR0…ITR2 (منبع کلاک می تواند تایمر دیگری باشد) یا توسط سیگنال ورودی متصل به کانال های تایمر TI1 و TI2، (که در صورت فعال شدن مرحله فیلتر ورودی، تبدیل به TI1FP1 و TI2FP2 می شود.) کلاک کرد.
در مثال دیگری نحوه استفاده از منبع کلاک خارجی برای تایمر TIM3 را نشان می دهیم.در این مثال پین خروجی Master Clock Output (MCO) به پایه TI2FP2 (یعنی کانال دوم تایمر TIM3) که در Nucleo-F030R8 با پایه PA7 مطابقت دارد ، متصل می شود.
فهرست مطالب
صفحات مرتبط
آخرین مقالات