mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ext. Takt für T2 > 32KHz möglich?


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Im PDF zum ATMega16 steht für den T2 den man an TOSC1 und TOSC2 extern
takten kann, das dieser für 32KHz optimiert sei.
Ist es trotzdem möglich, den T2 z. B. mit 100KHz an TOSC1 und TOSC2 zu
takten?

MfG
Andi

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn noch niemand Erfahrung mit einem schnelleren Quarz an TOSC1 und
TOSC2 gemacht?

MfG
Andi

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ich denke mal, daß die sich bei Atmel was dabei gedacht haben, kein
andere Timer frei, oder intern takten?!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
meine VERMUTUNG ist das "für 32 khz optimiert" heißt, dass man bei nem
32 khz quarz ohne externe beschaltung auskommt. soll heißen die internen
Kondensatoren sind für diesen quarztyp "optimiert". da man die timer
doch auch als counter nutzen kann wäre eine "nur" 32 khz funktion
ziemlich sinnlos.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tjaaa im Zweifelsfalle mal probieren, Timer aktivieren und an
irgendeinem Portpin eine LED damit blinken lassen, vielleicht klappt´s
ja auch mit 100kHz, mehr wird aber bestimmt nicht drin sein. Im
Datenblatt steht auch, daß man keinen externen Takt an die TOSC2-Pins
legen sollte, vielleicht sitzt doch mehr empfindlicher Kleinkram
dahinter, als man auf Anhieb vermuten mag.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für eure Hinweise!
Habe gefragt weil der "große C" um die Ecke keinen 32KHz hat.
Geht erst bei 100KHz los und wegen einem Quarz wollte ich jetzt keine
Bestellung irgendwo aufgeben.
Mit 100KHz kann man evtl. auch bei +/- paar PPM besser abgleichen als
mit 32KHz.
Werde es am WE ausprobieren und sehen, was dabei rauskommt.
Zur Kontrolle der Ganggenauigkeit dient eine bereits existierende Uhr
im AVR welche bisher auf T1 mit 4MHz abgestimmt war.

MfG
Andi

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habe an den Timer 2 nun einen Mini-Quarz mit 100KHz dran und es
läuft prima.
Die Ganggenauigkeit wird sich noch zeigen was bis jetzt ganz gut
aussieht.
Allerdings verwundert mich eine Anlaufzeit des T2 von ca. 2 Sekunden.
Also nach Einschalten oder flashen dauert es ca. 2 Sekunden bis die vom
T2 getaktete Uhr anläuft.
Der Timer 2 läuft ohne Prescaler (0b001) mit einem Comparewert von 100
was einer Millisekunde entspricht.
Hat der Quarz so eine lange Anschwingzeit oder was ist da los?

MfG
Andi

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, das könnte an der hohen Kapazität der internen Trimmung auf die
32kHz liegen, die den 100er Quarz jetzt zu stark bedämpft. Wenn Du
vielleicht die externen Kondis wegläßt?!

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läuft ohne externe Kondensatoren, laut Datenblatt.
Nicht zu verwechseln mit XTAL1 und XTAL2, es geht immer noch um TOSC1
und TOSC2 für den asynchronen Betrieb von T2.

MfG
Andi

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, dann weiß ich auch nicht - kenne die Atmels ja nicht von innen.
Viel Glück noch beim Testen. Uhrenquarze gibt´s übrigens bei Reichelt
unter der Bestellnummer >> 0,032768 << für 22 Cent.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, nach ein paar längeren Tests der Ganggenauigkeit des 100KHz
Mini-Quarz, so klein wie ein 32KHz Uhrenquarz, läuft dieser, wie sollte
es auch anders sein, um ca. 2,5 Takte je Sekunde zu langsam.
Statt 100KHz sind es 99997,5Hz.
Für die jenigen, die es interessiert läßt sich das per folgendem
ASM-Code abgleichen:

.equ TC2Value=100000/1000-1
Timer2Cmp:
        push  xl    ;  2 Register und SREG retten.
        in  xl,SREG    ;  1
        pushw  x    ;  4

        ldsw  x, Uhr+MilliSek  ;  4 Millisekunden lesen,
        adiw  xl,1    ;  2 + 1
        stsw  Uhr+MilliSek ,x  ;  4 und zurück schreiben.

        lds  xh,Uhr+Sekunde  ;  2 Sekunde lesen.
        andi  xh,3    ;  1 auf Mod 4 prüfen.
        breq  SetMS2    ;1/2 Jede 4. Sekunde keine Taktkorrektur.
        ldi  xh,TC2Value  ;  1 Timerwert für 1ms in xh.
        tst  xl    ;  1 Ist low-Byte von ms = 0?
        brne  SetMS1    ;1/2
        ldi  xh,TC2Value-1  ;  1 Dann Timerwert - 1.
SetMS1:  out  OCR2,xh    ;  1 Compare Register einstellen.

SetMS2:  popw  x    ;  4 Register zurückholen.
        out  SREG,xl    ;  1
        pop  xl    ;  2
        reti      ;  4

Die ISR für Timer2 wird jede Millisekunde aufgerufen.
Zuerst wird Milliesekunde um 1 erhöht.
Als nächstes wird geprüft, ob die Sekunde / 4 = 0 ist. Ist das der Fall
wird keine Korrektur vorgenommen.
Ansonsten wird geprüft, ob das low-Byte der Millisekunden 0 ist.
Das ist der Fall bei einem Wert von 256, 512 und 768.
Dann wird der Timer2-Compare nicht auf 100 sondern auf 99 gesetzt und
somit kommt der nächste Timer2-Aufruf ein Takt früher.
Somit ergeben sich 3 Korrekturen je Sekunde. Da aber jede 4. Sekunde
keine Korrektur vorgenommen wird sind das dann in 4 Sekunden 9 Takte
weniger, das entspricht je Sekunde dann 9 / 4 = 2,25 Takte.

MfG
Andi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.