EDIT: Länk till nedan omtalade datablad: http://ww1.microchip.com/downloads/en/D ... 41291E.pdf
God-dagens!
Håller på att mecka med PWM-modulen i PIC16F886 och behöver hjälp att tolka databladet.
I sektion 11.5.3 (PWM resolution) i databladet står det i tabellen för 8MHz-klocka att "maximum resolution@4.90kHz period=8 bits".
I exemplet för dessa frekvenser har dem dock satt prescaler till 4 och PR2 till 0x65 vilket genererar en upplösning på ca 6.74 bitar enligt formeln på samma sida.
Hur ska man ställa registren för att få 8 bitars upplösning på PWM-modulen?
Sätter jag prescalern till 1 och maxar PR2 så kommer jag ändå inte ner i 5kHz.
MVH
/Tottish
Hjälp med PWM-upplösning i PIC16F886
Är du ute efter exakt 8 bitars upplösning eller exakt 5000Hz?
0x65 är väl 101 decimalt så med formeln 11-4 får jag resultatet 8,67 bitar.
Testa med prescaler 1:4 och PR2 satt till 99. Du borde få 5000Hz.
Frekvens:
Enligt formel 11-1: (99+1) * 4 * (1/8000000) * 4 = 0,0002 eller 0,2mS eller 5kHz.
Upplösning:
Enligt formel 11-4: log (4*(99+1)) / log (2) = 8,64 bitar.
Då kan du sätta dutycycle registren till mellan 0 och 400 vilket ger dig 0-100% i steg om 0.25%.
0x65 är väl 101 decimalt så med formeln 11-4 får jag resultatet 8,67 bitar.
Testa med prescaler 1:4 och PR2 satt till 99. Du borde få 5000Hz.
Frekvens:
Enligt formel 11-1: (99+1) * 4 * (1/8000000) * 4 = 0,0002 eller 0,2mS eller 5kHz.
Upplösning:
Enligt formel 11-4: log (4*(99+1)) / log (2) = 8,64 bitar.
Då kan du sätta dutycycle registren till mellan 0 och 400 vilket ger dig 0-100% i steg om 0.25%.
Helt rätt av dig H.O.
Vet inte hur jag räknade för att komma fram till det jag gjorde men rätt var det inte i alla fall.
Det som kändes övertygande var att min felräkning faktiskt stämde bra överens med det som jag fick fram när jag labbade. Detta ledde mig till att tro att jag tolkat databladet fel.
Hmmmmm....
Ska labba lite till och återkommer med resultatet.
Tack för hjälpen!
MVH
/Tottish
EDIT:
Nu tror jag att jag fått kläm på det. Jag tänkte fel igår. Tänkte att om man bara har säg 8 bitar så kommer bara de 8MSb att räknas men det blir ju de 8LSb.
Tack för rättandet av min felräkning H.O!
MVH
/Tottish
Vet inte hur jag räknade för att komma fram till det jag gjorde men rätt var det inte i alla fall.
Det som kändes övertygande var att min felräkning faktiskt stämde bra överens med det som jag fick fram när jag labbade. Detta ledde mig till att tro att jag tolkat databladet fel.
Hmmmmm....
Ska labba lite till och återkommer med resultatet.
Tack för hjälpen!
MVH
/Tottish
EDIT:
Nu tror jag att jag fått kläm på det. Jag tänkte fel igår. Tänkte att om man bara har säg 8 bitar så kommer bara de 8MSb att räknas men det blir ju de 8LSb.
Tack för rättandet av min felräkning H.O!
MVH
/Tottish