Forum: Mikrocontroller und Digitale Elektronik PIC18LF14K22 läuft nicht bei eingesteller Frequenz


von Korbinian G. (Gast)


Lesenswert?

Hallo,

ich programmiere gerade einen PIC18LF14K22. Leider bekomme ich es nicht 
hin, dass der interne RC Oszillator mit der eingestellten Frequenz 
läuft.

Ich hab mein Oszi am CLKOUT Pin hängen um die Frequenz zu überprüfen.

folgende Configuration Bits sind gesetzt:

#pragma config FOSC = IRCCLKOUT
#pragma config PLLEN = OFF
#pragma config PCLKEN = OFF
#pragma config FCMEN = OFF
#pragma config IESO = OFF

weiterhin habe ich folgende Register eingestellt:


OSCCONbits.IDLEN = 0;
OSCCONbits.IRCF2 = 1; // Oszillator läuft bei 4Mhz
OSCCONbits.IRCF1 = 0; //
OSCCONbits.IRCF0 = 1; //
OSCCONbits.OSTS = 0;  // Interner Oszillator
OSCCONbits.HFIOFS = 1;
OSCCONbits.SCS1 = 1; // Interner Oszillatorblock
OSCCONbits.SCS0 = 1;

OSCCON2 = 0x05;

OSCTUNEbits.INTSRC = 0;
OSCTUNEbits.PLLEN = 0;
OSCTUNEbits.TUN5 = 0;
OSCTUNEbits.TUN4 = 0;
OSCTUNEbits.TUN3 = 0;
OSCTUNEbits.TUN2 = 0;
OSCTUNEbits.TUN1 = 0;
OSCTUNEbits.TUN0 = 0;

Das komische ist dass ich immer 1/4 der eingestellten Frequenz am Oszi 
sehe, sprich bei 4MHz habe ich 1MHz, somit komme ich maximal auf 4MHz 
wenn ich 16MHz einstelle. Nachdem ich jetzt x mal schon das Datenblatt 
studiert habe, frage ich hier. Vielleicht kann mir einer den 
entscheidenden Tipp geben. Danke im Vorraus.

von morph1 (Gast)


Lesenswert?

Vollkommen normal, PIC18 laufen IMMER mit 1/4 vom Takt.

von Korbinian G. (Gast)


Lesenswert?

Nein, oder?
Und ich mach mir hier schon Gedanken, warum ich es nicht hinbekomme.
Aber bei den Features steht:  31.25 kHz - 16 MHz internal oscillator, 
CLKOUT function on RA4/OSC2

Frage mich, wie man die 16 MHz dann erreichen kann?

von stephan_ (Gast)


Lesenswert?

> Vollkommen normal, PIC18 laufen IMMER mit 1/4 vom Takt.

Am CLKOUT liegt aber der Takt des Oszillators an. Die 1/4 sind die 
Frequenz, mit der die Befehle abgearbeitet werden (1 Befehl sind 4 
OSC-Takte).

von Korbinian G. (Gast)


Lesenswert?

also ist es normal, dass ich am CLKOUT immer nur 1/4 der eingestellten 
frequenz sehe?

von daniel (Gast)


Lesenswert?

Nein, denke nicht. Hast du den PLL aktiviert?

von Korbinian G. (Gast)


Lesenswert?

die PLL ist deaktiviert, aber laut datenblatt soll er ja auch 16MHz ohne 
PLL schaffen.

von morph1 (Gast)


Lesenswert?

Wie gesagt, das ist normal so :)

Da liegt der interne Clock an, also eben nicht der vom Oszillator


When operating with either oscillator, OSC1 will be an
I/O and OSC2 will be either an I/O or CLKOUT. The
CLKOUT function is selected by the FOSC bits of the
CONFIG1H Configuration register. When OSC2 is
configured as CLKOUT, the frequency at the pin is the
frequency of the Internal Oscillator divided by 4.

Seite 19 des Datenblatts

von Korbinian G. (Gast)


Lesenswert?

Ah jetzt verstehe ich^^
Wenn ich OSC1 auf CLKOUT konfiguriere müsste ich auch die volle Frequenz 
sehen oder?

von Korbinian G. (korbinian_g)


Lesenswert?

So wie ich das jetzt nach nochmaligen lesen verstanden habe, ist das 
nicht möglich den eingestellten Clock OSC1 auf CLKOUT auszugeben. Nun 
weiß ich ja dass mein Clock richtig eingestellt war und muss mir 
deswegen keine Sorgen mehr machen. Meine PWM läuft nun auch einwandfrei 
:)
Ich möchte mich hiermit nochmal bei allen für die Aufklärung bedanken.

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.