Extra Oszillator schalten?

Gast #73477
Lesenswert?
• ▲
▼
Hallo!

Der interne Oszillator kann nicht alle Frequenzen 'erstellen' und ist
leider auch relativ ungenau / temperaturabhängig. Für Aufgaben, in
denen exaktes Timing notwendig ist (z.B. UART, RTC) ist der interne
Oscillatopr ungeeignet und man verwendet einen exakteren,
temperaturstabilen externen Quarz.

Dazu muss man die Fusebits ändern.

Grüße Flite
Gast #73479
Lesenswert?
• ▲
▼
>Ich hab' mal gelesen, dass das UART mit dem internen Oszillator nur
>keine hohen Datenraten erlaubt. Weis einer die Toleranzwerte des
>Internen Oszillators?

Warum zum Teufel gebt Ihr Euch immer mit diesen halbwahren
Überlieferungen zufrieden? Wir sind doch nicht mehr im Mittelalter, wo
nur der Pfarrer die Bibel lesen konnte. Sowas steht im Datenblatt,
dieses Thema z.B. beim Mega16 um S.300.

Mit Ausprobieren oder guten Tipps werdet Ihr gerade bei diesem Thema
eine Lösung finden, die jetzt funktioniert. Im Sommer leider nicht
mehr, weil der RC-Osz. stark temperaturabhängig ist.

Die Baudrate muss auf ca. 1,5% genau stimmen (Vorsicht Hausnummer ->
Datenblatt lesen). Egal ob 115200 oder 300 Baud eingestellt sind. Eine
abweichende Taktfrequenz macht sich bei allen Baudraten gleich fatal
bemerkbar.

Stefan
Gast #73480
Lesenswert?
• ▲
▼
nö, also bei den neuen mega8/16/32/128 etc. ist der RC-Oszillator
temp.-kompensiert und recht stabil, lediglich die Fertigungstoleranz
der Nenn-freuquenz ist "etwas" gross. Dieses läßt sich aber auch
durch entsprechende Justage über das OSCAL-Register kompensieren. Kommt
immer drauf an was fertigungstechnisch günstiger ist, quarz und 2 C`s
oder entsprechender Abgleich des internen Oszillators.
Gast #73481
Lesenswert?
• ▲
▼
Wo ist der interne RC-Osc. temperaturkompensiert? Im Manual steht
kompensiert, das bezieht sich auf die Kompensation der
Herstellungstoleranzen, s.u. Die Abweichung beträgt bei 5,0V zwischen
8,25Mhz (-40 Grad) und 7,8Mhz (80 Grad). Ändert sich zusätzlich die
Spannung, kommen noch weitere Abweichungen dazu.

Das Register OSCCAL dient lediglich des Abgleichs von
Fertigungstoleranzen im Herstellungsprocess. OSCCAL wird beim Reset mit
einem werksseitig gebranntem Kalibrierwert geladen. Dies hat aber
nichts mit Temparatur-Kompensation zu tun.

Über dieses Register lässt sich theoretisch eine Temp.Kompensation
durchführen, dazu muss aber die Temperatur (z.B. über AD) von der
Software gemessen werden. Wäre sicher interessant, habe aber noch
niemand gesehen, der sowas macht.

Stefan
Gast #73482
Lesenswert?
• ▲
▼
also über den normalen C-Temperaturbereich 0-70 °C und entsprechendem
Abgleich der Nennfrequenz bleibt man im "sicheren" Bereich von +- 2%
für UART-Baudraten generierung. Uhren oder genau timer kann man
natürlich von einem R/C-Oszillator nicht erwarten. Gegenüber den alten
internen Oszillatoren ist der jetzige aber ein erheblicher Fortschritt
und kann Bauteile und Kosten sparen.
Gast #73483
Lesenswert?
• ▲
▼
Ich will den internen RC ja nicht schlechtreden, und ich bin auch immer
dafür zu haben, Bauteile wegzulassen wo es nur geht. Beim UART wäre ich
trotzdem vorsichtig. Wenn man genau weiss, was man tut, und der
Temperaturbereich entsprechend eingeschränkt ist, mag das gehen. Es
gibt aber nichts ärgerlicheres als Fehler, die in der Sommersonne
auftreten und im Labor auf dem Schreibtisch nicht nachzuvollziehen
sind.

Die Baudraten-Toleranz kenne ich mit max. 1,5% Gesamtfehler. Dabei
sollte man nicht nur den AVR berücksichtigen, sondern auch die
Gegenseite. 1,5% Fehler machen nach einem komplett übertragenen Frame
immerhin schon 15% Zeitversatz aus. Beim Gesamtfehler müssen neben dem
Temperaturverhalten noch andere Sachen berücksichtigt werden, z.B
Baudraten-Einstellung (bei 9600 und 8Mhz 0,2% Error), über OSCCAL
einstellbare Frequenz ca. +/- 0,2% genau, ...

Wie gesagt, für manche Anwendungen wird man mit RC leben können. Mit
meinem ursprünglichen Posting wollte ich auch hauptsächlich anregen,
sich das Temperaturverhalten aus dem Datenblatt zu holen und nicht hier
zu erfragen. Wenn man sich bei der Interpretation dieser Werte dann
nicht sicher ist, kann man hier immer noch nachfragen. Nur so schafft
man sich doch eigenes Wissen, auf das man sich auch wirklich verlassen
kann.

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren