Externer Oscillator / Configuration Bits

Gast #5369978
Lesenswert?

Hallo,

Ich habe in den Config bits jetzt folgendes gesetzt:
pragma config POSCMD = HS // Primary Oscillator Mode Select bits (HS 
Crystal Oscillator Mode)
HS da ich einen 8 MHz externen Takt auf der Platine sitzen hab.

Ist das richtig so ?  Bzw was muss ich noch einstellen ?

lG
Gast #5370477
Lesenswert?

Ist ein PIC dsPIC33EP512GM710
Ich benutze MPLAP X IDE v4,15

Ne richtige Anleitung wo drin steht was alles genau gesetzt werden muss 
für einen Oscillator finde ich einfach nicht. Nur jegliche Register, 
aber was konkretes nicht..desshalb bin ich gerade auf eure Hilfe 
angewiesen.
Gast #5370828
Lesenswert?

OK, also da gibt es immer AP Notes bzw. es immer das selbe Prinzip. Aber 
Microchip über nimmt mit den Bits die du am Anfang setzt, die gesamten 
Einstellungen (daher auch das mit dem Input und Output
Gast #5370917
Lesenswert?

Guten Morgen,

ich habe folgendes gesetzt:
    FOSCSELbits.FNOSC=0b010 ; //primary oscillator (xt, hs, ec)

    FOSCbits.POSCMD=0b01;//XT Crystal

Nur komisch dass ich hier laut Datenblatt XT setzen muss für meine 8MHz, 
und bei den config bits wie ganz oben musste ich HS setzen.

Ist das alles? Bzw erkennt der Compiler die 2 Register überhaupt nicht. 
Obwohl ich die entsprechende Datei vom PIC includet habe und auch die 
Standard IO
Gast #5371284
Lesenswert?

Das ist was ich in der entsprechenden Header Datei gefunden habe:

/* Register FOSC (0x557f6)                               */

extern __attribute__((space(prog))) _prog_ uint16_t _FOSC;
#define _FOSC(x) 
__attribute__((address(0x557f6),deprecated_definition("consider 
migrating to #pragma config"),section("__FOSC.sec"),space(prog))) 
_prog_ uint16_t _FOSC = (x);

/*
** Only one invocation of FOSC should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FOSC.
** Multiple options may be combined, as shown:
**
** _FOSC( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
**   Primary Oscillator Mode Select bits:
**     POSCMD_EC            EC (External Clock) Mode
**     POSCMD_XT            XT Crystal Oscillator Mode
**     POSCMD_HS            HS Crystal Oscillator Mode
**     POSCMD_NONE          Primary Oscillator disabled
**
**   OSC2 Pin Function bit:
**     OSCIOFNC_ON          OSC2 is general purpose digital I/O pin
**     OSCIOFNC_OFF         OSC2 is clock output
**
**   Peripheral pin select configuration:
**     IOL1WAY_OFF          Allow multiple reconfigurations
**     IOL1WAY_ON           Allow only one reconfiguration
**
**   Clock Switching Mode bits:
**     FCKSM_CSECME         Both Clock switching and Fail-safe Clock 
Monitor are enabled
**     FCKSM_CSECMD         Clock switching is enabled,Fail-safe Clock 
Monitor is disabled
**     FCKSM_CSDCMD         Both Clock switching and Fail-safe Clock 
Monitor are disabled
**
*/

#define POSCMD_EC            0xFFFC
#define POSCMD_XT            0xFFFD
#define POSCMD_HS            0xFFFE
#define POSCMD_NONE          0xFFFF

#define OSCIOFNC_ON          0xFFFB
#define OSCIOFNC_OFF         0xFFFF

#define IOL1WAY_OFF          0xFFDF
#define IOL1WAY_ON           0xFFFF

#define FCKSM_CSECME         0xFF3F
#define FCKSM_CSECMD         0xFF7F
#define FCKSM_CSDCMD         0xFFBF

/* Register FOSCSEL (0x557f8)                               */

extern __attribute__((space(prog))) _prog_ uint16_t _FOSCSEL;
#define _FOSCSEL(x) 
__attribute__((address(0x557f8),deprecated_definition("consider 
migrating to #pragma config"),section("__FOSCSEL.sec"),space(prog))) 
_prog_ uint16_t _FOSCSEL = (x);

/*
** Only one invocation of FOSCSEL should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FOSCSEL.
** Multiple options may be combined, as shown:
**
** _FOSCSEL( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
**   Oscillator Source Selection:
**     FNOSC_FRC            Internal Fast RC (FRC)
**     FNOSC_FRCPLL         Fast RC Oscillator with divide-by-N with PLL 
module (FRCPLL)
**     FNOSC_PRI            Primary Oscillator (XT, HS, EC)
**     FNOSC_PRIPLL         Primary Oscillator with PLL module (XT + 
PLL, HS + PLL, EC + PLL)
**     FNOSC_SOSC           Secondary Oscillator (SOSC)
**     FNOSC_LPRC           Low-Power RC Oscillator (LPRC)
**     FNOSC_FRCDIVN        Internal Fast RC (FRC) Oscillator with 
postscaler
**
**   PWM Lock Enable bit:
**     PWMLOCK_OFF          PWM registers may be written without key 
sequence
**     PWMLOCK_ON           Certain PWM registers may only be written 
after key sequence
**
**   Two-speed Oscillator Start-up Enable bit:
**     IESO_OFF             Start up with user-selected oscillator 
source
**     IESO_ON              Start up device with FRC, then switch to 
user-selected oscillator source
**
*/

#define FNOSC_FRC            0xFFF8
#define FNOSC_FRCPLL         0xFFF9
#define FNOSC_PRI            0xFFFA
#define FNOSC_PRIPLL         0xFFFB
#define FNOSC_SOSC           0xFFFC
#define FNOSC_LPRC           0xFFFD
#define FNOSC_FRCDIVN        0xFFFF

#define PWMLOCK_OFF          0xFFBF
#define PWMLOCK_ON           0xFFFF

#define IESO_OFF             0xFF7F
#define IESO_ON              0xFFFF
Gast #5371312
Lesenswert?

Ich denke ich hatte die ganze Zeit über den externen Takt schon 
eingestellt..
In meiner config Datei habe ich folgendes eingestellt:

/ FOSC
#pragma config POSCMD = XT   // Primary Oscillator Mode Select bits (XT 
Crystal Oscillator Mode)
#pragma config OSCIOFNC = OFF  // OSC2 Pin Function bit (OSC2 is clock 
output)
#pragma config IOL1WAY = ON   // Peripheral pin select configuration 
(Allow only one reconfiguration)
#pragma config FCKSM = CSDCMD // Clock Switching Mode bits (Both Clock 
switching and Fail-safe Clock Monitor are disabled)

// FOSCSEL
#pragma config FNOSC = PRI  // Oscillator Source Selection (Primary 
Oscillator (XT, HS, EC))
#pragma config PWMLOCK = ON   // PWM Lock Enable bit (Certain PWM 
registers may only be written after key sequence)
#pragma config IESO = OFF    // Two-speed Oscillator Start-up Enable bit 
(Start up with user-selected oscillator source)


Also habe ich schon quasi durch
#pragma config POSCMD = XT   // Primary Oscillator Mode Select bits (XT 
Crystal Oscillator Mode)
und
#pragma config FNOSC = PRI  // Oscillator Source Selection (Primary 
Oscillator (XT, HS, EC))

meinen externen Quarz eingestellt ?
Scheint mir etwas wenig.

lG

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