Forum: Mikrocontroller und Digitale Elektronik PIC24FJ256GB406 oscillator Auswahl


von Simon (Gast)


Lesenswert?

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?

von Simon (Gast)


Lesenswert?

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?

von akg (Gast)


Lesenswert?

Was soll denn genau umgesetzt werden?
Die Taktfrequenz wirkt sich beispielsweise auf deine Stromaufnahme aus.

von Simon (Gast)


Lesenswert?

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.

von Gästchen (Gast)


Lesenswert?

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

von Simon (Gast)


Lesenswert?

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

von Simon (Gast)


Lesenswert?

ok habs, schlichtweg falsch gesetzte CLKDIV.


Na gut, 0.05% Genauigkeit sagst du, reicht mir das für UART aus?

von Armin G. (Firma: Rentenvers. Bund (Frührentner)) (armin_g)


Lesenswert?

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
Noch kein Account? Hier anmelden.