Forum: Mikrocontroller und Digitale Elektronik Extra Oszillator schalten?


von Sencer Soylu (Gast)


Lesenswert?

Hallo,
ich war auf der ATMEL Seite!
Fast alle ATMEL-Mikrocontroller ausser eins haben einen internen
Oszillator. Dann müsste man doch nicht einen Oszillator extra schalten,
oder?
Danke.

von Flite (Gast)


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

von Gottfried Bremer (Gast)


Lesenswert?

Ich hab' mal gelesen, dass das UART mit dem internen Oszillator nur
keine hohen Datenraten erlaubt. Weis einer die Toleranzwerte des
Internen Oszillators?

von Stefan Kleinwort (Gast)


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

von mmerten (Gast)


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.

von Stefan Kleinwort (Gast)


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

von mmerten (Gast)


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.

von Stefan Kleinwort (Gast)


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

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.