Hallo
Ich weiss dieses Thema wurde schon 1000 mal abgehandelt, aber mit den
anderen Forenbeiträgen klappts trotzdem nicht.
Ich verwende einen ATxMega128A3U und ein 8MHz Quarz. Folgender Code als
Clock Initialisierung:
1 | // Clock init
|
2 | OSC.XOSCCTRL = OSC_FRQRANGE_2TO9_gc | OSC_XOSCSEL_XTAL_16KCLK_gc; // Freq Range = 2MHz-9MHz, Startup Time = 16kCLK
|
3 | OSC.CTRL |= OSC_XOSCEN_bm;
|
4 |
|
5 | while(!(OSC.STATUS & OSC_XOSCRDY_bm)); // Wait for Oscillators to become stable
|
6 |
|
7 | OSC.PLLCTRL = OSC_PLLSRC_XOSC_gc | 3;
|
8 | OSC.CTRL |= OSC_PLLEN_bm; // PLL = 3
|
9 | while (!(OSC.STATUS & OSC_PLLRDY_bm)); // Wait for PLL to become stable
|
10 |
|
11 | CCP = CCP_IOREG_gc;
|
12 | CLK.CTRL = CLK_SCLKSEL_PLL_gc; // Use PLL as system Clock
|
13 |
|
14 | OSC.CTRL &= ~(OSC_RC2MEN_bm | OSC_RC32MEN_bm | OSC_RC32KEN_bm); //Disable unused oscillators
|
15 |
|
16 |
|
17 | CCP = CCP_IOREG_gc;
|
18 | CLK.LOCK = CLK_LOCK_bm; // Lock Clock Settings until next Reset
|
Irgend etwas klappt da jedoch nicht. Mit dem KO gemessen, schwingt der
Quarz mit 8MHz und ca 1.5Vpp. Der Systemclock ist jedoch nach wie vor
2MHz.
Sieht jemand einen Fehler im Code oder hab ich etwas grundlegendes
vergessen?
Lg
Jérôme