mikrocontroller.net

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


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

_CONFIG1( JTAGEN_OFF &     //JTAG:       disabled
      GCP_OFF &     //Code Protect:   disabled
      GWRP_OFF &     //Write Protect:   disabled
      COE_OFF &     //Clip-on Emulation mode: disabled
      FWDTEN_OFF &   //Watchdog Timer:   disabled
      ICS_PGx2 )     //ICD pins select:   EMUC/EMUD share PGC2/PGD2


_CONFIG2( FCKSM_CSDCMD &   //Clock switching and clock monitor: Both disabled
      OSCIOFNC_ON &   //OSCO/RC15 function: RC15 == kein Clock am Ausgang
      POSCMOD_NONE &   //Oscillator Selection: Primary disabled
      FNOSC_FRC &   //Fast RC oscillator w/ divide and PLL
      IOL1WAY_ON )  //RP Register Protection: Write RP Registers Once 

Nun habe ich
FNOSC_FRC
 auf
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

Autor: MichiB (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sind haargenau 16MHz.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach einigem hin und her, habe ich letztendlich sicherheitshalbe mal die 
postscalerbits 0 gesetzt.
  //Postscaler für internen Clock
  CLKDIVbits.RCDIV0 = 0;
  CLKDIVbits.RCDIV1 = 0;
  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

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meiner Meinung ist die Berechnung folgende:

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

Ergibt: 8MHz  1  4 / 2 = 16MHz

Autor: Master Snowman (snowman)
Datum:

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

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.