PDA

View Full Version : 125KHz HW PWM Output



Zebryk
- 26th June 2022, 01:28
Greetings!

Having problems generating a clean 50% duty cycle hardware PWM @125KHz using a PIC16F628 with a 20MHz crystal.
The below is from a 2002 Microchip AppNote: (Which specified a 16F628 in the original schematic.)

The drive signal can be generated directly by the PWM
unit on most PIC® microcontrollers such as a
PIC16F627 microcontroller. For a device operating at
20 MHz, one can obtain a 125 kHz signal by setting the
Timer2 prescaler to 1. A period of 8 μs is then obtained
by setting the PR2 register to 39. To get a 50% duty
cycle output, set CCPR1L to 14 and CCP1CON<5:4>
to <0:0>. These settings will ensure a constant carrier.
To modulate the data, one can turn the drive signal on
and off by setting and clearing the CCP1RIL bit.

My interpertation of the above code is:
PR2 = 39 ' A period of 8 µs is then obtained by setting the PR2 register to 39.
CCPR1L = 14 ' To get a 50% duty cycle output, set CCPR1L to 14 and CCP1CON<5:4> to <0:0>.
CCP1CON = %00001100 ' PWM Mode, CCP1CON<5:4> = <0:0>
T2CON = %00000100 ' For a device operating at 20 MHz, one can obtain a 125 kHz signal by setting the Timer2 prescaler to 1.

However, this results in the below:

9243

http://www.picbasic.co.uk/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAAB 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 OX/2CTslZgB9/0AAAAASUVORK5CYII=

Note that although it is exactly 125.0KHz, it is not symetrical and has an approximate duty cycle of 2.8us/5.2us * 100 = 35%

Although running on an old dev board from Bruce Reynolds, I would prefer to update to a PIC10(LF32x) dev board.
(Or something from melabs.)

Suggestions?

Jay Zebryk, W1JRZ​

richard
- 26th June 2022, 02:51
Note that although it is exactly 125.0KHz, it is not symetrical and has an approximate duty cycle of 2.8us/5.2us * 100 = 35%

maybe more like duty cycle of 2.8us/8us * 100 = 35%



CCPR1L = 14 ' To get a 50% duty cycle output, set CCPR1L to 14 and CCP1CON<5:4> to <0:0>.

or correctly
' To get a 50% duty cycle output,
CCPR1L to $14 and CCP1CON<5:4> to <0:0>.

Zebryk
- 26th June 2022, 04:43
I found this:

https://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html

Which produces this:

PR2 = 0b00001001 ;
T2CON = 0b00000101 ;
CCPR1L = 0b00000100 ;
CCP1CON = 0b00111100 ;

Running that results in 3.8 / (3.8 +5.2) = 47.5% which is much closer.

FYI: This is for a RFID application wherein the center frequency is important to the resonate gain of the attached antenna.

Wondering if this is an 8, 10 or 16Bit computation?
Wondering if this makes any difference consideration the even value of 125.0KHz?

Thanks,

Jay Zebryk, W1JRZ

richard
- 26th June 2022, 06:39
totally missing the point

CCPR1L = $14 not 14 ; its hex 14 or dec 20

Ioannis
- 27th June 2022, 14:40
It is a 10bit PWM system but the resolution of the PWM signal depends on the PWM period or frequency. Higher the frequency, the lower the resolution.

So, at 20MHz and a frequency signal of 125KHz, the resolution will be 7 bits only, even though the control register is 10bit wide.

Ioannis

Zebryk
- 27th June 2022, 18:59
Ioannis,

Thanks for the feedback!

I have been using the attached calculator from Mister E.

9245

http://www.picbasic.co.uk/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaIAAAGbCAYAAAC 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

Is the Duty Step % (0.625) X 50% = 31.25% the problem?
(I am measuring 3.8uS On / 4.2uS Off)
How can I set it for 4mS On / 4mS exactly?

(FYI, I am headed towards filtering the Square wave into a Sine wave and want it to be symetrical.)

Is this even doable with the ancient 16F628?
I am only using this because I had the Dev Boards handy.
Do you remember Bruce Reynolds?
What would you recommend for a 8PIN Dip?

Peace,

Jay Zebryk

mpgmike
- 27th June 2022, 20:49
Referencing the Mister e Calculator, it looks like the best resolution you can get is 0 to 160, where 160 will be 100% Duty Cycle.

Zebryk
- 27th June 2022, 21:08
Hi,

That implies one needs to set the Duty Cycle to 80 to get a 4uS On / 4uS Off square wave?
(This does not make sense to me.)

Thanks,

Jay Zebryk

HenrikOlsson
- 27th June 2022, 21:21
Richard already covered it but it seems to have been overlooked.

The duty cycle register is 10bit wide but, as Ioannis says, the usable number of bits differs depending on the PWM period. The calculator tells you that for 125kHz (with PR2=39) varying the duty cycle register from 0 to 160 will give you a duty cycle of 0-100%.

For 50% duty cycle you obviously want to set the register to 80.

Now, remember that the register is 10bit wide and that two low order bits are in CCP1CON so what goes in CCPR1L is the top 8 bits of the 10bit value. Or, in this case 80/4=20 which, as Richard rightly points out is $14.

richard
- 28th June 2022, 01:56
Is the Duty Step % (0.625) X 50% = 31.25% the problem?(I am measuring 3.8uS On / 4.2uS Off)
How can I set it for 4mS On / 4mS exactly?

your understanding is flawed and math is incorrect

Duty is Steps x 0.625% // steps = CCPR1L x4 + CCP1CON<5:4>

so:
80x0.625% = 50% <=> steps = 20x4 + 0
56x0.625% = 35% <=> steps = 14x4 + 0