PIC24FJ256GB406 oscillator Auswahl

Gast #4785497
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?
Gast #4785501
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?
Gast #4785528
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).
Gast #4785556
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
(Firma: Rentenvers. Bund (Frührentner)) #4788556
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

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