Jump to content
PLC Forum


Sign in to follow this  
carlitost

PLL Mplabx XC8 strano comportamento

Recommended Posts

carlitost

Buonasera,

Volevo generare un pwm con frequenza a 18700 HZ con un DC 5%, premetto che come da titolo, sto usando MPLABx e XC8,

Ho impostato l'oscilatore interno a 16mhz imposto il PLL con OSCTUNE =0x40 (0b01000000)

imposto:

PR2 = 0b11010101 ;
T2CON = 0b00000101 ;
CCPR1L = 0b00001010 ;
CCP1CON = 0b00101100 ;

simulo il tutto con proteus e ottengo un pwm con frequenza 18691 HZ.

Credo sia accettabile. ma la cosa strana e' che se invece di usare OSCTUNE=0x40 uso

 

OSCTUNEbits.INTSRC = 0b0;        //bit 7 INTSRC: Internal Oscillator Low-Frequency Source Select bit
                                                      //      1 = 31.25 kHz device clock derived from 16 MHz HFINTOSC source (divide-by-512 enabled)
                                                      //      0 = 31 kHz device clock derived directly from LFINTOSC internal oscillator
OSCTUNEbits.PLLEN = 0b1;         //bit 6 PLLEN: Frequency Multiplier PLL for HFINTOSC Enable bit(1)
                                                      //      1 = PLL enabled for HFINTOSC (8 MHz and 16 MHz only)
                                                      //      0 = PLL disabled
OSCTUNEbits.TUN = 0b000000;   //bit 5-0 TUN<5:0>: Frequency Tuning bits
                                                      //      011111 = Maximum frequency
                                                      //      011110 =
                                                      //       • • •
                                                      //      000001 =
                                                      //      000000 = Oscillator module is running at the factory calibrated frequency.
                                                      //      111111 =
                                                      //       • • •
                                                      //      100000 = Minimum frequency

 

Che dovrebbe essere uguale a OSCTUNE =0x40....  ottengo in simulazione una frequenza di 17800 Hz

 

Dove sbaglio ??? 

Oppure è il compilatore free che fa ste cose?

 

Dimenticavo il pic è un 18f24k20.

 

Grazie.

Carlo

Share this post


Link to post
Share on other sites

carlitost

Vi aggiorno... dopo alcune prove ho dato la colpa a proteus... (sbagliando), infatti ho provato il tutto su un pic reale e frequenzimetro alla mano ottengo 2 frequenze diverse e rispettivamente 18670Hz e 17250hz a questo punto credo proprio che sia il compilatore a fare questi scherzi, quanquno ha per caso il compilatore per xc8 pro e un po di tempo per aiutarmi ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...