Hallo zusammen.
Bei mir ist folgendes Problem aufgetreten.
Ich habe eine Platine mit XMEGA 256A3U. Auf die Platine ist eine RTC mit
dem Clock-Output, welche an XTAL1 von XMEGA angeschlossen ist.
Bei dem Start wird externe RTC initialisiert und ihr Clock-Ausgang
freigeschaltet.
Interne RTC von XMEGA wird auf ext. clock umgestellt.
1 | CLK.RTCCTRL = CLK_RTCSRC_EXTCLK_gc | CLK_RTCEN_bm;
|
Danach versuche ich RTC.CTRL auf 0 setzen und warte bis SYNCBUSY geleert
wird.
1 | while (RTC_STATUS&RTC_SYNCBUSY_bm);
|
Und genau auf diesem Punkt bleibt alles stehen. Das SYNCBUSY wird nicht
auf 0 gesetzt, weil RTC kein Clock-Signal "sieht".
Wenn ich Clock-Signal auf PE7 umlöte, dann geht alles.
Was mich bei diese Geschichte stört:
1. Auf XMEGA 128A1U und XMEGA 128A4U dasselbe Code funktioniert.
2. Wenn ich TOSCSEL im FUSEBYTE2 umschalte, mit XMEGA128A1U und
XMEGA128A4U funktioniert alles nicht mehr bis ich das Clock-Signal auf
alternative Port umschalte. Danach geht es wieder. Bei A3U egal wie
TOSCSEL eingestellt ist, funktioneirt nur auf PE7.
Hat jemand Erfahrung mit XMEGA-A3U und ext. clock? Kann jemand dieses
Phänomen (mit funktionierenden A1U und A4U und nicht funktionierendem
A3U) erklären?