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

How to enable 16X PLL in DSPIC30F6010A

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
[email protected]



Joined: 28 Jul 2014
Posts: 38

View user's profile Send private message

How to enable 16X PLL in DSPIC30F6010A
PostPosted: Sat Jan 17, 2015 2:48 pm     Reply with quote

Please tell me the setting for enabling 16x pll. I am using 4 mhz crystal and i use the following:
Code:
 
#FUSES NOWDT  //No Watch Dog Timer

#FUSES XT_PLL16
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES NOBROWNOUT               //No brownout reset

#device ICSP=1

#use delay(clock=64MHz,crystal=4MHz)

Not working. Please guide where i am wrong.
If i use only
Code:
#use delay(crystal=4mhz)

it works.

Regards
cbarberis



Joined: 01 Oct 2003
Posts: 172
Location: Punta Gorda, Florida USA

View user's profile Send private message Send e-mail

PostPosted: Sun Jan 18, 2015 11:11 am     Reply with quote

This can be answered in various ways depending on the version of your compiler. For what I understand on the latest version 5.xx the compiler sets up the correct fuses for you when you use the #use delay(crystal=xxMHz) statement. So if your crystal= 4MHz and you want to use 16X PLL (providing this feature is applicable in the PIC hardware) you would only need to use the following statement: #use delay(crystal=64MHz)
You do not need to use the: #FUSES XT_PLL16 or #FUSES HS, however I do believe that you can still declare other oscillator setup like: #FUSES CKSFSM
Ttelmah



Joined: 11 Mar 2010
Posts: 19561

View user's profile Send private message

PostPosted: Sun Jan 18, 2015 12:24 pm     Reply with quote

Agreed.
However the other possible problem, is that he may need to actually enable the primary oscillator.
On quite a few chips like this, you must both setup the oscillator, and separately enable it.

Big question is 'what compiler version'?.
Vital for a question like this, since as Cbarberis says, the default behaviour for several of the settings, changes with compiler version.

Have just checked, and this chip isn't one that requires a separate oscillator enable.
You wouldn't use 'crystal=64M', since this is illegal...

Have just tested with:
Code:

#include <30F6010A.h>
#FUSES NOWDT 
#FUSES NOMCLR
#FUSES XT_PLL16
#FUSES CKSFSM
#FUSES BORV27
#FUSES NOBROWNOUT               //No brownout reset

#device ICSP=1

#use delay(clock=64MHz) //Since the oscillator is setup above, just
//tell the compiler what frequency the chip is running.
void main(void)
{
   while(TRUE)
   {
      output_toggle(PIN_G2);
      delay_ms(100);
   }
}

And 5.028, and it merrily runs OK, and at the right frequency with a 4Mhz crystal.
The only things I changed, were MCLR (the board I have this chip on doesn't have a pull up on this signal), and setting the brownout voltage (though it is disabled). I've had some oddities with a couple of chips in this family, if the brownout voltage is set to the 'reserved' setting (the default), not working properly even if the brownout is disabled....
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