You are on page 1of 7

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ - СОФИЯ

Факултет: Специалност: Катедра:


ФЕТТ Електроника Електронна техника
Предмет:
Микропроцесорна схемотехника
Име: Роди Презиме: Шерзад Фамилия: Аббас Фак. №: 101219017

Дата: 14.11.2021 Група: 52 Подгрупа: Б


Студент: Ръководител: инж. В. Маноев

УПРАЖНЕНИЕ № 4

TEМA: “ Изследване на таймерен модул на микроконтролер


MSP430FR6989 ”

В практиката се налага микроконтролерните системи да генерират или да


отмерват точно определени времеинтервали. Ако програмиста знае тактовата честота
на контролера и времето за изпълнение на асемблерните инструкции, то той би могъл
да реализира софтуерно времеинтервал. Това обаче почти никога не се прави, защото
тактовата честота може да се изменя динамично, изпълнението на програмата не е
последователно (обслужват се прекъсвания, които биха удължили софтуерното
закъснение), съществуват инструкции с условие, които променят хода на програмата.
Затова във всички микроконтролери се вграждат хардуерни модули за отмерване на
време, сърцето на които е един брояч. Тези модули се наричат таймери. Те се
конфигурират от микропроцесора, чрез запис в съответните им регистри. Броячът се
увеличава/намалява автономно, независимо от останалата система. При препълване
той се нулира и сигнализира за това на микропроцесорното ядро чрез сигнал за
прекъсване. Когато увеличаването/намаляването на брояча става в интервал от време,
определен от извод на микроконтролера се казва, че таймерът работи в режим
Capture. Koгато текущата стойност на брояча се сравнява с друг регистър и при
съвпадение на двете стойности се генерира прекъсване се казва, че таймерът работи в
режим Compare. Когато стойността на брояча се сравнява с други два регистъра и
автоматично се запуска отначало след достигане на съвпадение се казва, че таймера
работи в режим на генерация на ШИМ (Широчинно Импулсна Модулация) сигнал,
или още режим PWM. В последния случай единия регистър определя периода на
ШИМ, а другия – коефициента на запълване. Таймерите понякога се наричат
Capture/Compare/PWM или CCP модули.

1
Място на таймерния модул в общата блокова схема на
MSP430FR6989

Таймерен модул на MSP430FR6989.


На фиг. 4.1 е показана блокова схема на таймерния модул. От нея се вижда, че 16-
битовият брояч за един таймерен модул е само един, докато CCP регистрите може да
достигнат до 7 броя. За конкретния модел (6989) те са 7 (т.е. максимумът). Всеки
един CCP регистър е поместен заедно с допълнителна логика в таймерен подмодул.
От друга страна микроконтролера има общо три таймерни модула (Timer_A0,
Timer_A1 и Timer_B0) с общо 14 CCP регистъра. Тактовата честота, която се подава
на брояча идва от един от източниците TBxCLK, ACLK, SMCLK или INCLK.
Следват два делителя на честота, които позволяват гъвкава настройка на
времеинтервалите. Бит CAP от съответния TB(x)CCTL(n) регистър определя работата
на всеки един подмодул в режим на Capture или Compare.

2
Таймерите често се смятат за сърцето на микроконтролера. Независимо дали
имате нужда от периодично повикване за събуждане, еднократно закъснение или
имате нужда от средство за проверка, че системата работи без отказ, таймерите са
решението. Разбира се винаги можем да използваме софтуерен времеинтервал, но
това почти никога не се прави, защото тактовата честота може да се изменя
динамично, изпълнението на програмата не е последователно (обслужват с
прекъсвания, които биха удължили софтуерното закъснение), съществуват
инструкции с условие, които променят хода на програмата. Таймерите се
конфигурират от микропроцесора, чрез запис в съответните им регистри. Броячът се
увеличава/намалява автономно независимо от останалата система.

3
Counter
Броячът е основният хардуерен елемент, който се намира в таймера . Другият
съществен елемент е вход за часовник. Броячът се увеличава при всеки тактов
импулс и се прилага към неговия вход. Следователно, 16-битов таймер ще брои от
нула (0x0000) до 64K (0xFFFF). Когато броячът достигне максималната си стойност,
той се препълва – тоест се връща на нула и отново започва да брои нагоре. Повечето
периферни устройства с таймер могат да генерират прекъсване, когато това възниква
събитие на препълване, например TIMER_A, битът за флага за прекъсване за това
събитие се извиква TAIFG (TIMER_A Флаг за препълване).

4
Frequency, Time-Period, Resolution
Честотата и периода са два терминна, които често се използват за описване на
скоростта на прекъсванията.
- Колко пъти в секунда таймерът създава прекъсване определя неговата
честота.
- Времето между събитията на прекъсване се дефинира като период.

Ако таймерът се състои само от един брояч, неговата разделителна способност ще


бъде ограничена до размера на брояча. Ако някакво събитие се случи в системата – да
речем, потребител натисне бутон – бихме могли да установим само дали това събитие
се е случило в рамките на определен период от време. С други думи, можем да
определим само дали се е случило между две прекъсвания.

Capture
5
Функцията Capture заснема моментна снимка на регистъра на брояча когато се появи
входен сигнал за улавяне, тоест се копира в регистър за улавяне (CCR регистър за
улавяне и сравнение). Това е идеално, получаваме стойността на брояча на таймера,
заснета без латентност и много малко използвана енергия.

6
Compare
Вместо да се изполва CCR регистъра за улавяне, той се използва като регистър за
сравнение. В този режим, когато възникне съвпадение между брояча и
сравнението, се задейства действие зза сравнение. Действията за сравнение
включват генериране на прекъсване, сигнализиране на друго периферно
устройство (например задействане на ADC преобразуване) или промяна на
състоянието на външен щифт.

You might also like