Слайд 1
Управление на CCP модулите
Слайд 2
Функционални възможности на модулите CCP1 и CCP2
Всеки модул Хронометър/Сравнение/ШИМ (CCP – Capture Compare Pulse Wide Modulation) съдържа 16битов регистър, който може да работи като:
16битов регистър хронометър;
16битов регистър за сравнение;
PWM управляващ/управляван регистър.
Модул CCP1:
CCPR1L (младши байт) и CCPR1H (старши байт).
Регистърът CCP1CON управлява операциите на модула.
Специалното събитие тригер се генерира при съвпадение на сравняваните стойности и нулира Таймер 1.
Модул CCP2:
CCPR2L (младши байт) и CCPR2H (старши байт).
Регистърът CCP2CON управлява операциите на модула.
Специалното събитие тригер се генерира при съвпадение на сравняваните стойности, като установява Таймер 1 в начално състояние и стартира A/D преобразуването.
Слайд 3
Функционални възможности на режим хронометър
Хронометър (Capture) се нарича устройство, което измерва времето между два определени момента.
Prescaler
+1 ,4 ,16
RC2/CCP1
извод
Qrs
CCP1CON<3:0>
Capture
Enable
Set Flag bit CCP1IF
(PIR 1<2>)
CCPR1H
CCPR1L
TMR1H
TMR1L
Слайд 4
Програмиране на режим хронометър
Таймер 1 трябва да работи в режим таймер или синхронизиран брояч.
Когато режимът хронометър се променя, може да се генерира фалшиво събитие за прекъсване. Потребителят трябва да държи бита CCP1IE (PIE1<2>) нулиран, за да предотврати това фалшиво прекъсване и е необходимо да нулира флаговия бит CCP1IF след всяка промяна в режима на работа.
Всеки сигнал RESET нулира брояча на прескалера. Превключването от един прескалер към друг може да генерира прекъсване. Затова при промяна на прескалера се изключва CCP модула.
Пример:
CLRF CCP1CON ; Изключва CCP модула
MOVLW NEW_CAPT_PS ; Зарежда W с новия ; прескалер и CCP ON
MOVWF CCP1CON ; Зарежда CCP1CON с тази ; стойност
Слайд 5
Функционални възможности на режим сравнение
Сравнение (Compare) се нарича операция, която индицира по определен начин еднаквостта в съдържанието на два регистъра.
извод
RC2/CCP1
Q R
S
Изходна
логика
Компаратор
TRISC<2>
Разрешаване на изхода
CCP1CON<3:0>
Избор на режим
Съвпадение
Специално събитие тригер
Установяване на флага CCP1IF (PIR 1<2>)
CCPR1H
CCPR1L
TMR1H
TMR1L
Специалното събитие тригер ще ресетне Timer 1, установи флаговия бит TMR1IF(PIR<0>) и установи бита GO/DONE (ADCON0<2>)
Слайд 6
Програмиране на режим сравнение
Конфигурация на изводите CCP:
RC2/CCP1 - изход чрез нулиране на бита TRISC<2>;
Нулирането на регистъра CCP1CON превключва CCP1/PWM изхода към ниско ниво по подразбиране.
Избор на режим на Таймер 1: Таймер 1 трябва да работи в режим таймер или синхронизиран брояч.
Режим на софтуерно прекъсване: Когато е избран режим на софтуерно прекъсване, CCP1 изводът не се изменя.
Специално събитие тригер: В този режим хардуерно се генерира специално събитие, наречено тригер, което може да се използва за начало на някакво действие.
Изходът от специалното събитие тригер в модула CCP1 нулира двойката регистри TMR1. Това позволява регистърът CCPR1 ефективно да бъде 16битов програмируем период на модула Таймер 1.
Изходът от специалното събитие тригер в модула CCP2 нулира двойката регистри TMR1 и стартира A/D преобразованието (ако A/D модулът е разрешен).
Слайд 7
Функционални възможности на режим PWM
Изводите изработват PWM (Pulse Wide Modulation) - широчинно-импулсна модулация с до 10бита резолюция.
За да се направи изводът CCP1 изход, битът TRISC<2> трябва да се нулира. Това се налага от факта, че CCP1 изводът е мултиплексиран с данни от PORTC.
Определение: Широчинно импулсна модулация е модулация, при която широчината на импулса е пропорционална на амплитудата на модулиращия сигнал.
Слайд 8
Функционални възможности на режим широчинно-импулсна модулация
Когато TMR2 = PR2, през следващия цикъл се извършват следните три събития:
TMR2 се нулира;
изводът CCP1 се вдига в единица (изключение: при работен цикъл на PWM = 0%, изводът CCP1 няма да се установи);
работният цикъл на PWM се прехвърля от CCPR1L в CCPR1H.
R Q
S
RC2/CCP1
TRISC<2>
Компаратор
Компаратор
PR2
CCP1CON< 5: 4 >
Нулира таймера, извода CCP1 и
поддържа постоянна стойност.
Забележка 1: 8-битовият таймер се свързва с 2-битовия вътрешен Q такт, или 2 бита от прескалера, за да се създаде 10-битова стойност
Регистър на продължи-
телността на импулса
Слайд 9
Стъпки при програмиране на CCP модула в режим PWM:
Установяване на периода на PWM чрез запис в регистъра PR2.
Установяване на работния ход на PWM чрез запис в регистъра CCPR1L и битовете CCP1CON<5:4>.
Конфигуриране на извода CCP1 като изход чрез нулиране на бита TRISC<2>.
Установяване стойността на прескалера на TMR2 и разрешаване на таймер2 чрез запис в T2CON.
Конфигуриране на CCP1 модула за PWM операция.
Слайд 10
Програмиране на режим PWM
ТPWM = [(PR2) + 1] * 4 * TOSC * PVTMR2
FPWM = 1 / ТPWM
t = (CCPR1L:CCP1CON<5:4>) * TOSC * PVTMR2
Duty Cycle
Period
TMR2=PR2 (Timer 2 RESET)
TMR2=Duty Cycle
TMR2=PR2 (Timer 2 RESET)
Слайд 11
Пример за честоти и резолюция на PWM при 20 MHz
ТPWM = [(PR2) + 1] * 4 * TOSC * PVTMR2 =
256*4*0,05*10-6*16 = 819,2*10-6
FPWM = 1 / ТPWM = = 106/819,2 = 1,22 kHz
(при TOSC = 20 MHz - TOSC = 1/(20*106) = 0,05*10-6s)
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте