You are on page 1of 7

PH N C NG PWM TRONG PIC16F887 I.

C ch a) S l

PWM l m t ch c n ng quan tr ng trong nhi u ng d ng, v c hng Microchip tch h p vo trong vi i u khi n PIC (c th l PIC16F887). Trong module ny, PIC16F887 dng ph ng php timer t o ra xung PWM. Timer 2 c dng lm b m cho module PWM nh ra chu k c ng nh r ng xung PWM. Tn hi u PWM t o ra chn CPPx.

b)Cch th c ho t
-

ng

Ch c n ng PWM trong PIC16F887 c i u khi n b i cc thanh ghi: PR2, T2CON, CCPRxL, CCPxCON (s gi i thch ph n sau). S ho t ng n gi n nh sau:

Gi tr xc nh chu k c a PWM s c a vo thanh ghi PR2(8 bit), gi tr xc r ng xung s c a vo thanh ghi CCPRxL(8 bit)(l 8 bit cao) v 2 bit CCPxCON<5:4> (l 2 bit th p) => phn gi i c a r ng xung l 10 bit.

nh

Khi b t u, timer 2 s b t u m(dng xung clock t OSC), thanh ghi m TMR2 ng vai tr 8 bit cao s c k t h p v i 2 bit c a c a ng h h th ng t o thanh ghi 10 bit ( so snh c v i 10 bit CCPRxL,CCPxCON<5,4>). L u r ng khi ny b m dng tr c ti p xung clock t OSC (Focs) thay v Focs/4 v qua b prescaler c a timer 2. Ngoi ra, m i khi b t u chu k PWM m i, Gi tr c a CCPRxL v CPPxCON<5,4> c a vo thanh CCPRxH v 2 bit ch t. T , gi tr m c t timer s c so snh v i 10 bit ny, n u b ng th tn hi u PWM s l t t cao xu ng th p (do c i u khi n b ng b Flip Flop RS nh hnh). H n n a, do timer 2 ch so snh v i gi tr c a thanh CCPRxH v 2 bit ch t, nn vi c thay i r ng xung(thay i CCPRxL,CCPxCON<5,4>) ch x y ra sau khi chu k PWM c k t thc. Ti p theo, b timer v n ti p t c m cho bit c a thanh PR2 th c 3 vi c s x y ra: o o n khi 8 bit cao(thanh ghi TMR2) b ng v i 8

Xa gi tr b m c a timer 2(TMR2). L t chn CCPx t th p ln cao (tuy nhin d th y r ng n u xet r ng xung = 0 th chn CCPx s lun m c th p) o r ng xung c a vo ch t vo thanh ghi CCPRxH. L u : khi so snh v i PR2, ch c 8 bit cao l thanh TMR2 c so snh, vi c b i 2 bit cu i t ng ng vi c gi m t n s Focs i 4 l n (xem nh timer ho t ng bnh th ng v i xung clock Focs/4). L u : Timer 2 l 1 b m 8 bit c a PIC16F887, c b prescaler(1:1,1:4,1:16) v postscaler(khng c s d ng ch PWM). CCP1 v CCP2 ch PWM dng chung Timer 2. L u : chn CCPx ch c clear tr c khi ho t Tm l i, tn hi u PWM thu ny ho t ng. ng nh u pht nn bit TRIS t

ng ng ph i

c nh sau:

c) Kch ho t ch c n ng PWM
kh i ng ch c n ng PWM cho PIC16F887, ta c n thi t l p cc b c sau: o T t ch c n ng PWM b ng cch set bit TRIS t ng ng v i chn CCP c n xu t PWM. o N p chu k c a PWM vo thanh PR2, chu k c tnh theo cng th c:

o o

Thi t l p ch PWM vo thanh ghi CCPxCON (vai tr cc bit gi i thi u sau) N p r ng xung vo thanh ghi CCPRxL v CCPxCON<5,4>

Thi t l p v cho kh i ng TIMER 2:  Xa c ng t TMR2IF c a thah ghi PIR1  Thi t l p b prescaler thng qua cc bit T2CKPS c a thanh ghi T2CON  Kch ho t Timer2 b ng cch set bit TMR2ON c a thanh T2CON o m b o ho t ng c a PWM, ta ch cho php xu t PWM (clear bit TRIS c a chn CPP t ng ng) sau khi timer2 trn (bit ng t TMR2IF c set), chu k m i v a m i b t u. L u : n u r ng xung l n h n chu k th tn PWM s gi nguyn khng i (lun m c cao). o

II. Ch c n ng Enhanced PWM


C 4 ch : o PWM n(nh trnh by pha trn) o Half-Bridge o Full-Bridge thu n o Full-Bridge ngh ch

c i u khi n b i cc bit P1M<1:0> v CCP1M<3:0> c a thanh ghi CCP1CON.

- Cc chn khng dng ch c n ng Enhanced PWM th c th dung ch c n ng khc.

a) Half-Bridge
C 2 chn c i u xung dng ko t i ki u push-pull (chn P1A v chn ph P1B). Trong ch ny, dead-band delay dung ch ng dng shoot-through trong thi t b khi c 2 cng t t cng on(Vd: 2 MOSFET). Delay c th i u khi n c b i gi tr PDC<6:0> c a thanh PWM1CON. N u gi tr ny l n h n r ng xung th tn hi u ra s m c th ng trong ton b chu k . Delay=4*Tocs*PDC<6:0>

L u : ph i clear bit TRIS t ng ng cho c 2 chn P1A v P1B. ng d ng half-bridge ko t i

b) Full-Bridge
-

III. M t s thanh ghi lin quan


Thanh CPP1CON:

IV.

P1M<1:0>: PWM Output Configuration bits  Khi dng ch c n ng PWM, ta ch quan tm t i 2 bit ny khi CCP1M<3:2>=11: y 00: 1 u ra; P1A c i u xung, P1B ,P1C, P1D l port(P1A, P1B, P1C, P1D l pin RC2, RD<5:7>) y 01: Full-Bridge thu n, P1D i u xung, P1A tch c c, P1B, P1C th ng y 10: Half-Bridge, P1A, P1B i u xung v i vng dead-band i u khi n c, P1C, P1D l chn port.

11: Full-Brodge ngh ch, P1B i u xung, P1C tch c c, P1A, P1D th ng o DC1B<1:0>: PWM Duty Cycle Least Significant bits (2 bit th p c a r ng xung) o CCP1M<3:0>: ECCP Mode Select bits (ch nu cc gi tr lin quan ch PWM)  1100: P1A, P1C tch c c m c cao, P1B, P1D tch c c m c cao  1101: P1A, P1C tch c c m c cao, P1B, P1D tch c c m c th p  1110: P1A, P1C tch c c m c th p, P1B, P1D tch c c m c cao  1111: P1A, P1C tch c c m c th p, P1B, P1D tch c c m c th p Thanh CPP2CON: t ng t nh ng khng c ch c n ng enhanced PWM Thanh T2CON: y

o o o

TOUTPS<3:0>: b postscaler khng dng trong tnh n ng PWM TMR2ON: kch ho t timer 2  1/0: on/off T2CKPS<1:0>: Timer 2 Clock Prescale Select bits (ch n b prescaler)  00: prescale 1:1  01: prescale 1:4  1x: prescale 1:16

IV. M t s v n
-

lin quan

phn gi i: PIC16F887 c phn gi i c a r ng xung l 10-bit, tuy nhin trn th c t n u chu k c a tn hi u nh (gi tr PR2 nh ) th phn gi i t ng ng gi m theo. phn gi i l n nh t 10-bit x y ra khi gi tri PR2 l 255. Sau y l b ng cho th y

phn gi i theo gi tr PR2: ch Sleep, timer 2 s khng m n a, gi tr chn CCPx gi nguyn. Khi c nh th c, timer2 ti p t c m t gi tr c . Khi reset: cc port tr v trang thi Input (t t PWM) v cc thanh ghi CCP tr v trang thi Reset.

You might also like