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 CCS Technical Support

PIC18F2550 USB and clock configuration

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



Joined: 08 Aug 2007
Posts: 6

View user's profile Send private message

PIC18F2550 USB and clock configuration
PostPosted: Tue Aug 28, 2007 12:22 pm     Reply with quote

One more time... with feeling.

Why does this not work with a 12MHz crystal:
Code:
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN,NOBROWNOUT,MCLR


But this works with a 20MHz crystal:
Code:
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOBROWNOUT,MCLR


Been banging my head against a wall. The 12MHz crystal would not work with any combination of CPUDIVx or PLLx. I foraged and found a 20MHz crystal and it works fine (of course with the config reg change). Can anyone tell me why?
_________________
Don't ever stop learning...
Douglas Kennedy



Joined: 07 Sep 2003
Posts: 755
Location: Florida

View user's profile Send private message AIM Address

PostPosted: Tue Aug 28, 2007 1:56 pm     Reply with quote

Here is what I know
At 20Mhz
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOBROWNOUT,MCLR
The 20 mhz external crystal is pre scalled by div 5 (PLL5) to 4mhz
PLL multiplies by 16 to 96Mhz USBDIV post scales with div by 2 to 48MHZ
CPU clock is post scaled with
CPUDIV1 by with div by 2 for 48 MHZ
#use delay(clock=48000000)

At 12Mhz
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN,NOBROWNOUT,MCLR
The 12 mhz external crystal is pre scalled by div 3 (PLL3) to 4mhz
PLL multiplies by 16 to 96Mhz USBDIV post scales with div by 2 to 48MHZ
CPU clock is post scaled with
CPUDIV1 by with div by 2 for 48 MHZ
#use delay(clock=48000000)
The exact same result so both should work. I have had issues with certain chips running the CPU stage at 48Mhz...I know 32Mhz ( CPUDIV2) works every time. Try 32Mhz and see if that works
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Tue Aug 28, 2007 5:52 pm     Reply with quote

I tested this on a PicDem2-Plus with a 12 MHz crystal, with PCH vs. 4.053
and it puts out a 1 KHz squarewave on Pin B0.
Code:
#include <18F4550.h>
#fuses HSPLL, PLL3, CPUDIV1, NOWDT, PUT, BROWNOUT, NOLVP
#use delay(clock=48000000)

//====================================
void main()
{

while(1)
  {
   output_high(PIN_B0);
   delay_us(500);
   output_low(PIN_B0);
   delay_us(500);
  }

}
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