Forum: Mikrocontroller und Digitale Elektronik Xmega mit externem 32,768kHz kalibrieren


von Venga A. (venga)


Lesenswert?

Hallo Zusammen,

ich möchte gerne einen Xmega128A1 bei einem internen clock von 32MHz 
betreiben, der über einen externen 32,768kHz abgeglichen werden soll.
Leider fuktioniert dieses bei mir aber nicht, der externe Quarz fängt 
nicht an zu schwingen. Der uC gibt nur eine Gleichspannung von 0,5V auf 
beide TOSC Pins(PORTQ PIN 0&1).
Nach mehrmaligen durchschauen der Datenblätter bin ich mir relativ 
sicher, dass dies nicht mehr an einer falschen Register belegung liegen 
kann.
Mir stellt sich noch die Frage, wie ich die Ports einstellen soll die 
stehen momentan auf Input, habe aber auch schon einen auf Out (Totempole 
ohne Pull-...) gestellt. Aber es gab keine Veränderung.

Schon mal vielen Dank!!!

von GG (Gast)


Lesenswert?

Hallo,

mein Code:

//32Mhz  Interner Takt (kalibriert mit 32 khz Quarz)atxmega128a1 Pin 
85/86

Aufruf:  system_clocks_init_32mhz();


void system_clocks_init(void)
{
unsigned char n,s;
s=SREG;
cli();

// External 32,768 kHz oscillator initialization
// External 32.768 kHz crystal oscillator low power mode: On
OSC.XOSCCTRL=OSC_X32KLPM_bm | OSC_XOSCSEL_32KHz_gc;
OSC.CTRL|=OSC_XOSCEN_bm;
while ((OSC.STATUS & OSC_XOSCRDY_bm)==0);
// Internal 32 MHz RC oscillator initialization
// Enable the internal 32 MHz RC oscillator
OSC.CTRL|=OSC_RC32MEN_bm;
n=(CLK.PSCTRL & 
(~(CLK_PSADIV_gm|CLK_PSBCDIV1_bm|CLK_PSBCDIV0_bm)))|CLK_PSADIV_1_gc|CLK_ 
PSBCDIV_1_1_gc;
CCP=CCP_IOREG_gc;
CLK.PSCTRL=n;
// Internal 32 MHz RC osc. calibration reference clock source: 32.768 
kHz Ext. Crystal Osc.
OSC.DFLLCTRL=(OSC.DFLLCTRL & (~OSC_RC2MCREF_bm)) | OSC_RC32MCREF_bm;
DFLLRC32M.CTRL|=DFLL_ENABLE_bm;
while ((OSC.STATUS & OSC_RC32MRDY_bm)==0);
n=(CLK.CTRL & (~CLK_SCLKSEL_gm)) | CLK_SCLKSEL_RC32M_gc;
CCP=CCP_IOREG_gc;
CLK.CTRL=n;
OSC.CTRL&= ~(OSC_RC2MEN_bm | OSC_RC32KEN_bm | OSC_PLLEN_bm);
n=CLK.LOCK | CLK_LOCK_bm;
CCP=CCP_IOREG_gc;
CLK.LOCK=n;
PORTCFG.CLKEVOUT=(PORTCFG.CLKEVOUT & (~PORTCFG_CLKOUT_gm)) | 
PORTCFG_CLKOUT_OFF_gc;
SREG=s;
}


Gruß GG

von Joachim (Gast)


Lesenswert?

Hallo

Ohne den Processor jetzt zu kennen: Warum sollte er den
außen eventuell oder auch nicht angebrachten Quarz zum Schwingen
bringen, wenn du ihm sagst, er soll den inneren nehmen?


Gruß
Joachim

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

DFLL auf dem Xmega128A1 ist Defekt -> Datenblatt Kapitel "Errata".

Überhaut ist bei den Xmegas ziemlich viel in den Fritten, um nicht zu 
sagen, das sind Drecksteile.

von Falk B. (falk)


Lesenswert?

@  Hannes Jaeger (pnuebergang)

>Überhaut ist bei den Xmegas ziemlich viel in den Fritten, um nicht zu
>sagen, das sind Drecksteile.

NBöö, das kommt raus, wenn man Produkte übereilt auf Krampf an den Markt 
bringt.

MfG
Falk

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Ist doch egal warum die kaputt sind. Ich arbeite momentan nicht mehr mit 
Xmegas, weil jede zweite Funktion, die ich brauchte und angefasst habe, 
irgendeine Macke hatte. Mit diesem Glück sollte ich Lotto spielen.

von GG (Gast)


Lesenswert?

Hallo,

er meint natürlich den Port, an dem der 32 khz Quarz hängt.

PQ0 85 SYNC TOSC1
PQ1 86 SYNC TOSC2


Gruß GG

von Venga A. (venga)


Lesenswert?

Leider funktioniert das kallibrieren über den externen Quarz, auch mit 
euren Ratschlägen, immer noch nicht. Ich werde jetzt mal schauen, wie 
ich herausfinden kann ob der Quarz vielleicht defekt ist. Ich habe jetzt 
alle Clock einstellungen des Xmega durch wo der externe Quarz 
angesprochen wird. KEINE ÄNDERUNG DES PORBLEMS!

Falls ich noch etwas herausfinde lasse ich es euch wissen.

Gruß

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.