www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 18F6527 mit 32MHz Takten


Autor: Arthur S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da ein Problem und zwar benutze ich den PIC 18f6527 der sich ja 
intern auf 32 MHz per PLL also intern 8MHz * 4 = 32 MHz takten lässt.

So nun nach ewigen rumprobieren bekomme ich aber diese 32MHz nicht hin. 
Habe schon den Takt auf einen PIN gelegt um zu messen, bekomme aber 
immer nur die 8MHz raus!!!

Ich bitte um Hilfe!!! Ich habe in der Suchfunktion auch nichts 
gefunden!!!

Registerwerte:
OSCTUNE = 0x40
OSCCON = 0x72

Schonmal vielen Dank!!!

Autor: dummbernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast du den Takt auf den Pin gelegt?

Bedenke, selbst wenn du im Code sowas in der Art hast...

while(1)
{
mein_pin^=(1<<PX1);
}

... wird der Pin nicht mit f_clk getoggelt, da ja auch Zeit für Register 
setzen und Rücksprung in der Schleife einige Takte benötigt.

Autor: Zwirbeljupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habe schon den Takt auf einen PIN gelegt um zu messen, bekomme aber
> immer nur die 8MHz raus!!!
Und wie hast Du das gemacht?

Ich würde sagen, alles ganz normal :-)
Die PIC18-Familie benötigt pro Befehl 4 Quarztakte. Also wenn Du extern 
einen 8 MHz Quarz dranhängen hast und die 4xPLL aktiviert ist, dann 
läuft der PIC "intern" eben mit 8 MHz. Das steht aber auch im Datenblatt 
;-)

Autor: Arthur S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
per
#pragma config OSC = INTIO7

da liegt dann der Fosc / 4 auf Port RA6

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Sicherheit: Du misst an RA6 derzeit also 2 MHz?

Autor: Arthur S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig!!!

8MHz sind intern eingestellt und läuft auch damit! Und durch die config 
einstellung messe ich 2MHz am Port

Autor: Arthur S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir keiner genau sagen was ich da noch zu beachten habe???

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Einstellungen sind alle OK, daher kommen hier auch keine 
Antworten. Ich könnte mir nur noch vorstellen, daß dein Compiler falsche 
Config-Settings benutzt (z.B. falsches Device). Dann kannst du dich auf 
High-Level Ebene totsuchen. Falls du also einen Compiler benutzt, teste 
bitte mal den Pic mit einen kleinen Assemblerprogramm.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tönt schwer danach, dass der PLL nicht funktioniert. im DS steht
"The PLL is available when the device is configured to
use the internal oscillator block as its primary clock
source (FOSC<3:0> = 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 and the PLLEN bit remains clear (writes are
ignored)."

die werte FOSC<3:0> mal überprüfen = ?

die PLL stellst du auch mit den config bits beim brennen ein, sind diese 
auch korrekt?

Autor: Viktor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig ist, erst OSCCON einzustellen und danach erst OSCTUNE. Sonst 
wird die PLL nicht eingeschaltet, weil der PIC noch mit den 1MHz nach 
dem Reset läuft...

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal Figure 2-10 im Datenblatt an.
Der Clock Output ist eben Fosc/4 und nicht Fosc * PLL / 4.
Wenn du den CPU Clock testen willst, so musst du ein Assembler Loop 
schreiben, oder einen Timer entsprechend programmieren.

Aber wie schon von Zwirbeljupp erwähnt brauchen die PIC18 4 Takte oder 
mehr pro Instruktion. Du wirst also nie 32 MIPS erhalten.

Andi

Autor: Viktor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Arthur S.
Mach mal OSCCON = 0x70, dann kriegst du die 8 Mhz am RA6.
Erkennt man im Bild 2-10, das die PLL nur über den Primary Clock 
reinkommt.
#pragma config OSC = INTIO7 setzt dann den Internen Oscilator schon als 
Primary Clock.
Und wie gesagt, erst danach die PLL einschalten.
Hab ich gerade extra ausprobiert...

Autor: Arthur S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke für die Tipps wenn ich mal dazu komm es zu testen dann sage 
ich bescheid!!!

Vielen Dank!!

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.