PIC18LF14K22 läuft nicht bei eingesteller Frequenz

Gast #1646770
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.
Gast
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?
Gast
> 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).
Gast
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
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.