//noch läuft der Chip auf 2 MHz RC //16MHz-Quarz benutzen OSC.XOSCCTRL = OSC_FRQRANGE_12TO16_gc | OSC_XOSCSEL_XTAL_16KCLK_gc; //Siehe iox128a3.h CLK.PSCTRL = 0; //Prescaler A B C ohne Funktion OSC.CTRL = OSC_XOSCEN_bm; //Quarz einschalten while(! (OSC.STATUS & OSC_XOSCRDY_bm) ){ _delay_ms(5);} //Warte, bis Quarz stabil wenn nicht stabil delay CCP = CCP_IOREG_gc; //CCP_SPM_gc; //Signatur CLK.CTRL = CLK_SCLKSEL_XOSC_gc; //Quarz als Takt benutzen //Jetzt sollte der Chip auf 16 MHz Quarz laufen //PLL konfigurieren OSC.PLLCTRL = OSC_PLLFAC1_bm | OSC_PLLSRC_XOSC_gc; // * 2 ; 11: Ext.Clock (Quarz) OSC.CTRL |= OSC_PLLEN_bm; //PLL einschalten while(! (OSC.STATUS & OSC_PLLRDY_bm ) ){ _delay_ms(5);} //Warte, bis PLL stabil wenn nicht stabil delay CCP = CCP_IOREG_gc; //CCP_SPM_gc; //Signatur CLK.CTRL = CLK_SCLKSEL_PLL_gc; // PLL als Takt benutzen //Jetzt sollte der Chip auf 32 MHz laufen } Leider tut er des aber nicht. Wo könnte das Problem liegen. MfG Dirk
Hast Du im Manual zufällig etwas über Configuration Change Protection gelesen? Das könnte es sein.
Servus, lade Dir mal den CodeWizardAVR 2.04.6 Evaluation http://www.hpinfotech.ro/ runter. Der CodeWizardAVR für Xmega ist ist für Anfänger unverzichtbar. Desweiteren einige Beispiele: AVR1003: Using the XMEGA Clock System Application Note http://www.atmel.com/dyn/genera l/tech_doc.asp?doc_id=11479 Sinn macht auch die Deaktivierung der nicht benötigten Taktquellen. Zum Beispiel: // Disable the unused oscillators: 2 MHz, internal 32 kHz, PLL OSC.CTRL&= ~(OSC_RC2MEN_bm | OSC_RC32KEN_bm | OSC_PLLEN_bm); Gruß GG
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.