Hallo, ich habe hier einen PIC18F2680 (unter MPLAB), bei dem der interne Oszillator mit 8MHz verwendet wird. Jetzt möchte ich zusätzlich die 4x-PLL einschalten, um 32MHz zu bekommen. Momentan setzte ich die (meinem Verständnis nach) relevanten Register so: OSCCON = 0b01110010; // Interner Oszillator, 8MHz, Sleep on "sleep" OSCTUNE = 0b11000000; // PLL einschalten, keine Frequenzkorrektur Allerdings schwingt der Oszillator ungeachtet der Einstellung in OSCTUNE immer mit 8MHz, bzw eine Warteschleife von 2 000 000 NOPS benötigt genau eine Sekunde. Den folgenden Text habe ich im Datenblatt gefunden, denke aber doch, dass ich das korrekt konfiguriert habe?/!: "The PLL is available when the device is configured to use the internal oscillator block as its primary clock source (FOSC3:FOSC0 = 1001 or 1000). Additionally, the PLL will only function when the selected output frequency is either 4 MHz or 8 MHz (OSCCON<6:4> = 111 or 110). If both of these conditions are not met, the PLL is disabled. The PLLEN control bit is only functional in those internal oscillator modes where the PLL is available. In all other modes, it is forced to ‘0’ and is effectively unavailable." Naja, vielleicht hat ja jemand eine Idee, was ich hier falsch mache, und wie ich die PLL doch noch aktiviert bekomme. Peter
Problem gelöst. Die PLL war richtig konfiguriert, allerdings muss man nun als Taktquelle in OSCCON:0..1 nicht den "Internal oscillator block", sondern den "Primary oscillator" wählen, obwohl der Takt weiterhin vom internen Oszillator kommt. Im Datenblatt hat es ein schönes "Flussdiagramm" für den Systemtakt, das mich drauf gebracht hat. Vielleicht hilft es ja jemand, mich hat das gerade gute zwei Stunden Fehlersuche gekostet.
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.