Quarze und AVR

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Diese Seite behandelt Schwingquarze im Zusammenhang mit AVRs. Die Genauigkeit von Quarzen liegt bei 10–100ppm (1ppm = 0,0001 %) und wird somit nur noch von Quarzoszillatoren überboten. Außerdem sind Quarze im Gegensatz zum internen RC-Oszillator weniger temperaturabhängig.

Verwendung

Quarze sind in folgenden Situationen sinnvoll / notwendig:

  • Interner Oszillator des µC zu langsam
  • Interner Oszillator des µC zu ungenau
    • Bei Verwendung des UART
    • Bei zeitkritischen Anwendungen wie Uhren

Wahl der richtigen Frequenz

Vor allem als Anfänger denkt man sich, ich kaufe einfach mal 10MHz, das ist eine so schön gerade Zahl. Allerdings sind diese Quarze nur in den seltensten Fällen sinnvoll. Viel sinnvoller sind Baudratenquarze. "Baudraten"-Frequenzen sind ganzzahlige Vielfache der bei RS232 üblichen Baudraten. Mit Baudrate-Frequenz kann man exakte Baudraten erreichen. Mit "runden" Frequenzen entstehen hingegen Fehler, weshalb damit oft nur sehr niedrige Baudraten möglich sind.

"Runde" Frequenzen (4MHz, 8MHz, 10MHz....) sind meist leichter erhältlich und haben den Vorteil, dass man Verzögerungsschleifen und Rechendauern relativ leicht errechnen kann.

Anschluss

Die Kapazitäten von C1 und C2 entsprechen nicht der Lastkapazität des Quarzes! Sie errechnen sich folgendermaßen:

Anschluss eines Quarzes an einen AVR

C = 2·CL – (CP+CI)

  • CP: Leiterbahnen bedingte Kapazität
  • CI: Portbedingte Kapazität
  • CL: Datenblatt des Quarzes
  • CP+CI ca. 5pF

Am Beispiel von CL = 32pF:

C = 2·32pF – 5pF = 59pF

C1 und C2 sind die vom Hersteller des Kontrollers empfohlenen Werte. Mit ihnen wird die Schwingsicherheit der Oszillatorschaltung gewährleistet. C1 und C2 sollten in etwa eingehalten werden, also nicht mehr als ±20% von den ANgaben abweichen.

CL, der im Datenblatt angegebene Wert, wird beim Abgleich des Quarzes während der Herstellung benutzt.

Wenn CL nicht eingehalten wird, hat das — solange der Faktor 2 nicht überschritten wird — keinen Einfluss auf das Schwingen des Oszillators, sondern nur auf die Frequenz, aber das in einem Maße (max. 0,01% der Frequenz. Dies ist für die meisten Mikrokontrolleranwendungen bedeutungslos.

Hinweis
Soll ein Uhrenquarz eine Real-Time-Clock versorgen, so sind die Kapazitäten von großer Wichtigkeit. Die Uhr läuft bei falsch dimensionierten Kapazitäten gleich im 3-Stelligen ppm-Bereich falsch. Das bedeutet praktisch gleich mehrere Minuten pro Tag!

Einstellung der Fuses

Warnung
Hier ist besondere Vorsicht geboten. Fast immer liegt das Problem, wenn ein AVR nicht mehr läuft, an falsch eingestellten AVR Fuses!
Ein Quarz ist keine "External Clock", sondern ein "External Crystal/Ceramic Resonator".

Wenn man wirklich auf Nummer sicher gehen will, sollte man:

  • Immer das Datenblatt und den Abschnitt "Clock Source" aufmerksam lesen
  • Per Fuse Calculator die Fuses berechnen lassen. Siehe dazu die Weblinks unten.
  • Nochmals genau überprüfen

Siehe auch

Weblinks