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)
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.
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.
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.
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
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.