pic18f2550 auf 48Mhz

OP #1400134
Lesenswert?

Hi.

Ich versuch grad zum ersten mal den pll modus zu nutzen, allerdings 
springt das ganze bei mir nicht so richtig an.

wenn ich das richtig verstanden habe, müsste ich mit einem externen 
12MHz quarz und plldiv=1, sowie cpudiv=0sc1_SRC2 dann auf die 48 MHz 
kommen oder nicht?

bei mir läuft dann aber scheinbar der quarz nicht mehr an und ich komm 
nicht mehr in den debug modus. sind jetzt meine überlegungen falsch oder 
kann es sein, dass es mir da irgendwas zerbröselt hat?
Gast #1400357
Lesenswert?

Sieh mal auf Seite 24.

Der PLL funktioniert nur mit einer Eingangsfrequenz von 4Mhz.
Deinen Quarztakt muß jetzt von 12 auf 4 MHz heruntergetaktet werden.
In diesem Fall durch die Einstellung :3

In MPLAB kannst du mal unter Configure/ConfigurationBits  dir die 
Möglichkeiten mal ansehen .
Die Config-Bits würde ich aber im Code einstellen.
Ala:
1
/** CONFIGURATION BITS **************************************************/
2

3
#pragma config PLLDIV   = 4         // (16 MHz crystal on PICDEM FS USB board)
4
#pragma config CPUDIV   = OSC1_PLL2   
5
#pragma config USBDIV   = 2         // Clock source from 96MHz PLL/2
6
#pragma config FOSC     = HS
7
#pragma config FCMEN    = OFF
8
#pragma config IESO     = OFF
9
#pragma config PWRT     = ON
10
#pragma config BOR      = OFF
11
#pragma config BORV     = 3
12
#pragma config VREGEN   = ON      //USB Voltage Regulator
13
#pragma config WDT      = OFF
14
#pragma config WDTPS    = 32768
15
#pragma config MCLRE    = ON
16
#pragma config LPT1OSC  = OFF
17
#pragma config PBADEN   = OFF
18
#pragma config CCP2MX   = ON
19
#pragma config STVREN   = ON
20
#pragma config LVP      = OFF
21
#pragma config ICPRT    = OFF       // Dedicated In-Circuit Debug/Programming
22
#pragma config XINST    = OFF       // Extended Instruction Set
23
#pragma config CP0      = OFF
24
#pragma config CP1      = OFF
25
#pragma config CP2      = OFF
26
#pragma config CP3      = OFF
27
#pragma config CPB      = OFF
28
#pragma config CPD      = OFF
29
#pragma config WRT0     = OFF
30
#pragma config WRT1     = OFF
31
#pragma config WRT2     = OFF
32
#pragma config WRT3     = OFF
33
#pragma config WRTB     = OFF       // Boot Block Write Protection
34
#pragma config WRTC     = OFF
35
#pragma config WRTD     = OFF
36
#pragma config EBTR0    = OFF
37
#pragma config EBTR1    = OFF
38
#pragma config EBTR2    = OFF
39
#pragma config EBTR3    = OFF
40
#pragma config EBTRB    = OFF
41
//#pragma config DEBUG    = ON           Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug

Ich habe alle Einstellungen in meiner  Config-Datei.
Im allgemeinen brauchst du nur ein paar dieser Parameter setzen
und nicht wie ich alle.
OP #1400483
Lesenswert?

ja das kommt mir sehr bekannt vor. allerdings ist mir die rechnung immer 
noch nicht klar.

aber ok. ich nehm das jetzt einfach mal hin. mich würde nur ma 
linteressieren wo ich jetzt sehen kann was sache ist. gibt es eine 
möglichkeit sich den takt mal nach außen hin am oszi anzuschauen.

wenn ich das richtig verstehe müsste ich im ec_ec mode doch am pin ra6 
sehen können wie groß die Frequenz ist mit der das ganze schwingt oder 
nicht?
Gast #1400516
Lesenswert?

>wenn ich das richtig verstehe müsste ich im ec_ec mode doch am pin ra6
>sehen können wie groß die Frequenz ist mit der das ganze schwingt oder
>nicht?

Wenn du statt Quarz einen externen Takt anlegst ja.
OP #1400562
Lesenswert?

Ja ich habs jetzt auch einfach gemacht. ich dachte nur es gibt 
vielleicht noch ne andere möglichkeit.

und ja, er schwingt wie gewünscht mit den 48MHz.

jetzt aber mal noch ne andere Frage. kann man theoretisch auch noch mehr 
rausholen oder geht der pic dann in den streik und will nicht mehr? ist 
nur ne reine interessen frage, ist erstmal nicht von nöten.

und ich würde mich doch sehr freuen, wenn mir das mal jemand mit dem pll 
genau erklären könnte was da passiert, weil ich immernoch nicht auf die 
passende geschwindigkeit mit dem faktor 4 beim rechnen komme. das macht 
mich irgendwie stutzig und würde mich interessieren.

aber schon mal besten dank für die hilfe
#1400892
Lesenswert?

> jetzt aber mal noch ne andere Frage. kann man theoretisch auch noch mehr
> rausholen oder geht der pic dann in den streik und will nicht mehr? ist
> nur ne reine interessen frage, ist erstmal nicht von nöten.
>
> und ich würde mich doch sehr freuen, wenn mir das mal jemand mit dem pll
> genau erklären könnte was da passiert, weil ich immernoch nicht auf die
> passende geschwindigkeit mit dem faktor 4 beim rechnen komme. das macht
> mich irgendwie stutzig und würde mich interessieren.

Theoretisch geht immer mehr, garantiert ist es aber nicht.
Bringen tuts hier erst recht nichts, da der 18F2550 mit 96MHz/2 als 
USB-Clock Eingang laufen muss. Als Stellschrauben hast du nur die 
Quarzfrequenz (müssen aber Vielfache von 4 damit die USB Frequenz 
passt). Die Teiler und PLL lassen sich nicht so einstellen, dass du den 
PIC übertakten könntest.

Was gibts an der PLL nicht zu verstehen? Sie multipliziert den ihren 
Eingangstakt (4MHz) mit 24 auf 96MHz. Dieser wird dann für die USB 
Peripherie und den Kern entsprechend runtergeteilt. Wie die PLL das nun 
mit dem Vervielfachen anstellt, ist mal eine andere Geschichte.

Der Maximale Takt des Prozessorkerns ist also 48MHz, wie auf dem Bild 
2-1 im Datenblatt zu erkennen ist. Durch die interne Struktur läuft der 
PIC effektiv nur mit 12MIPS, da ein Befehl 4 Takte zur Abarbeitung 
braucht (Holen, Decodieren, Berechnen, Zurückschreiben).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren