CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

Osc problem with 18LF4525

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
KL



Joined: 24 Feb 2004
Posts: 11

View user's profile Send private message

Osc problem with 18LF4525
PostPosted: Mon Oct 08, 2012 2:54 pm     Reply with quote

I'm using a PIC18LF4525 and can not see the 20 Mhz clock signal with the O-scope. The chip powers up and appears to run off the internal clock. I initially used a developer board with a PIC18LF4525 to develop the code and it works fine on that board. I set the fuses as shown:
Code:

#include <18F4525.h>
#device adc=10
#device *=16
#device ICD=TRUE
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH)
                                       //       >10mhz for PCD)
#FUSES NOPROTECT                //Code not protected from reading

#FUSES BROWNOUT                 //Reset when brownout detected

#FUSES PUT                      //Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O
                                             // on RESET
#FUSES LPT1OSC                  //Timer1 configured for low-power
                                            // operation
#FUSES MCLR                     //Master Clear pin enabled

#use delay(clock=20000000)
#use fast_IO(A)
#use fast_IO(B)
#use fast_IO(C)
#use fast_IO(D)
#use fast_IO(E)

In the "main" I have set
Code:

set_tris_a (0xC1);             // 3 inputs, 5 outputs

Is it possible there is a SW setting I have overlooked that would diminish the osc signal on the PIC? Or could I have a bad crystal? I have 2 new boards with the same problem. I have changed the crystal and caps without any success. I'm using ECS-200-20-4XDN along with 20pf, Digi Key 399-1196-1-ND caps.

Any feedback is appreciated.

Thanks
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 3:14 pm     Reply with quote

What's the Vdd voltage on the PIC ?
KL



Joined: 24 Feb 2004
Posts: 11

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 3:25 pm     Reply with quote

VDD = 5V .
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 3:49 pm     Reply with quote

I have an 18LF4620, which is in the same PIC family (same data sheet)
as the 18LF4525. It works for me. I ran it at +5v and I see a 20 MHz
0 to 5v sinewave on pin 14 of the PIC. I tested it with compiler vs. 4.137.

Do you have a pull-up resistor (to +5v) on the MCLR pin ? You need one.

Is the crystal connected between pins RA6 and RA7 (pins 14 and 13) ?
KL



Joined: 24 Feb 2004
Posts: 11

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 3:58 pm     Reply with quote

I have a pull up to 5V+ on MCLR. Also, the new board has a TQFP package and I have the osc leads on RA6 and RA7, pins 30 and 31.

Thanks for the feedback
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 4:31 pm     Reply with quote

First, try it without the ICD enabled. Comment it out like this and
re-compile and test it.
Code:
// #device ICD=TRUE

That's because CCS changes PUT and BROWNOUT to NOPUT and
NOBROWNOUT when you use the ICD. (And other fuses are changed
as well). This could potentially be the cause of your problems.

Also try disabling the FCMEN fuse. Change your current fuse setting to this:
Code:

#FUSES NOFCMEN
KL



Joined: 24 Feb 2004
Posts: 11

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 4:50 pm     Reply with quote

I tried both options and still have the same problem.

Thanks,
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Oct 08, 2012 4:59 pm     Reply with quote

Read Newguy's post about ground fill around the crystal circuit causing
problems:
http://www.ccsinfo.com/forum/viewtopic.php?t=25592
Ttelmah



Joined: 11 Mar 2010
Posts: 19359

View user's profile Send private message

PostPosted: Tue Oct 09, 2012 2:22 am     Reply with quote

As a comment, the capacitors you are using are _not_ correct for the crystal. It should though still work.

On a crystal, you want the total capacitance of the circuit, that the crystal 'sees' in parallel with it, to equal the load capacitance. For this crystal 20pF. Now the two capacitors put onto the crystal, are seen _in series_ with each other, and in parallel with the pin capacitances, to give the 'load'.

So (for instance), if the pins have 3pF capacitance to ground each, with your 20pF capacitors, the two capacitors are seen by the crystal _in series with each other, paralleled by their pin capacitances_. So you get:

(20+3)/2 = 11.5pF
Nowhere near the 20pF required.

This is why typical capacitors on the crystal circuits are 33pF, for crystals requiring 20pF. Gives about 18 to 19pF seen by the crystal. 20pF capacitors are normally used for crystals requiring perhaps 12pF load.

Typically pin capacitances are around 3pF, to 5pF (if the board is not so carefully cleaned).

I agree about the comments on relieving the ground plane.

Other thing is it is sometimes necessary to add a large parallel resistance to the crystal to ensure clean start-up - perhaps 1MR. However if you are seeing some oscillation this is not the problem.

Best Wishes
KL



Joined: 24 Feb 2004
Posts: 11

View user's profile Send private message

PostPosted: Tue Oct 09, 2012 4:28 pm     Reply with quote

Thank you for the feedback. I increased the capacitance and added the 1M across the crystal and I now have a 20Mhz clock signal.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group