Hallo, ich benutze einen LPC2478, an dessen externem Takteingang ich einen 4.000 MHz Quarzoszillator angeschlossen habe. Mittels des LPC23xx and 24xx PLL Parameter Calculator, den man bei NXP runterladen kann, habe ich dann die Werte für M und N bestimmt. Trage ich die jedoch so in den PLL-Registern ein, dann stimmt meine Frequenz nicht. Ich merke dies daran, dass ich einen Timer starte und den einen Pin toggeln lasse. Meine gewünschte Frequenz sind 72 MHz, den Timer-Match stelle ich auf 72000. Damit müsste mein Interrupt alle 1 ms aufgerufen werden, in wirklichkeit dauert es aber einiges länger (ca. 1.2 ms). Woran kann das liegen?
Ins Bitfeld "MSEL" wird nicht M eingeschrieben, sondern M-1. Auch ins Bitfeld CCLKSEL (Ableitung von CCLK aus dem PLL-Takt) kommt nicht der Teiler, sondern "Teiler - 1". Zudem sind hier nur ungerade Werte und 0 erlaubt. Um das Chaos komplett zu machen, werden die Timer nicht direkt vom CPU-Clock (CCLK) getrieben, sondern von einem Peripherie-Clock (PCLK), der mit einem einstellbaren Teilfaktor (1, 2, 4 oder 8, default ist 4) von CCLK abgeleitet wird. Hast du das alles berücksichtigt? Siehe user.manual.lpc24xx.pdf Rev.03, Chapter 4 "Clocking and power control".
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.