![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
USB and Crystal frequency |
Posted: Mon May 23, 2011 1:03 pm |
|
|
Colleagues,
I wrote a working code based USB HID example (fuses that set the clock are below). USB host successfully enumerates my device if it has 20MHz crystal (xtal).
Code: | #include <18F2550.h>
#device ICD = TRUE
#fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN
#use delay(clock = 48000000)
#define USB_HID_DEVICE TRUE
// ... |
How can I make it work with 12MHz crystal? If I simply install a 12MHz crystal, USB host doesn’t enumerate my device, although the rest of the firmware runs (with slower timing, of course).
I bet, this subject came up in the forum before, but I couldn’t find those threads.
Any suggestion, insight or reference is really appreciated!
Cheers,
- Nick _________________ Read the label, before opening a can of worms. |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon May 23, 2011 1:11 pm |
|
|
Quote: |
USB host successfully enumerates my device if it has 20MHz crystal.
#include <18F2550.h>
#device ICD = TRUE
#fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN
#use delay(clock = 48000000)
|
The PLL requires a 4 MHz input. The fuse shown in bold is the pre-scaler.
20 MHz / 5 = 4 MHz. Look in the 18F2550.h file to see other available
pre-scaler values for that fuse. |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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
|