AVR-CLASSIC MK-də taymerlərin strukturu
AVR Classic ailəsinin müxtəlif modellərinə, əsasən aşağıdakı periferiya modulları daxildir:
T0,T1,T2 və WDT taymerləri;
Analog komparatoru və ADC;
SPI və UART interfeysləri.
Taymerlərlə əlaqədar AVR Classic MK-nin siqnalları və onların təyinatı Cədvəl 6.2 -də verilmişdir.
8 bitli T0 taymeri bu MK-nin bütün modellərdə iştirak edir və əsas təyinatı zaman intervallarını hasil etmək , xarici hadisələri saymaqdan ibarətdir.Taymer-sayğac dolduqda (FFH-dan 00H-a keçdikdə) Overflow (sayğacın dolması) kəsilmə siqnalını hasil edir. T0 taymerinin daxili strukturunda (şək.6.8a) TCNT0 və TCCR0 registrləri uyğun olaraq taymer-sayğac və onun idarəsi funksiyalarını yerinə yetirir.8 bitli TCNT0-nin dolması zamanı idarə blokunda yaranan TOV0 (taymerin dolması) siqnalı TIFR registrində uyğun bayrağı qaldırır. TOV0 kəsilmə siqnalına TIMSK registrindəki TOIE0 biti ilə icazə vrildiyi halda taymerin çıxışında T0-nın dolması kəsilmə sorğusu siqnalı hasil edilir. TCNT0 –nin say girişinə idarə blokundan CK takt siqnalları,yaxud T0 girişindən xarici takt siqnalları impulsları daxil olur. TCCR0 registrindən idarə blokuna verilən CSO0-CSO2 kodu TCNT0 –nin say siqnalları mənbəyini seçir , CK tezliyinin bölmə əmsalını və T0 girişinin aktiv cəbhəsini təyin edir(şək.6.8b və cədvəl 6.3). TCCR0 registrinə yazı/oxu üçün proqramdan müraciət edilə bilər və yazma əmrindən sonrakı əmr döründə T0-da sayma prosesi davam edir.
Beləliklə, T0 taymeri 2 rejimdə işləyə bilər:
Taymer rejimi.Bu halda CK siqnalları tezliyi verilmiş əmsala bölünməklə TCNT0-də sayılır ;
Hadisələr sayğacı rejimi. TCNT0-nin inkrement edilməsi xarici T0 girişındəki siqnalın aktiv cəbhəsi ilə baş verir.
Qeyd etmək lazımdır ki,MK-nın T0 çıxıntısının vəziyyəti daxili takt siqnalının artan cəbhəsi ilə müəyyən edilir.Bu rejimdə taymerin işinin düzgün qurulması üçün qonşu T0 impulsları arasındakı fasilə müddəti MK-nın daxili takt siqnalı periodundan böyük olmalıdır. Taymerin T0 girişinə xarici hadisələrlə əlaqədar hər hansı elektron dövrəsi bağlana bilər.
16 bitli T1 taymerin funksiyası T0-a nisbətən daha genişdir:
Zaman intervallarını formalaşdırmaq və xarici hadisələrə üyğun siqnalları saymaq;
T1-nin girişinə verilən xarici idarə siqnalı ilə öz cari vəziyyətini giriş/çıxış registrində yadda saxlamaq (İnput-Capture --daxil etmə/zəbt etmə);
Taymer sayğacın cari məzmununu verilmiş qiymətlə müqayisə etmək və buna uyğun çıxış (Compare-Match—müqayisə/üst-üstə düşmə) siqnalını hasil etmək;
PWM (Puls Width modulation-Eninə İmpuls modulyasiyası) rejimində işləmək.
PWM siqnallarını yaratmaq taymerin ayrıca bir iş rejimini təşkil edir ki,bu halda kəsilmə siqnalının hasil edilməsi istisna olmaqla digər funksiyalar yerinə yetirilmir.Odur ki,T1 taymerində PWM rejimindən başqa bütün digər funksiyalar taymer rejimi adlanır.
MK-nın modellərindən asılı olaraq T1 taymerinin müxtəlif variantları mövcuddur.Şək.6.9-da göstərilən struktura hər biri 16 bitli olan 3 ədəd əsas registrlər daxildir: TCNT1sayğacı, ICR1(Input Capture Register-daxil etmə/zəbt etmə registri),OCR1(Occurrence Compare Register -hadisələrin müqayisə registri). Bundan əlavə 16 bitli komparator və A,B olmaqla 2 ədəd TCCR1 idarə registrləri də vardır.T1-nin digər variantları əlavə komparatorun və OCR1 registrinin olması ilə fərqlənir.
TCNT1 registri T1-nin taymer rejimində cəmləyici, PWM rejimində isə reversiv sayğac funksiyasını daşıyır. 16 bitli TCNT1-ə fiziki olaraq TCNT1H:TCNT1L registrlər cütü kimi proqramdan müracət edilə bilər.Taymer rejimi T0-da olduğu kimi zaman intervallarının hasil edilməsinə və xarici hadisələrin sayılmasına gətirilir.Uyğun olaraq taymerin CK girişindəki impulslar bölmə əmsalı nəzərə alınmaqla,yaxud T1-dən verilən xarici hadisə impulsları TCNT1 registrinin məzmunu increment edir və FFFFH-dan 0000H vəziyyətinə keçid anında TIFR registrində TOV1 bayrağı qaldırılır.Əgər TIMSK registrində TOIE1 biti “1” isə,onda T1-nin çıxışında kəsilmə sorğusu siqnalı hasil edilir.Taymer rejimində takt siqnalı mənbəyi kimi CK/T1- nin seçimi TCCR1B registrindəki CS10-CS12 bitləri ilə təyin edilir.
T1 taymerinin zəbt etmə(Input Capture) funksiyası TCNT1-nin məzmununun müəyyən müddət ərzində ICR1 registrində saxlanılmasından ibarətdir.Bu, MK-nın ICP(Input Capture) çıxıntısından daxil olan siqnalın aktiv cəbhəsi ilə,yaxud analog komparatorundan daxil olan siqnal ilə baş verir.Nəticədə TIFR registrində CF1(Capture Flag) bayrağı qaldırılır və TIMSK registrində TICIE1 =”1” olduğu halda T1-nin çıxışında daxil etmə/zəbt etmənin kəsilmə sorğusu siqnalı yaranır.
T1-nin müqayisə funksiyası TCNT1-nin məzmununun OCR1 registrindəki qiymətlə müqayisə edilməsi kimi yerinə yetirilir.Üst-üstə düşmə halında TIFR-də OCF1A bayrağı qaldırılır və TIMSK-də OCEA1=”1” isə,onda T1-nin çıxışında müqayisə/ üst-üstə düşmə kəsilmə sorğusu siqnalı hasil edilir.
T1-nin çıxışında daxil etmə/zəbt etmə,yaxud müqayisə/üst-üstə düşmə siqnalının yaranması ilə əlaqədar MK-da yerinə yetirilməli olan əməliyyatlar uyğun olaraq TCCR1B registrinin ICNC1,ICES1 və TCCR1A registrinin COM1A1,COM1A0 bitləri ilə müəyyən edilir.
T1 taymerinin PWM rejimində çıxışda hasil edilən düzbucaqlı impulsların proqramlaşdırıla bilən davamiyyəti və tezliyi modullaşdırılan analog siqnallarının qiymətinə mütənasib olur. Taymeri PWM rejiminə keçirmək üçün TCCR1A idarə registrinin PWM10- PWM11 bitləri moidulyatorun tələb olunan mərtəbə sayına (8/9/10 bit) uyğun olaraq təyin edilir.Reversiv sayğac kimi işləyən TCNT1 registrinin məzmunu 0000H-dan müəyyən edilmiş maksimal TOP qiymətinə qədər inkrement və TOP qiymətindən 0000H-a qədər dekrement edilir.Sayma prosesində TCNT1 məzmunu OCR1A registrindəki qiymətə = olduqda MK-nın çıxışında düzbucaqlı impuls yaranır. Bu impulsun davamiyyəti TCNT1-nin sayma tezliyindən və TOP qiymətindən asılı olur(şək.6.10a). OCR1A-nin məzmunu dəyişdikdə impulslar arası fasilə müddəti də dəyişir.
T2 taymeri AVR –Classic MK-nin yalnız AT90S/LS4434 və AT90S8535 modellərində mövcuddur.Bu taymer əsasən 2 rejimdə işləyir:
Taymer rejimi.Bu halda T2 yalnız zaman intervallarını hasil etmək və sayğacın məzmunu verilmiş qiymətə = olduqda müəyyən əməliyyatları yerinə yetirmək üçün istifadə edilir.
PWM rejimi:T2 taymeri eninə-impuls modulyatoru kimi işləyir.
T2 taymerin T1- dən əsas fərqi ondadır ki,əlavə kvars rezonatoru vasitəsilə asinxron rejimdə işləyə bilir.T2 taymerinin struktur sxeminə (şək.6.11a) 2 ədəd işçi registr(8 bitli TCNT2 sayğacı və OCR2 müqayisə registri),8 bitli komparator,TCCR2 idarə registri, asinxron rejimin vəziyyətlər registri ASSR, eləcə də taymerin idarə və sinxronlaşdırma blokları daxildir.Dolma və üst-üstə düşmə bayraqları TIFR-də, onlara icazə isə TIMSK registrində təyin edilir. Taymer rejimində cəmləyici, PWM rejimində isə reversiv sayğac kimi işləyən TCNT2 registri proqramdan yazı/oxu üçün müraciət edilə bilər. TCCR2 registrinin bitləri sayğac üçün tezliyin bölmə əmsalının qiymətini,üst-üstə düşmə halında MK-nın uyğun çıxıntısının vəziyyətinin necə dəyişəcəyini və PWM rejiminə icazəni müəyyən edir(Şək.6.11b). PWM rejimi T1 taymerində olduğu kimi yerinə yetirilir.Asinxron rejimdə MK-nın TOSC1 girişindən verilən impulslar ilkin bölücüyə daxil olur və taymer real zaman saatı kimi işləyir.Say impulsları mənbəyi kimi MK-nın TOSC1 və TOSC2 girişinə bağlanan 32KHs tezlikli kvars rezonatoru,yaxud (0-256)KHs tezlikli siqnlları generasiya edən xarici sxem ola bilər. Xarici siqnallar tezliyi MK-nın takt siqnallarından 4 dəfə kiçik olmalıdır. Asinxron rejimdə TCNT2,OCR2 və TCCR2 registrinə yazı və kəsilmə bayraqların qeyd edilməsi taymerin takt siqnalları ilə üzlaşdırılır.
AVR-Classic MK-də WDT taymerinin əsas funksiyası idarə obyektini imtinalardan mühafizə etməkdir.Aktiv vəziyyətdə olan WDT-nin çıxışında əvvəlcədən proqramlaşdırılmış hər Time-out (TOUT) müddətlərindən bir olmaqla MK-i reset edən siqnal hasil edilir.Proqramın normal yerinə yetirildiyi halda WDT tərəfindən lüzumsuz “Reset”-nin qarşısını almaq üçün mütəmadəm olaraq bu taymer WDR əmri ilə “0”-a salınmalıdır. WDT taymeri tezliyi 350KHs/1MHs olan ayrıca siqnallar generatoruna malik olduğundan MK-nın Power Down (aşağı enerjili) rejimində də işçi vəziyyətdə olur. WDT daxili struktur sxemi və onu idarə edən WDTCR registri şək.6.10b,c-də verilmişdir. Burada WDP0- WDP2 kodu TOUT müddətini takt siqnalları sayında 16K-2048K kimi təyin edir.WDTOE və WDE bitləri isə WDT-nin işinə ümumi icazə verir və onu faktik olaraq aktivləşdirir.