You are on page 1of 7

PHN CNG PWM TRONG PIC16F887 I.

C ch a) S lc
PWM l mt chc nng quan trng trong nhiu ng dng, v c hng Microchip tch hp vo trong vi iu khin PIC (c th l PIC16F887). Trong module ny, PIC16F887 dng phng php timer to ra xung PWM. Timer 2 c dng lm b m cho module PWM nh ra chu k cng nh rng xung PWM. Tn hiu PWM to ra chn CPPx.

b)Cch thc hot ng


Chc nng PWM trong PIC16F887 c iu khin bi cc thanh ghi: PR2, T2CON, CCPRxL, CCPxCON (s gii thch phn sau). S hot ng n gin nh sau:

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

Khi bt u, timer 2 s bt u m(dng xung clock t OSC), thanh ghi m TMR2 ng vai tr 8 bit cao s c kt hp vi 2 bit ca ca ng h h thng to thanh ghi 10 bit ( so snh c vi 10 bit CCPRxL,CCPxCON<5,4>). Lu rng khi ny b m dng trc tip xung clock t OSC (Focs) thay v Focs/4 v qua b prescaler ca timer 2. Ngoi ra, mi khi bt u chu k PWM mi, Gi tr ca CCPRxL v CPPxCON<5,4> c a vo thanh CCPRxH v 2 bit cht. T , gi tr m c t timer s c so snh vi 10 bit ny, nu bng th tn hiu PWM s lt t cao xung thp (do c iu khin bng b Flip Flop RS nh hnh). Hn na, do timer 2 ch so snh vi gi tr ca thanh CCPRxH v 2 bit cht, nn vic thay i rng xung(thay i CCPRxL,CCPxCON<5,4>) ch xy ra sau khi chu k PWM c kt thc. Tip theo, b timer vn tip tc m cho m khi 8 bit cao(thanh ghi TMR2) bng vi 8 bit ca thanh PR2 th c 3 vic s xy ra: Xa gi tr b m ca timer 2(TMR2). Lt chn CCPx t thp ln cao (tuy nhin d thy rng nu xet rng xung = 0 th chn CCPx s lun mc thp) o rng xung c a vo cht vo thanh ghi CCPRxH. Lu : khi so snh vi PR2, ch c 8 bit cao l thanh TMR2 c so snh, vic b i 2 bit cui tng ng vic gim tn s Focs i 4 ln (xem nh timer hot ng bnh thng vi xung clock Focs/4). o o Lu : Timer 2 l 1 b m 8 bit ca PIC16F887, c b prescaler(1:1,1:4,1:16) v postscaler(khng c s dng ch PWM). CCP1 v CCP2 ch PWM u dng chung Timer 2. Lu : chn CCPx ch ny hot ng nh u pht nn bit TRIS tng ng phi c clear trc khi hot ng. Tm li, tn hiu PWM thu c nh sau:

c) Kch hot chc nng PWM


khi ng chc nng PWM cho PIC16F887, ta cn thit lp cc bc sau: o Tt chc nng PWM bng cch set bit TRIS tng ng vi chn CCP cn xut PWM. o Np chu k ca PWM vo thanh PR2, chu k c tnh theo cng thc:

o o

Thit lp ch PWM vo thanh ghi CCPxCON (vai tr cc bit gii thiu sau) Np rng xung vo thanh ghi CCPRxL v CCPxCON<5,4>

Thit lp v cho khi ng TIMER 2: Xa c ngt TMR2IF ca thah ghi PIR1 Thit lp b prescaler thng qua cc bit T2CKPS ca thanh ghi T2CON Kch hot Timer2 bng cch set bit TMR2ON ca thanh T2CON o m bo hot ng ca PWM, ta ch cho php xut PWM (clear bit TRIS ca chn CPP tng ng) sau khi timer2 trn (bit ngt TMR2IF c set), chu k mi va mi bt u. Lu : nu rng xung ln hn chu k th tn PWM s gi nguyn khng i (lun mc cao). o

II. Chc nng Enhanced PWM


C 4 ch : o PWM n(nh trnh by pha trn) o Half-Bridge o Full-Bridge thun o Full-Brodge nghch

c iu khin bi cc bit P1M<1:0> v CCP1M<3:0> ca thanh ghi CCP1CON.

- Cc chn khng dng chc nng Enhanced PWM th c th dung chc nng khc.

a) Half-Bridge
C 2 chn c iu xung dng ko ti kiu push-pull (chn P1A v chn ph P1B). Trong ch ny, dead-band delay dung chng dng shoot-through trong thit b khi c 2 cng tt cng on(Vd: 2 MOSFET). Delay c th iu khin c bi gi tr PDC<6:0> ca thanh PWM1CON. Nu gi tr ny ln hn rng xung th tn hiu ra s mc th ng trong ton b chu k. Delay=4*Tocs*PDC<6:0>

Lu : phi clear bit TRIS tng ng cho c 2 chn P1A v P1B. ng dng half-bridge ko ti

b) Full-Bridge
-

III. Mt s thanh ghi lin quan


Thanh CPP1CON:

IV.

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

11: Full-Brodge nghch, P1Biu xung, P1C tch cc, P1A, P1D th ng o DC1B<1:0>: PWM Duty Cycle Least Significant bits (2 bit thp ca rng xung) o CCP1M<3:0>: ECCP Mode Select bits (ch nu cc gi tr lin quan ch PWM) 1100: P1A, P1C tch cc mc cao, P1B, P1D tch cc mc cao 1101: P1A, P1C tch cc mc cao, P1B, P1D tch cc mc thp 1110: P1A, P1C tch cc mc thp, P1B, P1D tch cc mc cao 1111: P1A, P1C tch cc mc thp, P1B, P1D tch cc mc thp Thanh CPP2CON: tng t nhng khng c chc nng enhanced PWM Thanh T2CON:

o o o

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

IV. Mt s vn lin quan


phn gii: PIC16F887 c phn gii ca rng xung l 10-bit, tuy nhin trn thc t nu chu k ca tn hiu nh(gi tr PR2 nh) th phn gii tng ng gim theo. phn gii ln nht 10-bit xy ra khi gi tri PR2 l 255. Sau y l bng cho thy

phn gii theo gi tr PR2: ch Sleep, timer 2 s khng m na, gi tr chn CCPx gi nguyn. Khi c nh thc, timer2 tip tc m t gi tr c. Khi reset: cc port tr v trang thi Input (tt PWM) v cc thanh ghi CCP tr v trang thi Reset.

You might also like