I've look at the wrong register, sorry. -- generates 5Khz 50% duty PWM1CLKCON = 0b00000000 ; Fosc PWM1CON = 0b11000000 PWM1PH = 800 PWM1DC = 1600 PWM1PR = 1600
-- generates 10Khz 50% duty PWM1CLKCON = 0b00000001 ; HFINTOSC PWM1CON = 0b11000000 PWM1PH = 800 PWM1DC = 1600 PWM1PR = 1600 On Mon, Dec 16, 2024 at 8:57 AM vsurducan <[email protected]> wrote: > Rob, your PWM prescaler is set to divide source by 2. > PWM1CLKCON = 0b00000001 -- No prescaler, divide clk source by 1 > 5KHz it's correct. :) Yourscope has also antialising filter. :) :) there > is a Philips scope which does not handle antialising . Or Hantek. > > On Mon, Dec 16, 2024 at 8:46 AM vsurducan <[email protected]> wrote: > >> Hi Rob, I have understood some things: >> 1. Indeed the 12F1572_blink_intosc, with pragma target CLKOUTEN ENABLED >> returns Fosc/4 on RA4 pin only if forever loop end loop exists. If you >> expect to have that clock without any repetitive main program (comment the >> forever loop), it will not be there. >> It's possible to be a compiler issue, or a normal behavior of the >> microcontroller, I do not now. >> >> 2. The code below is showing on my scope 10Khz. However I've learned that >> depends by antialising filter of the scope. >> Can you please take a look on the scope on 20uS time base, on both 8MHz >> and 32Mhz Clock? I'm curious what you will find. >> >> On Sun, Dec 15, 2024 at 10:12 PM Rob Hamerling <[email protected]> >> wrote: >> >>> >>> I'm not sure if I fully understand the description of PWM in the >>> datasheet... >>> You have selected HFINTOSC as clock source for PWM. I think this should >>> be Fosc . >>> I modified my code to run the 12f1572 at 8MHz with INTOSC_NOCLKOUT and >>> added your code for PWM (but with Fosc as clock source) >>> With the following (essential part of the) code I get a 5 KHz signal on >>> pin_A1 with 50% dutycycle: >>> >>> PWM1CON = 0b11000000 -- enable module and pwm pin, standard pwm >>> mode >>> PWM1CLKCON = 0b00000000 -- No prescaler, source: Fosc >>> PWM1PH = 800 -- phase count high (for 50% dutycycle) >>> PWM1DC = 1600 -- PWM1 phase count >>> PWM1PR = 1600 -- PWM1 period count >>> APFCON_P1SEL = 0 -- PWM1 output on pin_A1 >>> pin_A1_direction = OUTPUT >>> >>> Rob_H >>> >>> >>> >>> On 15-12-2024 16:14, vsurducan wrote: >>> >>> Thx Rob for the feedback! >>> >>> Well. I've checked the hardware, I have a PCB manufactured in lab, A4 >>> goes to a connector only. >>> I suspect a defective chip. It also has a weird behavior on PWM. >>> There are five registers to be written to get the standard PWM mode as >>> shown in the code below. >>> The PWM clock source was set to Fosc (PWM1CLKCON_CS = 00) >>> That is meaning according to my understanding that changing the Foc from >>> 8Mhz to 32MHz and keeping the PWM registers unchanged, the PWM frequency >>> will increase 4 times on 32Mhz compared with 8 Mhz. >>> However, the frequency reamains exactly the same, 10KHz at 8Mhz or 32Mhz >>> ( verified on RA4) so the PWM clock arhitecture from datasheet seems to be >>> wrong, or the chip is bad. >>> >>> PWM1CLKCON = 0b00000001 -- No prescaler, divide clk source by 1 >>> PWM1CON = 0b11000000 >>> >>> PWM1PH = 800 --100uS, 0.5duty >>> PWM1DC = 1600 ; PWM1_duty = (PWM1DC - PWM1PH)/(PWM1PR+1) >>> PWM1PR = 1600 ; PWM1_period = (PWM1PR + 1)*prescaler/ PWM1CLK >>> ; PWM1CLK = 1/(target_clock/4) = 0.5uS at 8MHz >>> >>> On Sun, Dec 15, 2024 at 4:41 PM Rob Hamerling <[email protected]> >>> wrote: >>> >>>> >>>> Just tested the jallib blink sample (which is running at 4 MHz). At >>>> pin_A4 see a freq. of 0.998 MHz. So it seems like you have a >>>> hardware/wiring problem.. >>>> >>>> On 14-12-2024 12:15, vsurducan wrote: >>>> >>>> Hi Rob, >>>> I'm trying to understand the PWM in PIC12F1572, for which the pwm >>>> library can not be used. >>>> >>>> I need to see the system clock. >>>> The problem is that I can not make it visible on clockout pin. The >>>> following code should do it? >>>> >>>> include 12f1572 -- target PICmicro >>>> -- >>>> ;pragma target clock 32_000_000 -- oscillator frequency >>>> pragma target clock 8_000_000 -- oscillator frequency >>>> -- >>>> pragma target OSC INTOSC_NOCLKOUT -- internal oscillator >>>> pragma target PLLEN DISABLED -- PLL off >>>> pragma target CLKOUTEN ENABLED -- clock output enabled >>>> pragma target WDT DISABLED -- watchdog >>>> pragma target BROWNOUT DISABLED -- no brownout reset >>>> pragma target LVP ENABLED -- low voltage >>>> programming >>>> pragma target MCLR EXTERNAL -- external reset >>>> -- >>>> >>>> OSCCON_SCS = 0 -- select primary oscillator >>>> OSCCON_IRCF = 0b1110 -- 8 MHz >>>> ;OSCCON_SPLLEN = ENABLED -- software PLL on 8x4=32MHz >>>> OSCCON_SPLLEN = DISABLED - 8Mhz OSC >>>> -- >>>> enable_digital_io() -- make all pins digital I/O >>>> pin_A4_direction = output ; output osc/4 >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "jallib" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion visit >>>> https://groups.google.com/d/msgid/jallib/CAM%2Bj4qskr5urcQxa_Ok3gHTeq4nMBAtz%2BkmziB4kBf1HBuHCJg%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/jallib/CAM%2Bj4qskr5urcQxa_Ok3gHTeq4nMBAtz%2BkmziB4kBf1HBuHCJg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> >>>> -- >>>> *Rob H*amerling, Vianen, NL >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "jallib" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion visit >>>> https://groups.google.com/d/msgid/jallib/1c978896-3436-41c8-be39-b2d1bd05dc3b%40gmail.com >>>> <https://groups.google.com/d/msgid/jallib/1c978896-3436-41c8-be39-b2d1bd05dc3b%40gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "jallib" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsF4Ew0bxJG1h_CkC4cHSxyS%3DTEGtHeVtwFzm4h%2B53y5Q%40mail.gmail.com >>> <https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsF4Ew0bxJG1h_CkC4cHSxyS%3DTEGtHeVtwFzm4h%2B53y5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >>> >>> -- >>> *Rob H*amerling, Vianen, NL >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "jallib" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/jallib/7f22d2e1-7fbb-4e45-b68f-5ef134aa285f%40gmail.com >>> <https://groups.google.com/d/msgid/jallib/7f22d2e1-7fbb-4e45-b68f-5ef134aa285f%40gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/jallib/CAM%2Bj4qs%3DSqXjMQ0fd%3DMvdNTMpuXBiaBTzi0gSL8QAksWa9%3DV8Q%40mail.gmail.com.
