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?
Nein. 96Mhz PLL Prescaler div by 3 (12 MHZ Input) OSC/OSC2 SCR/1 96 Mhz PLL Src / 2 Clock Scr from 96Mhz PLL /2 HS HS+PLL Config 1 H = 0X0021 Config 1 L = 0x000E
hmm kannst du mir das mal bitte aufschlüsseln. ich hab mich vorher ein bisschen quer eingelesen. allerdings steht überall dass der pll mode einen vervierfacher darstellt. damit wäre nach meiner rechnung 4x4 = 16 und nicht 48.
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.
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?
>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.
hmm, nein ich würde es schon gerne mit einem quarz haben. kann ich da auch irgendwie messen was hinten raus kommt. ich kenn das, dass ich einen pin toggeln lasse. gibts da anoch ne andere methode?
>ich kenn das, dass ich einen pin toggeln lasse.
Dann tu es doch. Was hindert dich daran?
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
Hallo, ich hatte ein ähnliches Problem. Um zu schauen wie "schnell" mein pic ist habe ich einen Iin toggeln lassen und mit dem Oszi die Freqeuenz gemessen. gruß
> 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).
gut wenn du sagst er multipliziert mit 24 leuchtet mir das ganze wieder ein. ich hatte nur mehr fach gelesen dass das pll modul mit der faktor 4 multipliziert, da bin ich denn einfach auf keinen grünen zweig gekommen. aber danke schön, wieder was dazugelernt
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.