Forum: Mikrocontroller und Digitale Elektronik Interner vs. externer Oszillator


von al3ko (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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)

von Eumel (Gast)


Lesenswert?

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.

von MCUA (Gast)


Lesenswert?

>Der interne Oszillator ist ziemlich ungenau. Ich glaube +-10%
calibriert aber +-1%.
ausserdem werden auch die immer genauer.

von al3ko (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

Du kannst übrigens auch den internen Oszillator auf 2, 4 oder 8 MHz 
umstellen.

MfG Spess

von Timmo H. (masterfx)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Purzel H. (hacky)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

ALLLLLLLLLS
NICHT WIEEEEEEEEEEE
Ich krieg ja schon nen Anfall wenn Menschen so sprechen. Aber 
geschrieben sieht das einfach noch dämlicher aus.

von c. m. (Gast)


Lesenswert?

Eumel schrieb:
> ALLLLLLLLLS
> NICHT WIEEEEEEEEEEE

als wie das sonst noch wen stören tut.

von Johannes G. (gutenberg)


Lesenswert?

Eumel schrieb:
> ALLLLLLLLLS
> NICHT WIEEEEEEEEEEE

Ja du bist der einzigste der sich darüber aufregt.

                  ^
                argh!

von Reinhard Kern (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?


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.