CHIPCAD KFT PIC TANFOLYAM PWM 1/7 TERVEZÉSI FELADAT A FELADAT EGY 5 khz-es FREKVENCIÁJÚ PWM JELET KIBOCSÁTÓ GENERÁTOR TERVEZÉSE. A PERÓDUSIDEJE A 200 µsec PERÓDUSIDEJŰ JEL KITÖLTÉSÉNEK 1 200 µsec TARTOMÁNYBAN KELL VÁLTOZNIA 1 µsec -OS LÉPÉSBEN. AZ ADOTT KITÖLTÉS SZÁMÉRTÉKÉT SOROS VONALON KAPJA A GENERÁTOR. 200 MIKROSEC A PWM periódusidejét a PR2 regiszter tartalma határozza meg. A frekvencia ennek reciproka. Mikor TMR2 regiszter tartalma megegyezik a PR2-ben lévő értékkel, a következők történnek: 1.TMR2 törlődik 2.CCP1 láb 1 állapotú lesz, (ha PWM kitöltés 0%, akkor CCP1 láb 0 marad.) 3.A PWM kitöltés értéke CCPR1L regiszterből CCPR1H regiszterbe másolódik. 4. A frekvencia beállításához csak TMR2 előosztóját használhatjuk! (ADATLAP!) Ennek értéke 1,4,16 lehet csak. PWM Period = [(PR2) + 1] * 4 * TOSC * (TMR2 Prescale) 8 MHz-es óra esetén TOSC=0.125 mikrosec 200=(x+1)*4*0.125*(1,4,16) 200=(x+1)*0.5*4 x=99 1-es előosztásnál PR2>256!, illetve 16-os előosztó választásával x nem lesz egész, vagyis a frekvencia nem lesz pontos.
CHIPCAD KFT PIC TANFOLYAM PWM 2/7 PWM KITÖLTÉSI TÉNYEZŐJE A PWM KITÖLTÉSI 10 BITES TÉNYEZŐJÉT A CCPR1L REGISZTERBE ÍRT 8 BIT (FELSŐ BITEK), ÉS CCP1CON<5:4> LEGELSÓ KÉT BIT) BITJEI HATÁROZZÁK MEG. AZAZ: [CCPR1L:CCP1CON<5:4>]. A KÖVETKEZŐ EGYENLET HASZNÁLHATÓ: PWM Duty Cycle = (CCPR1L:CCP1CON<5:4>) TOSC (TMR2 Prescale Value) CCPR1L:CCP1CON<5:4> ÚJ ÉRTÉKEIT BÁRMIKOR ÍRHATJUK, A KITÖLTÉSI TÉNYEZŐ VÁLTOZTATÁSÁHOZ, DE CSAK ÚJ PERIÓDUS KEZDETEKOR KERÜL BEÍRÁSRA (KETTŐS PUFFERELÉS). PWM MÓDBAN CCPR1H CSAK OLVASHATÓ REGISZTER. VIGYÁZAT! HA A MAXIMÁLIS KITÖLTÉS 200 MIKROSEC, AKKOR 200= [CCPR1L:CCP1CON<5:4>] * 0.125 * 4 VAGYIS [CCPR1L:CCP1CON<5:4>] ÉRTÉKE MAXIMUM 400 LEHET! HA ENNÉL NAGYOBB ÉRTÉKET ÍRUNK BE, AKKOR A PWM KIMENET MINDIG 1 LESZ. A MAXIMÁLIS PWM FELBONTÁS EGY ADOTT PWM FREKVENCIÁNÁL: PWMRmax=LOG(8000/5)/LOG(2) 2^PWMRmax=250 PWMRmax közel 8 bit VAGYIS 1 BITHEZ KB. 0,5 MIKROSEC LÉPÉS TARTOZIK
CHIPCAD KFT PIC TANFOLYAM PWM 3/7 T2CON ÉS CCP1CON REGISZTEREK
CHIPCAD KFT PIC TANFOLYAM PWM 4/7 A PROGRAM FŐBB RÉSZEI (A TELJES:PWM5KHZ.ASM) ;PWM periódus: PR2 feltöltése ;PWM kitöltés CCPR1L:CCP1CON<5:4> ;CCP1 láb kimenenet - TRISB<3> bit törlése. MOVLW B'00001100' MOVWF CCP1CON movlw.99 ;PWM frekvencia 5kHz movwf PR2 ; bcf TRISB,3 ;kimenet movlw 0x01 ;most ez lesz a kitöltés movwf CCPR1L ; ;TMR2 beállítása T2CON feltöltésével ;Configure the CCP2 module for PWM operation movlw B'00000101 ;1:1 post 1:4 pre t2on movwf T2CON AZ ITT LÁTHATÓ RÉSZ INICIALIZÁLJA A PWM PERIFÉRIÁT. A KITÖLTÉS: CCPR1L:CCP1CON<5:4> ÉRTÉKEK MÓDOSÍTÁ- SÁVAL VÁLTOZTATHATÓ. A 10 BITES KITÖLTÉSI TÉNYEZŐT, PRAKTIKUSAN EGY 16 BITES REGISZTER TARTALMÁVAL KELL FEL- TÖLTENI. A FELADAT NEM KELLEMES: A PWMD_H:PWMD_L REGISZTER 10 BITES TARTALMÁT KELL ÁTMOZGATNI A VÁZOLT MÓDON: CCPR1L: CCP1CON<5:4> 6 BIT 8+2 = 10 BIT PWMD_H PWMD_L
CHIPCAD KFT PIC TANFOLYAM PWM 5/7 PWM FELTÖLTÉSE ;A 16 BITES REGISZTER TARTALMÁT 6 BITTEL BALRA FORGATJUK ;ÁTMÁSOLJUK MAJD TOVÁBBFORGATVA VISSZÁLL AZ EREDETI ;000000XX XXXXXXYY TOLÁS PWMD_H PWMD_L ;XXXXXXXX YY000000 CCPR1L=PWMD_H ;CCP1CON.5=PWMD_L.7 CCP1CON.4=PWMD_L.6 ;HASZNÁLJA: PWMD_H,PWMD_L,CIKL REGISZTEREKET PWM_DUTY MOVLW.6 ;FORGATÁS BALRA 6-SZOR MOVWF CIKL ;CY ÉRTÉKE NEM ÉRDEKES TOL6 RLCF PWMD_L,F ;CY=L.7 RLCF PWMD_H,F ;H.0 = CY DECFSZ CIKL,F BRA TOL6 MOVFF PWMD_H,CCPR1L ;MÁSOLÁS BITCOPY PWMD_L,7,CCP1CON,5 BITCOPY PWMD_L,6,CCP1CON,4 MOVLW.11 ;TOVÁBBFORGATVAEREDETI ÁLL. MOVWF CIKL TOL11 RLCF PWMD_L,F ;CY=_L.7 RLCF PWMD_H,F ;H.0 = CY DECFSZ CIKL,F BRA TOL11 RETURN 16 BITES REGISZTER- FORGATÁSSAL OLDHATÓ MEG A FELADAT. A 10 BITES KITÖLTÉSI TÉNYEZŐT TARTALMAZÓ PWMD_H:PWMD_L REGISZTER TARTALMÁT 6 SZOR BALRA FOGATJUK, A KAPOTT ÉRTÉKET MÁSOLJUK, MAJD TOVÁBB-FORGATJUK AZ EREDETI ÁLLAPOTÁBA. BITCOPY MACRO REG1,BIT1,REG2,BIT2 BTFSS REG1,BIT1 BCF REG2,BIT2 BTFSC REG1,BIT1 BSF REG2,BIT2 ENDM
CHIPCAD KFT PIC TANFOLYAM PWM 6/7 PROGRAMRÉSZLETEK PINI MOVLW HIGH.200 MOVLW LOW.200 IDE RCALL BE_HEX RCALL BE_HEX BRA IDE PINI MOVLW HIGH.200 MOVLW LOW.200 IDE RCALL BE_HEX RCALL BE_HEX BRA IDE BE_SOROS BTFSS PIR1,5 ;RCIF=1, HA JÖTT BRA BE_SOROS MOVF RCREG,W ;VETT ADAT W-BEN MOVWF CHARBUF BSF STATUS,Z CLRF PIR1 RETURN A TELJES PROGRAMOT A PWM5KHZ.ASM FÁJL TARTALMAZZA.
CHIPCAD KFT PIC TANFOLYAM PWM 7/7 PWM DEMO