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


von Arthur S. (Gast)


Angehängte Dateien:

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!!!

von dummbernd (Gast)


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.

von Zwirbeljupp (Gast)


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 
;-)

von Arthur S. (Gast)


Lesenswert?

per
1
#pragma config OSC = INTIO7

da liegt dann der Fosc / 4 auf Port RA6

von Dirk (Gast)


Lesenswert?

Nur zur Sicherheit: Du misst an RA6 derzeit also 2 MHz?

von Arthur S. (Gast)


Lesenswert?

Richtig!!!

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

von Arthur S. (Gast)


Lesenswert?

Kann mir keiner genau sagen was ich da noch zu beachten habe???

von Dirk (Gast)


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.

von Master S. (snowman)


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?

von Viktor (Gast)


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...

von Andi (Gast)


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

von Viktor (Gast)


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...

von Arthur S. (Gast)


Lesenswert?

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

Vielen Dank!!

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.