تارا فایل

پاورپوینت میکروکنترلرهای ARM شرکت ATMEL تایمر


واحد ‍ Timer / Counter
سعید سلیمانی
میکروکنترلرهای ARM شرکت ATMEL
خانواده AT91SAM7Sxxx

تعریف اصطلاحات
TC = Timer -Counter
تایمر – شمارنده

تفاوت شمارنده و تایمر در چیست؟
در شمارنده تنها تعداد وقوع حوادث شمارش می شود ولی وظیفه تایمر شمارش زمان سپری شده است. هر دو واحد دارای سخت افزاری واحد هستند (هر دو شمارش می کنند) ولی تفاوت شان در نوع پالس ساعت دریافتی است.

T/C

T/C

timer
Counter

TC
در این میکروکنترلر 3 کانال تایمر شمارنده مستقل 16 بیتی وجود دارد.
هر کانال را می توان به صورت مستقل برنامه ریزی نمود.
هر کانال دارای دو حالت کاری است
Capture
Waveform
WAVE (TC_CMRx) = 0 (Capture), 1 (Waveform)
این واحد می تواند وظایف زیر را به انجام برساند
اندازه گیری فرکانس
شمارش تعداد وقوع رخدادها
اندازه گیری فاصله
ساخت پالس
ایجاد تاخیر زمانی
ساخت پالس های با عرض پالس متغیر (PWM)

TC
هر کانال دارای 5 منبع کلاک داخلی (جدول زیر) و 3 منبع کلاک خارجی (پین های TCLK0، TCLK1 و TCLK2) است.
هر کانال 2 پین همه منظوره (TIOAx و TIOBx) است که توسط کاربر تنظیم می شوند.
هر کانال با وقوع حوادث مختلف می تواند درخواست وقفه به سیستم بدهد.
هر سه کانال دارای دو ثبات مشترک هستند:
TC_BCR: هر سه کانال با هم شروع به کار کنند (SYNC bit)
TC_BMR: انتخاب نوع پالس ساعت خارجی برای هر کانال – امکان ایجاد حالت زنجیره ای

TC

TC
فهرست پین ها
فهرست سیگنال ها

TC
هر پین که به این واحد اختصاص دارد ممکن است با واحد I/O مشترک باشد. باید آن ها را در ابتدا به واحد TC اختصاص (ادوات جانبی) داد.

پالس ساعت واحد TC توسط واحد PMC کنترل می شود. پس در ابتدا باید آن را روشن نمود.

وقفه واحد TC به واحد AIC (مدیریت وقفه) داده می شود. پس قبل از استفاده از TC باید برنامه ریزی لازم برای نحوه مدیریت وقفه انجام شود.

TC
هر کانال 16 بیتی است.
0X0000  0x0001  …  0xFFFF به ازای هر لبه بالارونده کلاک

0xFFFF  rising edge  0X0000 and COVFS (TC_SRx)=1

مقدار حال حاضر کانال های تایمر را می توان در ثبات TC_CVx مشاهده کرد.

هر کانال با استفاده از Trigger ریست و مجدداً راه اندازی می شود. (بیشتر صحبت خواهیم کرد)

Clock Chaining
با استفاده از ثبات TC_BMR می توان نوع پالس خارجی هر کانال را انتخاب نمود.
همچنین با استفاده از TC_BMR می توان کلاک های کانال های مختلف را به صورت زنجیره ای برقرار نمود.
با این هدف که در صورت هر بار اتمام شمارش کانال اول، به عنوان مثال کانال دوم یک شمارش انجام دهد و …

Clock Chaining

Clock Selection
TC_CMRx
CLKI می تواند شمارش را منوط به لبه پایین رونده کلاک نماید
BURST به این منظور قرار گرفته است که اعمال کلاک داخلی تنها محدود به یک بودن یکی از پین های کلاک خارجی (TCLKx) یا TIOAx و TIOBx باشد.

Clock Control
می توان به دو صورت کلاک هر کانال را کنترل نمود
Enabled / Disabled
Started / Stopped
تفاوت این دو در چیست؟
در حالت enable و stop با اعمال trigger کلاک اعمال شده و شمارنده شروع به کار می کند. ولی در حالت disable حتی با اعمال trigger کلاکی اعمال نمی شود و شمارنده کار نمی کند.

CLKEN (TC_CCRx)=1 (en)
CLKDIS (TC_CCRx)=1 (dis)
CLKSTA (TC_SRx)=0(dis), 1(en)

Capture mode
با صفر کردن بیت WAVE از ثبات TC_CMRx وارد حالت Capture می شویم.

در این می توانیم یک سیگنال خارجی را مورد اندازه گیری قرار دهیم.
اندازه گیری زمان پالس
اندازه گیری فرکانس
اندازه گیری دوره تناوب
اندازه گیری Duty Cycle
اندازه گیری اختلاف فاز TIOA و TIOB

در این حالت پین های TIOAx و TIOBx هر دو ورودی می شوند.

Capture mode
16-bit counter
(incrementing)
Register A (RA) (TC_RAx)
Register B (RB)
(TC_RBx)
Register C (RC)
(TC_RCx)
Counter Value (TC_CVx)
Clock
Status Register (TC_SRx) (TC_IMRx)
Interrupt Enable Register (TC_IERx)
Reset or Trigger
Capture the counter value at which edge of TIOA (LDRA in TC_CMR)
Capture the counter value at which edge of TIOA (LDRB in TC_CMR)
RC Compare Interrupt
WAVE = 0 in TC_CMRx
TIOA
Edge Detection
Stop or Disable
clock

Reset or Trigger
Software – SWTRG bit (TC_CCRx)=0(no effect), 1(reset)

Synchronous – SYNC bit (TC_BCR)
تمام کانال ها با هم ریست می شوند و شروع به کار می کنند

RC compare (if CPCTRG bit (TC_CMRx)=1)

External Trig – in capture mode (TIOAx or TIOBx)
ABETRG bit (TC_CMRx)=0(TIOB), 1(TIOA)

Capture mode

Capture mode

Waveform mode
با یک کردن بیت WAVE از ثبات TC_CMRx وارد حالت Waveform می شویم.

در این می توانیم پالس ایجاد نماییم
ساخت یک یا دو پالس PWM با فرکانس یکسان و Duty cycleهای متفاوت و قابل تنظیم
تولید انواع سیگنال های متناوب و مکرر
تولید انواع سیگنال های one shot

در این حالت پین TIOAx خروجی و پین TIOBx اگر به عنوان تریگر خارجی استفاده نشده باشد، ورودی وگرنه خروجی است.

Waveform mode
16-bit counter
Register A (RA) (TC_RAx)
Register B (RB)
(TC_RBx)
Register C (RC)
(TC_RCx)
Counter Value (TC_CVx)
Clock
Status Register (TC_SRx) (TC_IMRx)
Interrupt Enable Register (TC_IERx)
Reset or Trigger
RA, RB, RC Compare Interrupt
WAVE = 1 in TC_CMRx
WAVSEL
TC_CMRX
TIOA
TIOB
Waveform
(PWM: Pulse Width
Modulation)
Compare RA
Compare RB
Compare RC

Reset or Trigger
Software – SWTRG bit (TC_CCRx)=0(no effect), 1(reset)

Synchronous – SYNC bit (TC_BCR)
تمام کانال ها با هم ریست می شوند و شروع به کار می کنند

RC compare (WAVSEL)

External Trig – in waveform mode (TIOBx, XC0, XC1, XC2)
EEVT (TC_CMRx)
ENETRG (TC_CMRx)=0(dis. ext. trig), 1(en)

Waveform mode

Waveform mode

WAVSEL in waveform mode
با توجه به مقدار WAVSEL شمارنده به 4 شکل شمارش کند

تایمر بالا رونده بدون تریگ خودکار مقایسه RC (WAVSEL=00)
تایمر بالا رونده با تریگ خودکار مقایسه RC (WAVSEL=10)
تایمر بالا و پایین رونده بدون تریگ خودکار مقایسه RC (WAVSEL=01)
تایمر بالا و پایین رونده با تریگ خودکار مقایسه RC (WAVSEL=11)

WAVSEL=00
تایمر بالا رونده بدون تریگ خودکار مقایسه RC (بدون تریگ)

WAVSEL=00
تایمر بالا رونده بدون تریگ خودکار مقایسه RC (با تریگ)

WAVSEL=10
تایمر بالا رونده با تریگ خودکار مقایسه RC (بدون تریگ)

WAVSEL=10
تایمر بالا رونده با تریگ خودکار مقایسه RC (با تریگ)

WAVSEL=01
تایمر بالا و پایین رونده بدون تریگ خودکار مقایسه RC (بدون تریگ)

WAVSEL=01
تایمر بالا و پایین رونده بدون تریگ خودکار مقایسه RC (با تریگ)

WAVSEL=11
تایمر بالا و پایین رونده با تریگ خودکار مقایسه RC (بدون تریگ)

WAVSEL=11
تایمر بالا و پایین رونده با تریگ خودکار مقایسه RC (با تریگ)

سوالی هست؟؟؟


تعداد صفحات : 32 | فرمت فایل : پاورپوینت قابل ویرایش

بلافاصله بعد از پرداخت لینک دانلود فعال می شود