Forum: Mikrocontroller und Digitale Elektronik 32,768 kHz RTC an Mega161


von Jürgen Motsch (Gast)


Lesenswert?

Hallo Gemeinde,

ich programmiere gerade eine DCF-77 Uhr mit Graphic-LCD, welche mit 8 
MHz Systemtakt läuft. Da aus dieser Zeitbasis kein genauer Sekundentakt 
abzuleiten ist, habe ich probiert, den Timer2 mit einem 32,768 kHz Quarz 
zu takten. Leider ist es mir nicht gelungen, das System zum Schwingen zu 
bewegen, der TOV2 wird also nie ausgelöst. Da ich nicht weiss, ob es am 
Quarz liegt oder an der Initialisierung des asynchronen Modus, hier 
meine Fragen :
1. wird der Quarz ohne Kondensatoren angeschlossen?
2. hat jemand diese RTC zum Laufen bekommen (bitte ASM-Routine)?

vielen Dank in voraus

Jürgen

von BAB (Kai K.) (Gast)


Lesenswert?

zu1:
der quarz braucht auch zwei kondensatoren siehe datenblatt. dort werden 
meist vom hersteller die empfohlenen werte angegeben.
bei mir sind das 12pF.

Gruss,

BAB

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Warum lässt sich aus 8 MHz kein genauer Sekundentakt ableiten? Prescaler 
256, Compare-Register 31250, und schon hast du deinen 
Sekunden-Interrupt.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Korrektur: 31249

von Jürgen Motsch (Gast)


Lesenswert?

Nun, das mit den C's werde ich probieren, selbst in den Appnotes von 
Atmel sind allerdings keine Kondensatoren zu sehen.
Da ich den Timer1 für die DCF-Pulsaufbereitung brauche, kann ich diesen 
nicht nehmen (Input Capture Function) und die anderen sind ja nur 8 bit 
breit.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du kannst auch den 8 Bit-Timer mit Prescaler 2 nehmen und bei jedem 
Überlauf eine 16 Bit-Variable hochzählen. Wenn der Wert 15625 erreicht 
hat ist die Sekunde um und die Variable wird wieder auf 0 gesetzt.

von Peter D. (peda)


Lesenswert?

@Jürgen,

warum kannst Du T1 nicht nehmen, der läuft doch weiter ?
Die Input Capture Function beeinflußt ihn in keinster Weise.

Abgesehen davon würde ich die Input Capture Function nicht nehmen, sie 
macht das DCF77-Signal nur unnötig störempfindlich.
Schon eine kurze Störnadel von 125ns (bei 8MHZ) löst ja die Input 
Capture Function aus.

Man muß doch nur die 0- von den 1-Bits unterscheiden, eine supergenaue 
Messung der Impulslänge ist daher unnötig.

In meinem Beispiel in der Codesammlung mache ich das alles nur mit T0.


Peter

von Jürgen Motsch (Gast)


Lesenswert?

Vielen Dank Andreas,

das werde ich ausprobieren.

von Jürgen Motsch (Gast)


Lesenswert?

@Peter
Da ich den Noise Canceler aktiviert habe, sind Störimpulse nicht sind 
kritisch, ausserdem liegt der ICP beim Mega161 auf dem PortE und damit 
verschwende ich kein komplettes 8bit Port. Ich werde mir die Sache aber 
trotzdem ansehen.

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.