Forum: Mikrocontroller und Digitale Elektronik Problem: PIC24F Taktfrequenz umstellen (PLL)


von Dieter (Gast)


Lesenswert?

Hallo,

ich hab meinen PIC24FJ128GA106 immer mit folgenden Configurations-Bits 
betrieben.

1
_CONFIG1( JTAGEN_OFF &     //JTAG:       disabled
2
      GCP_OFF &     //Code Protect:   disabled
3
      GWRP_OFF &     //Write Protect:   disabled
4
      COE_OFF &     //Clip-on Emulation mode: disabled
5
      FWDTEN_OFF &   //Watchdog Timer:   disabled
6
      ICS_PGx2 )     //ICD pins select:   EMUC/EMUD share PGC2/PGD2
7
8
9
_CONFIG2( FCKSM_CSDCMD &   //Clock switching and clock monitor: Both disabled
10
      OSCIOFNC_ON &   //OSCO/RC15 function: RC15 == kein Clock am Ausgang
11
      POSCMOD_NONE &   //Oscillator Selection: Primary disabled
12
      FNOSC_FRC &   //Fast RC oscillator w/ divide and PLL
13
      IOL1WAY_ON )  //RP Register Protection: Write RP Registers Once

Nun habe ich
1
FNOSC_FRC
 auf
1
FNOSC_FRCPLL
 gestellt. Laut Datenblatt soll ein Takt mal 4 (4 x PLL) rauskommen.
Er verdoppelt sich aber nur. Was könnte ich vergessen oder falsch 
gemacht haben?

Gruß
Dieter

von MichiB (Gast)


Lesenswert?

Wenn du nicht anderes einstellst sollte es folgendermaßen laufen:

(FRC /2 (PLLPRE) *50 (PLLDIV) /4 (PLLPOST)) / 2 = 3.125*FOSC

Ich würde so um 23MHz erwarten.

von Dieter (Gast)


Lesenswert?

Es sind haargenau 16MHz.

von Dieter (Gast)


Lesenswert?

Nach einigem hin und her, habe ich letztendlich sicherheitshalbe mal die 
postscalerbits 0 gesetzt.
1
  //Postscaler für internen Clock
2
  CLKDIVbits.RCDIV0 = 0;
3
  CLKDIVbits.RCDIV1 = 0;
4
  CLKDIVbits.RCDIV2 = 0;

Ich dächte, die wären defaultmäßig auf 0. Aus irgend einem Grund 
scheinen sie es nicht zu sein.

Gruß
Dieter

von Manuel (Gast)


Lesenswert?

Meiner Meinung ist die Berechnung folgende:

FRC Oscillator = 8MHz
Postscaler = 1:1
PLL = 4x
FCY = FOSC/2

Ergibt: 8MHz  1  4 / 2 = 16MHz

von Master S. (snowman)


Lesenswert?

andere frage: wie misst du den takt? die PIC24F haben max. 16 MIPS

von Dieter (Gast)


Lesenswert?

Ja, FCY ist 16MHz, aber der Systemclock ist natürlich 32MHz bei 4*8MHz.
Ich messe den Takt mit dem Oszi.
Wie gesagt, haut ja jetzt hin, nachdem ich den Postscaler gesetzt habe.

Außerdem kann man das ganze auch über den UART überprüfen. Die Baudrate 
berechnet sich ja aus dem Systemclock/2 bzw. FCY. Haut der Clock nicht 
hin, kommt nur Mist am UART raus.

Gruß
Dieter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.