Interner vs. externer Oszillator

Gast #2497144
Hi Leute,

auch ich bin neu in der Welt des uC Programmierens. Ich besitze das 
Starterkit aus dem AVR Tutorial (bitte keine Diskussion über Sinn oder 
Unsinn des Boards):

http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=108

Der Atmega8 wird werksmäßig mit einem internen Oszillator ausgeliefert 
(1 MHz). Auf dem Board ist jedoch auch ein externer 8 MHz Quarz 
mitgeliefert.

Meine Frage:
Welchen Vor- oder Nachteil habe ich bei den jeweiligen Oszillatoren?

Im Prinzip gibt der Oszillator ja den Takt für den uC vor. Je höher die 
Freuqenz, umso mehr Befehle werden pro Sekunde abgearbeitet. Also wären 
ja die 8 MHz theoretisch klüger.

Aber reichen nicht auch die 1 MHz vom internen Oszillator für 
Standardanwendungen wie LEDs, LCD Display, Temperaturmessung, 
Potentiometer etc.?

Vielen Dank und freundliche Grüße

al3ko
al3ko schrieb:

> Im Prinzip gibt der Oszillator ja den Takt für den uC vor. Je höher die
> Freuqenz, umso mehr Befehle werden pro Sekunde abgearbeitet. Also wären
> ja die 8 MHz theoretisch klüger.

Wenn man es so sieht.
Die Kehrseite der Medaille: Je höher die Taktfrequenz, desto mehr Strom 
braucht auch der µC.

Keine Angst, das sind jetzt nicht die großen Welten. Aber wenn man 
tragbare, portable Geräte bauen will, die mit Batterien möglichst lange 
laufen sollen, ist das ein Argument.

> Aber reichen nicht auch die 1 MHz vom internen Oszillator für
> Standardanwendungen wie LEDs, LCD Display, Temperaturmessung,
> Potentiometer etc.?

Von der Leistungsfähigkeit her: locker.
Kritisch wird es nur bei Dingen, die ein einigermassen genaues Timing 
brauchen, wie zb Kommunikationsdinge (zb UART)
Gast
Der interne Iszillator ist ziemlich ungenau. Ich glaube +-10% (in der 
>Größenordnung)
Wenn du jetzt z.b. ein Thermometer mit LCD Anzeige bastelst ist das 
ziemlich egal. Ob die Temperatur jetzt alle 0.9 oder 1.1 Sekunden 
gemessen wird (als Beispiel)
Eine Uhr kannst du so natürlich nicht bauen ;) Da brauchst du deinen 
Quarz. Dieser ist ausreichend genau, dass die Uhr nur einmal im Jahr 
stellen musst.
Gast
Hallo Karl Heinz Buchegger, Hallo Eumel,

vielen Dank für eure beiden Beiträge. Ich belasse es zunächst bei dem 1 
MHz Oszillator :)

Schöne Grüße,

al3ko
spess53 schrieb:
> Hi
>
> Du kannst übrigens auch den internen Oszillator auf 2, 4 oder 8 MHz
> umstellen.
>
> MfG Spess
Was den internen aber auch nicht genauer macht.
Jedoch gibts ja auch das Calibration Register, mit den man den interen 
schon ziemlich genau einstellen kann. Damit kann ich den internen mit 
CKDIV8 (also 1MHz) und Timerinterrupt (alle 1ms) etwa 5 Minuten "zählen" 
mit max. 1s Abweichung.

Muss man halt für jeden µC neu ausmessen. Und der intere Oszi ist eben 
auch temperatur.- und spannungsabhängiger als ein Externer.
Wenn es in Richtung UART/USB etc. geht ist ein externer Quarz definitiv 
sinnvoll, ansonsten tut es auch der interne (damit arbeite ich viel wenn 
möglich da es eben auch einiges an externer Beschaltung spart). Beim 
ATxmega habe ich übrigens die Erfahrung gemacht, dass selbst der interne 
ziemlich genau arbeitet.
Gast
Hi

>Was den internen aber auch nicht genauer macht.

Habe ich ja auch nicht behauptet. Das hatte schon Karl-Heinz ausgeführt. 
Also musste es nicht noch einmal wiederholt werden.

MfG Spess
Die Frage ist weshalb ist ein schneller Controller besser wie ein 
langsamer ? Dazu sollte man genauer anschauen, was der Controller denn 
macht, resp nicht macht. Wenn der Controller 99% der Zeit beschaeftigt 
ist hat man etwas falsch gemacht, hat keine Reserve mehr. Wenn man es 
also richtig gemacht hat, dann wartet der Controller eh die meiste Zeit 
auf irgendwas. Die entscheidene Frage ist wie lange dauert es bis er die 
entscheidenen Dinge gemacht hat. Kann er die fristgerecht erledigen oder 
eben nicht.

Ein 8x2 LCD muss man nicht 1000 mal pro sekunde updaten, das sieht 
niemand.
Ich schreib ueblicherweise mit einem Timer alle 10ms einen Character auf 
so ein LCD. Das ganze Display ist dann alle 160ms neu geschrieben, dh 6 
mal pro sekunde.

Und ploetzlich genuegen auch 1MHz Clock oder so.
Gast
Eumel schrieb:
> Da brauchst du deinen
> Quarz. Dieser ist ausreichend genau, dass die Uhr nur einmal im Jahr
> stellen musst.

Eumel schrieb:
> Dieser ist ausreichend genau, dass die Uhr nur einmal im Jahr
> stellen musst.

So ganz von selbst auch nicht, ich habe bei Uhrenfunktionen immer den 
Quarz zusätzlich mit einem Präzisionszähler abgeglichen - sonst sind die 
Abweichungen viel grösser als 1min/Jahr.

Wenn man tatsächlich eine genaue Frequenz braucht, hat ein externer 
Oszillator jedenfalls den Vorteil, dass er so genau ist wie ihn der 
Hersteller spezifiziert hat. Ist es ein TCXO, also ein 
temperaturkompensierter Oszillator, ist er genauer als man das selbst 
mit internen Oszillatoren oder direkt angeschlossenen Quarzen erreichen 
kann.

Gruss Reinhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.