Vai al contenuto
PLC Forum


PLL Mplabx XC8 strano comportamento


carlitost

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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 ?

Link al commento
Condividi su altri siti

  • 2 weeks later...

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...