View previous topic :: View next topic |
Author |
Message |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
[SOLVED] CLKOUT waveform? |
Posted: Thu May 10, 2018 11:31 am |
|
|
PIC18LF24K40. Compiler version 5.078. For the first time ever (for any PIC) I'm attempting to use the CLKOUT on OSC2.
Code: | #use delay(internal=64000000, clock_out)
#FUSES CLKOUT |
3.3V supply.
It's running at 64MHz, confirmed. I do see a 16MHz waveform on OSC2 (pin A6), but it's misshapen. Instead of a waveform that varies between GND and 3.3V, I'm seeing a square-ish wave that toggles between ~2.8V and 3.3V.
Is this normal? I've tried two different boards and both show the same thing. Is there some other trick to get the CLKOUT signal to vary from GND to Vsupply?
Edit: Just tried doing the same thing but with a 16LF727. I see a rail-to-rail square wave with that.
Last edited by newguy on Mon May 14, 2018 12:41 pm; edited 1 time in total |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Thu May 10, 2018 12:43 pm |
|
|
Seriously doubt it's normal.... I'd suspect a kinda bad PIC ?, 'funny' PCB trace, floating or cap coupled to scope, bad scope probe( been nailed by that once ,arrgh...), crosstalk from another pin(BELL did that to me,ARRGH)...
Sure be nice to nail down why though.....
Jay |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu May 10, 2018 12:50 pm |
|
|
If no one else can test it, I have an 18F47K40 coming in later this
afternoon. I can put a scope on it. |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Thu May 10, 2018 12:59 pm |
|
|
PCM programmer wrote: | If no one else can test it, I have an 18F47K40 coming in later this
afternoon. I can put a scope on it. |
Yes please.
Temtronic: no electrical gremlins. Everything is kosher. Same equipment that confirms that a 16LF727 works was used to confirm that the 18LF24K40 doesn't. I like this particular PIC but it does seem to suffer from some "teething" type problems. |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Thu May 10, 2018 7:36 pm |
|
|
yeesh i have enough 'fun' with 'old' PICs or peripherals that I've never used before...how anyone has any hair left using the new and 'better' PICs is beyond me. |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri May 11, 2018 1:20 am |
|
|
The following program outputs a full-scale CLKOUT waveform, but it only
works up to 32 MHz. If I change the frequency to 64M, then CLKOUT has
an amplitude of 0.3v p/p.
Code: |
#include <18F47K40.h>
#fuses NOEXTOSC, NOWDT, BROWNOUT, PUT, NOLVP, NOXINST
#use delay(internal=32M, clock_out)
//======================================
void main()
{
while(TRUE);
} |
This was tested with a 3.3v Vdd, and compiler vs. 5.078. |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Fri May 11, 2018 5:25 am |
|
|
Hmm... don't use the PIC, havent DLD the datasheet
just food for thought...
to get 64Megs, does it use a PLL ? If so ,it could be the PLL 'acting funny', sending CLKOUT a bad signal,something we can't scope...
Curious, does it work OK at 5 volts? maybe the 64megs/3v isn't a good, though valid' combo ?
Jay |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Fri May 11, 2018 6:08 am |
|
|
PCM,
Interesting. Thank you. I also tried 2MHz and 1MHz with the same result. When I get in I'm going to try other frequencies as well. |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Fri May 11, 2018 6:20 am |
|
|
Ok.. doesn't sound like a PLL problem...assuming low clock bypasses PLL...
have you a couple more of the same PICs to try ? Maybe this one is 'damaged' (say from ESD ?? ) |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Fri May 11, 2018 7:26 am |
|
|
So....
64MHz: misshapen positive offset 0.5Vp-p waveform out.
48MHz: misshapen positive offset 1.5Vp-p waveform out.
32MHz: proper rail-rail output square wave.
16MHz: proper rail-rail output square wave.
12MHz: proper rail-rail output square wave.
8MHz: proper rail-rail output square wave.
4MHz: misshapen positive offset 2Vp-p waveform out.
2MHz: misshapen positive offset 1Vp-p waveform out.
1MHz: misshapen positive offset 0.5Vp-p waveform out.
Tested and confirmed with two different PCBs (same processor), same results. Didn't find the good waveforms because I only tried 64, 2, and 1MHz yesterday. I have a nice large SMD pad to probe the CLKOUT signal but admittedly my ground connection for my scope probe is bad as it's just me holding the negative clip on the ground side of an 0603 capacitor.
Reluctant to call it ESD but I can't completely rule that out either. Same behaviour with 2 samples, in my mind, points to the processor. What's most troubling is the low frequency oddness. I'd expect weirdness at high frequencies but not what are really quite low frequencies.
I'm going to chalk this one up to experience and from this point forward I'm not going to trust that I'll have a nice clock source handy unless I test it first. |
|
![](templates/subSilver/images/spacer.gif) |
drh
Joined: 12 Jul 2004 Posts: 192 Location: Hemet, California USA
|
|
Posted: Fri May 11, 2018 8:01 am |
|
|
newguy wrote: | So....
64MHz: misshapen positive offset 0.5Vp-p waveform out.
48MHz: misshapen positive offset 1.5Vp-p waveform out.
32MHz: proper rail-rail output square wave.
16MHz: proper rail-rail output square wave.
12MHz: proper rail-rail output square wave.
8MHz: proper rail-rail output square wave.
4MHz: misshapen positive offset 2Vp-p waveform out.
2MHz: misshapen positive offset 1Vp-p waveform out.
1MHz: misshapen positive offset 0.5Vp-p waveform out.
Tested and confirmed with two different PCBs (same processor), same results. Didn't find the good waveforms because I only tried 64, 2, and 1MHz yesterday. I have a nice large SMD pad to probe the CLKOUT signal but admittedly my ground connection for my scope probe is bad as it's just me holding the negative clip on the ground side of an 0603 capacitor.
Reluctant to call it ESD but I can't completely rule that out either. Same behaviour with 2 samples, in my mind, points to the processor. What's most troubling is the low frequency oddness. I'd expect weirdness at high frequencies but not what are really quite low frequencies.
I'm going to chalk this one up to experience and from this point forward I'm not going to trust that I'll have a nice clock source handy unless I test it first. |
Your local Microchip FAE might like to know about this. _________________ David |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Fri May 11, 2018 8:09 am |
|
|
Later today when I have time I'm going to open a support ticket with Microchip. The current errata says nothing about problems with the CLKOUT and the internal oscillator. |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19361
|
|
Posted: Fri May 11, 2018 10:35 am |
|
|
Remember the chip does have a programmable clock source. Might be easier to use this!...
Must admit I had a good 'online' search to see if anyone else had mentioned this. Given the small number of people who use the CLKOUT it doesn't seem to have been spotted yet. One possiblity is it may be 'batch specific' to a particular set of these chips. It must be fairly common though since PCM_programmer found one with the same problem.
Ouch.... |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Fri May 11, 2018 12:14 pm |
|
|
Ttelmah wrote: | Remember the chip does have a programmable clock source. Might be easier to use this!...
Must admit I had a good 'online' search to see if anyone else had mentioned this. Given the small number of people who use the CLKOUT it doesn't seem to have been spotted yet. One possiblity is it may be 'batch specific' to a particular set of these chips. It must be fairly common though since PCM_programmer found one with the same problem.
Ouch.... |
Good idea regarding the clock reference module. Will investigate later today.
I burned probably 3h yesterday wondering what I was doing wrong regarding the oscillator CLKOUT. I got sort of locked into using it because I'm migrating an existing product to a slightly different application, and the existing unit uses the processor's CLKOUT to generate a waveform that gets used in other parts of the circuit. Monkey see, monkey do. Anyway, hit this weird "wall" with the CLKOUT not working "as advertised", and grew progressively more frustrated throughout the day. |
|
![](templates/subSilver/images/spacer.gif) |
newguy
Joined: 24 Jun 2004 Posts: 1903
|
|
Posted: Fri May 11, 2018 2:21 pm |
|
|
Regarding the reference clock output module: similar behaviour to the CLKOUT module. Seems like the output clock driver has a usable bandwidth of ~8MHz. For example, set the processor to run at 64MHz from the internal clock and try to output that as well: output line sticks high. Set the divider to 8 and a wonderful 8MHz clock appears. However, this clock's duty cycle cannot be varied from 50%. If you try to set the processor's clock and divisor to any combination that results in an output frequency > 8MHz, and you're going to be disappointed. Same behaviour as with the CLKOUT: DC offset attenuated waveform which disappears entirely (line sticks high) once the desired output frequency gets too high. Seems like less than 8MHz is supported, but I haven't fully exercised everything such as trying to vary the duty cycle from 50%.
Edit: support ticket opened with Microchip. PCM, if you have a moment you should also open a ticket regarding the processor you played with yesterday. Sounds like it's either a data sheet omission (i.e. the output waveform is limited to be less than ~10MHz) or it's a pretty major screw up at the silicon level. |
|
![](templates/subSilver/images/spacer.gif) |
|