Im Oscillator PIC24FM Datenblatt findet sich: The 96 MHz PLL block requires a 4 MHz input signal; it uses this to generate a 96 MHz signal from a fixed, 24 x PLL. Ich möchte hier einen externen Quarz anschliessen. Nur welche größe? Dank des Prescalers ist es möglich hier zwischen 4 bis 32 Mhz zu wählen. (nicht alle modi sind USB fähig) Fährt man da besser mit einem 4Mhz quarz oder einem 32Mhz quarz?
ok moment, ich muss noch was hinzufügen. Kurz und knapp ausgedrückt habe ich die Wahl zwischen: 1. Prescaler 0 (aus) und den 4MHz quarz zu nehmen 2. Prescaler 1:8 und den 32Mhz quarz Was ist hier zu bevorzugen?
Was soll denn genau umgesetzt werden? Die Taktfrequenz wirkt sich beispielsweise auf deine Stromaufnahme aus.
Naja es soll ansich nur der USB teil der PIC24 auch funktionieren, und ich möchte mit der maximalen Geschwindigkeit des PIC24 arbeiten. Leistungsaufnahme darf auch entsprechend sein.
Nimm was du leicht bekommst. Das wird vermutlich 4 oder 8MHz sein. Musst aber die Anforderungen deines Oszillators (electrical characteristics) auch beachten. Aber in fast allen Fällen braucht dein PIC gar keinen MHz-Oszillator: Dein PIC hat self tuning für den FRC. Dessen FRC (interner RC-Oszillator) kann mittels Uhrenquarz auf 0,05% getrimmt werden. Du kannst also statt einem MHz-Quarz auch einfach einen Uhrenquarz an SOSC nehmen. Siehe Kapitel 9.0 und 9.5. im Manual. Das braucht weniger Strom, und hat den Vorteil, dass die RTCC auch gleich akkurat nutzbar ist. Noch eine Variante: Wenn USB immer dran ist, brauchst du gar keinen Oszillator. Der Clock kann auch mittels USB kalibriert werden (siehe 9.5).
Vielen Dank, ich Probiere es mal ohne Primary Oscillator. // FOSCSEL #pragma config FNOSC = FRCPLL // Oscillator Select->Fast RC Oscillator with PLL module (FRCPLL) #pragma config PLLMODE = PLL96DIV2 // Frequency Multiplier Select Bits->96 MHz PLL (8 MHz input) #pragma config IESO = ON // Internal External Switchover->Start up device with FRC, then switch to user-selected oscillator source // FOSC #pragma config POSCMOD = NONE // Primary Oscillator Select->Primary Oscillator disabled #pragma config OSCIOFCN = OFF // OSCO Pin Configuration->OSCO/CLKO/RC15 functions as CLKO (FOSC/2) #pragma config SOSCSEL = ON // SOSC Power Selection Configuration bits->SOSC is used in crystal (SOSCI/SOSCO) mode #pragma config PLLSS = PLL_FRC // PLL Secondary Selection Configuration bit->PLL is fed by the on-chip Fast RC (FRC) oscillator #pragma config IOL1WAY = ON // IOLOCK One-Way Set Enable->Once set the IOLOCK bit cannot be cleared #pragma config FCKSM = CSDCMD // Clock Switching and Monitor Selection->Clock switching and Fail-Safe Clock Monitor are disabled while (1) { __delay32(1000000); LED_G ^= 1; } Mhh, ich komme hier auf 8Hz an der LED, somit 8 Mhz, ist da nicht mehr möglich? Laut dem Microchip configurator sollten da 32Mhz CPU clock sein und FOSC/2 sind dann 16Mhz und nicht 8Mhz
ok habs, schlichtweg falsch gesetzte CLKDIV. Na gut, 0.05% Genauigkeit sagst du, reicht mir das für UART aus?
0.05% reichen für eine UART. Letzlich auch größere Unterschiede bis wenigstens ca. 0.3% sollten auch problemlos sein, solange es sich um niedrige Baudraten handelt. Bei Geschwindigkeiten von >= 500 kBaud, möglicherweise auch bereits ab ~250 kBaud aufwärts, wird es zunehmend sinnvoll entweder Geschwindigkeiten zu wählen, die sich aus der verwendeten Quarzfrequenz direkt ableiten lassen, oder aber alternativ 'Baudratenquarze' zu verwenden. Bei hohen Geschwindigkeiten sind die Signale bei weitem nicht mehr so sauber, und Frequenzdifferenzen (Sender<=>Empfänger) schlagen dann zunehmend deutlich zu Buche. Doch alles bis 38400 ist i.d.R. auch ohne Baudratenquarz gut zu machen. Kleinere Fehler spielen bei diesen langsamen Übertragungsraten selten eine Rolle, wenn überhaupt jemals. agk
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.