Forum: Mikrocontroller und Digitale Elektronik Atmega88 Internal Clock Divider


von M. K. (sylaina)


Lesenswert?

Der Atmega88 und seine Derivate haben ja unter anderem einen internen 
Clock-Teiler von 8. Nun wurde ich heute gefragt, welchen Sinn das macht 
und wusste selbst keine Antwort darauf. Klar, ich kann damit z.B. an den 
Atmega einen 8 MHz-Quarz hängen und den Atmega dann mit 1 MHz laufen 
lassen. Es stellt sich aber dabei die Frage, wenn ich den Atmega mit 1 
MHz laufen lassen will warum ich nicht auch direkt eine 1 MHz Quelle 
benutzen sollte. Was bringt mir also der Clock-Divider?

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Hi Michael,

Stichwort ist Stromverbrauch. Da gibt's im Datenblatt eine Darstellung 
bzgl. Frequenz -> Strom.

von der alte Hanns (Gast)


Lesenswert?

>nicht auch direkt eine 1 MHz Quelle
Z.B. bei Reichelt finde ich keinen 1 MHz Quarz, und selbst 2 MHz sind 
teurer als höhere Frequenzen.

von Thomas E. (thomase)


Lesenswert?

Michael Köhler schrieb:
> Nun wurde ich heute gefragt, welchen Sinn das macht
> und wusste selbst keine Antwort darauf.

Die Controller haben einen Eingangsspannungsbereich von 1,8V -5,5V und 
einen Freqeunzbereich bis 16 bzw. 20MHz.

Bei 1,8V sind aber nur max. 4MHz zulässig. Deswegen wird der interne 
8Mhz-Oszillator per CKDIV8-Fuse auf 1Mhz runtergeteilt und der 
Controller auch so ausgeliefert. Damit läuft er auf jeden Fall bei jeder 
Spannung.

Beim Atmega8 und den anderen Altlasten ist die Einstellung etwas anders, 
hat aber den gleichen Sinn.

Natürlich senkt ein niedrigerer Takt auch den Stromverbrauch. Per Clock 
Prescale Register sind noch andere Teiler möglich.

mfg.

: Bearbeitet durch User
von M. K. (sylaina)


Lesenswert?

Uwe S. schrieb:
> Hi Michael,
>
> Stichwort ist Stromverbrauch. Da gibt's im Datenblatt eine Darstellung
> bzgl. Frequenz -> Strom.

Ach, wenn ich einen 8 MHz-Quarz nehme und den auf 1 MHz intern 
runterteile hat der Atmega einen geringeren Stromverbrauch als wenn ich 
direkt einen 1 MHz-Quarz nehmen würde? Also das ist mir neu.

der alte Hanns schrieb:
> Z.B. bei Reichelt finde ich keinen 1 MHz Quarz, und selbst 2 MHz sind
> teurer als höhere Frequenzen.

http://www.reichelt.de/Oszillatoren/OSZI-1-000000/3//index.html?ACTION=3&GROUPID=3174&ARTICLE=13673&OFFSET=16&;

Also das war jetzt mal gar kein Problem.

Thomas Eckmann schrieb:
> Bei 1,8V sind aber nur max. 4MHz zulässig. Deswegen wird der interne
> 8Mhz-Oszillator per CKDIV8-Fuse auf 1Mhz runtergeteilt und der
> Controller auch so ausgeliefert. Damit läuft er auf jeden Fall bei jeder
> Spannung.

Yo, super. Und wenn ich an den Divider nicht denke läuft der µC gar 
nicht wie man hier im Forum auch immer wieder mal gut beobachten kann.
Es stellt sich aber auch hier die Frage: wenn ich denn µC nur mit 1 
(oder auch 4) MHz laufen lassen will, warum dann nicht gleich einen 
solchen Quarz holen? Funktioniert ja schließlich auch bei allen anderen 
µCs die keinen Clock-Teiler haben (z.B. Atmega32).

: Bearbeitet durch User
von Nase (Gast)


Lesenswert?

Vielleicht, weil man den AVR auch in einer Anwendung einsetzen möchte, 
bei der man kurzzeitig 'viel' Rechenleistung (oder schnelle OCRs oder 
den UART) braucht und dann wieder ganz lange stromsparen möchte?

Oder weil man sich in einer Anwendung mit wenig Spannung bewegt und 
irgendwo anders grade 8 MHz abgreifen kann?

von M. K. (sylaina)


Lesenswert?

Nase schrieb:
> Vielleicht, weil man den AVR auch in einer Anwendung einsetzen möchte,
> bei der man kurzzeitig 'viel' Rechenleistung (oder schnelle OCRs oder
> den UART) braucht und dann wieder ganz lange stromsparen möchte?

Man kann während des Betriebs die Fusebits ändern? Könnte interessant 
sein aber warum nicht generell dann schnell arbeiten und lange schlafen 
bis es wieder was zu tun gibt?

Nase schrieb:
> Oder weil man sich in einer Anwendung mit wenig Spannung bewegt und
> irgendwo anders grade 8 MHz abgreifen kann?

Der interessanteste Aspekt bisher.

von Nase (Gast)


Lesenswert?

Michael Köhler schrieb:
> Man kann während des Betriebs die Fusebits ändern?
Stimmt, ist ja eine Fuse :-/

von spess53 (Gast)


Lesenswert?

Hi

>Man kann während des Betriebs die Fusebits ändern?

Nein. Und der ATMega8 besitzt kein Prescaler Register, man kann also 
außer beim internen RC-Oszillator keine andere Frequenz einstellen.

MfG Spess

von der alte Hanns (Gast)


Lesenswert?

Michael Köhler schrieb:
>Also das war jetzt mal gar kein Problem.

Aha. Nur dass ich von einem Quarz redete, und Ihr Oszillator ein 
Mehrfaches benötigt an Geld, Strom und Platz.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael Köhler schrieb:
> warum dann nicht gleich einen
> solchen Quarz holen?

Weil du dann zwei (Quarz) oder einen (Oszillator) Portpin verlierst. Im 
Auslieferzustand mit 1 MHz läuft der Mega8 dann mit etwa 2,2 mA, während 
er bei 8Mhz schon 10mA zieht.

von M. K. (sylaina)


Lesenswert?

Matthias Sch. schrieb:
> Weil du dann zwei (Quarz) oder einen (Oszillator) Portpin verlierst. Im
> Auslieferzustand mit 1 MHz läuft der Mega8 dann mit etwa 2,2 mA, während
> er bei 8Mhz schon 10mA zieht.

Frage nicht verstanden? Wenn ich den internen Oszillator wähle: Warm 
sollte ich ihn auf 8 MHz einstellen und dann mit dem Clock Divider auf 1 
MHz runter brechen? Warum nicht gleich auf 1 MHz einstellen?

Dass der Atmega mit höherer Frequenz auch mehr Strom zieht ist auch 
klar.

Nochmal für alle zum mitschreiben: Warum sollte ich einen acht mal 
größeren Oszillator wählen und diesen dann mittels Fusebits auch 1/8 
runterbrechen? Warum nicht einen Oszillator wählen, sodass der Atmega 
von vorne herein mit der Wunschgeschwindigkeit läuft?

Wie schon gesagt, ich sehe keinen wirklichen Vorteil.

der alte Hanns schrieb:
> Aha. Nur dass ich von einem Quarz redete, und Ihr Oszillator ein
> Mehrfaches benötigt an Geld, Strom und Platz.

Naja, das ist relativ. Ich hab bisher immer nur Quarze im H49-Gehäuse 
benutzt und diese haben auch immer entsprechende Kondensatoren 
gebraucht. Da relativiert sich schonmal der Platzbedarf aber mit Preis 
kommts schon hin. wäre ein Argument sofern man wirklich eine Frequenz 
zwischen etwa 300 kHz und 1.8 MHz haben möchte und nicht den internen 
Oszillator benutzen will.

von spess53 (Gast)


Lesenswert?

Hi

>Frage nicht verstanden? Wenn ich den internen Oszillator wähle: Warm
>sollte ich ihn auf 8 MHz einstellen und dann mit dem Clock Divider auf 1
>MHz runter brechen? Warum nicht gleich auf 1 MHz einstellen?

Nochmal: Beim ATMega8 gibt es keinen Clockteiler. Der interne 
RC-Oszillator läuft mit 1, 2, 4 oder 8MHz.

MfG Spess

von Thomas E. (thomase)


Lesenswert?

Michael Köhler schrieb:
> Nochmal für alle zum mitschreiben: Warum sollte ich einen acht mal
> größeren Oszillator wählen und diesen dann mittels Fusebits auch 1/8
> runterbrechen? Warum nicht einen Oszillator wählen, sodass der Atmega
> von vorne herein mit der Wunschgeschwindigkeit läuft?

Nochmal nur für dich zum mitschreiben: Beim Atmega8 wird das genau so 
gemacht. Die neueren Controller haben die CLKDIV8-Fuse und einen 
Prescaler. Aber die sind damit nichts für dich.

mfg.

von M. K. (sylaina)


Lesenswert?

spess53 schrieb:
> Nochmal: Beim ATMega8 gibt es keinen Clockteiler.

Stimmt, ist der z.B. Atmega88. Egal, das Thema sollte doch klar sein 
oder etwa nicht?

EDIT: Hab den Threadtitel angepasst.

: Bearbeitet durch User
von hufnala (Gast)


Lesenswert?

Vielleicht um auch Frequenzen < 1MHz mit internem Oszillator nutzen zu 
koennen, vielleicht auch - hab das Datenblatt gerade nicht da - um 
andere Frequenzen ggf unabhaengig vom CPU Takt verfuegbar zu haben. 
Wobei mir da aktuell nichts konkretes einfaellt. Vielleicht auch um 
krumme Frequenzen zu erzeugen fuer die es keine (guten) Quarze gibt/gab. 
Nachdem der Teiler auch 'fix' ist koennte die Genauigkeit auch eine 
Rolle spielen, falls hoehere Frequenzen exakter erzeugbar sind als 
niedrige (Quarz Datenblatt).

so, mehr faellt mir nicht ein :-)

//hufnala

von Axel S. (a-za-z0-9)


Lesenswert?

Michael Köhler schrieb:
> Uwe S. schrieb:

>> Stichwort ist Stromverbrauch. Da gibt's im Datenblatt eine Darstellung
>> bzgl. Frequenz -> Strom.
>
> Ach, wenn ich einen 8 MHz-Quarz nehme und den auf 1 MHz intern
> runterteile hat der Atmega einen geringeren Stromverbrauch als wenn ich
> direkt einen 1 MHz-Quarz nehmen würde?

Das hat doch niemand behauptet.

> Thomas Eckmann schrieb:
>> Bei 1,8V sind aber nur max. 4MHz zulässig. Deswegen wird der interne
>> 8Mhz-Oszillator per CKDIV8-Fuse auf 1Mhz runtergeteilt und der
>> Controller auch so ausgeliefert. Damit läuft er auf jeden Fall bei jeder
>> Spannung.
>
> Yo, super. Und wenn ich an den Divider nicht denke läuft der µC gar
> nicht wie man hier im Forum auch immer wieder mal gut beobachten kann.

Lern lesen! Im Auslieferungszustand ist die CLKDIV Fuse gesetzt. Eben 
damit der µC auch bei kleiner Spannung losläuft.

> Es stellt sich aber auch hier die Frage: wenn ich denn µC nur mit 1
> (oder auch 4) MHz laufen lassen will, warum dann nicht gleich einen
> solchen Quarz holen?

Weil es um die Verwendung des internen RC-Oszillators ging. Der läuft 
nun mal mit 8MHz. Und ohne den kannst du noch nicht mal die Fuse setzen 
um dem µC zu sagen, daß er deinen externen Quarz verwenden soll.

Michael Köhler schrieb:
> Man kann während des Betriebs die Fusebits ändern?

Nein. Muß man aber nicht, weil die CLKDIV Fuse nur den Initialwert für 
den Clock Prescaler nach dem Reset vorgibt.

Michael Köhler schrieb:
> Frage nicht verstanden? Wenn ich den internen Oszillator wähle: Warm
> sollte ich ihn auf 8 MHz einstellen und dann mit dem Clock Divider auf 1
> MHz runter brechen? Warum nicht gleich auf 1 MHz einstellen?

Zeig doch mal bitte, wie du den internen Oszillator auf 1MHz einstellst, 
ohne die CLKDIV Fuse zu bemühen. Der läuft mit 8MHz plusminus ein 
bißchen. Um ihn auf 4MHz oder 2MHz per Clock Prescaler runterzudrehen, 
muß der µC aber erst mal laufen. Das tut er bei kleinen 
Versorgungsspannungen aber nur, wenn der Prescaler per CLKDIV Fuse auf 
Teiler 8 voreingestellt wird.


XL

von M. K. (sylaina)


Lesenswert?

Axel Schwenke schrieb:
> Das hat doch niemand behauptet.

So liest es sich aber.

Axel Schwenke schrieb:
> Lern lesen! Im Auslieferungszustand ist die CLKDIV Fuse gesetzt. Eben
> damit der µC auch bei kleiner Spannung losläuft.

Ich kann lesen, du auch? Wenn man jetzt sein Programm schreibt und dann 
z.B. mit 8 MHz arbeiten will und nicht an dieses Fusebit denkt läuft der 
µC auch nicht los. Daher kann das kein Argument sein für den 
Clock-Teiler.
Der Vorteil kleinerer Spannungen und geringeren Strombedarfs bei 
kleinerem Clock ist mir durchaus bekannt.

Axel Schwenke schrieb:
> Weil es um die Verwendung des internen RC-Oszillators ging. Der läuft
> nun mal mit 8MHz. Und ohne den kannst du noch nicht mal die Fuse setzen
> um dem µC zu sagen, daß er deinen externen Quarz verwenden soll.

Aha, und wenn ich den µC auf externen Clocksource umgestellt habe ohne 
Prescaler…also bisher konnte ich dann immer den µC auch wieder neu 
flashen. Obwohl dann das CLKDIV-Fusebit nicht mehr aktiv ist.

Axel Schwenke schrieb:
> Zeig doch mal bitte, wie du den internen Oszillator auf 1MHz einstellst,
> ohne die CLKDIV Fuse zu bemühen. Der läuft mit 8MHz plusminus ein
> bißchen. Um ihn auf 4MHz oder 2MHz per Clock Prescaler runterzudrehen,
> muß der µC aber erst mal laufen.

Mit dem CLKPR vielleicht? Das CLKDIV-Fusebit muss dafür nicht gesetzt 
sein. Das CLKDIV-Fusebit macht nichts anderes, wie du sicher weißt, als 
das CLKPR auf einen Initialwert von 8 zu setzen. Man kann aber auch 
einen Initialwert von z.B. 256 einstellen.

Axel Schwenke schrieb:
>Das tut er bei kleinen
> Versorgungsspannungen aber nur, wenn der Prescaler per CLKDIV Fuse auf
> Teiler 8 voreingestellt wird.

Immer wieder das Gleiche: Im Kern gehts immer wieder um kleine 
Versorgungsspannungen. Daher immer wieder meine Frage: Warum den 
Clock-Teiler benutzen und nicht gleich den richtigen Oszillator? Geringe 
Vorsorgungsspannung von 1.8V kann man schon mit z.B. 2 MHz benutzen und 
dafür gibts jede Menge Quarze/Oszillatoren.
Bisher einzig sinnige Antwort: Weil ich vielleicht, aus welchen Gründen 
auch immer (wäre aber auch interessant), eine Frequenz fahren will für 
die es keinen Quarz/Oszillator gibt.

von Thomas E. (thomase)


Lesenswert?

So langsam geht deine Borniertheit wahrscheinlich nicht nur mir auf den 
Geist. Ist ja nicht auszuhalten, was du für einen Dünnschiss von dir 
gibst.

Lies die Argumente, die mittlerweile alle gebracht wurden und verdreh 
den Leuten nicht das Wort im Mund.

Was faselst du ständig von Quarzen? Wenn man einen Quarz nimmt, nimmt 
man den richtigen. Der Prescaler ist dabei nur Sonntags beim Basteln ein 
Thema, wenn man in der Bastelkiste nur einen doppelt so schnellen hat, 
wie man bräuchte.

Hier geht es ausschliesslich um den internen Oszillator. Und der läuft 
mit 8MHZ. Das ist aber bei 1,8V zu schnell. Für viele Anwendungen, die 
dann mit höherer Spannung laufen müssen, aber zu langsam. Der interne 
RC-Oszillator verbraucht aber weniger Strom, als der Oszillator mit 
externem Quarz. Und für batteriebetriebene Anwendungen ist 
Stromverbrauch das Thema schlechthin.

mfg.

: Bearbeitet durch User
von M. K. (sylaina)


Lesenswert?

Ich hab mir inzwischen die Antwort aus dem Datenblatt rekonstruiert (die 
hier im Thread übrigens nicht genannt wurde, der Prescaler ist nicht 
ganz so einfach veränderbar wie mit dem Fusebit). Einige sollten aber 
vielleicht mal überlegen ob ihre Antwort didaktisch schlichtweg 
ungünstig war und deshalb auf der Gegenseite nicht verstanden wurde 
statt der Gegenseite Borniertheit oder ähnliches vorzuwerfen.

von Thomas E. (thomase)


Lesenswert?

Michael Köhler schrieb:
> Ich hab mir inzwischen die Antwort aus dem Datenblatt
> rekonstruiert (die
Du Ärmster, musstes du ins Datenblatt gucken. Aber trotzdem 
beeindruckend.

> hier im Thread übrigens nicht genannt wurde, der Prescaler ist nicht
> ganz so einfach veränderbar wie mit dem Fusebit).
Ach nein?

Erstens wurde die Möglichkeit genannt:

Thomas Eckmann schrieb:
> Natürlich senkt ein niedrigerer Takt auch den Stromverbrauch. Per Clock
> Prescale Register sind noch andere Teiler möglich.

Zweitens ist es an dir, im Datenblatt nachzulesen, was dabei zu beachten 
ist.

> Einige sollten aber vielleicht mal überlegen ob ihre Antwort didaktisch
> schlichtweg ungünstig war und deshalb auf der Gegenseite nicht verstanden
> wurde statt der Gegenseite Borniertheit oder ähnliches vorzuwerfen.

Solche Forderungen kannst du stellen, wenn du eine Hotline für 3€/min. 
anrufst. Und die Borniertheit wiederhole ich nochmal.

mfg.

von Axel S. (a-za-z0-9)


Lesenswert?

Michael Köhler schrieb:
> Axel Schwenke schrieb:
>> Lern lesen! Im Auslieferungszustand ist die CLKDIV Fuse gesetzt. Eben
>> damit der µC auch bei kleiner Spannung losläuft.
>
> Ich kann lesen, du auch? Wenn man jetzt sein Programm schreibt und dann
> z.B. mit 8 MHz arbeiten will und nicht an dieses Fusebit denkt läuft der
> µC auch nicht los.

Wieso läuft der µC "nicht los"? Natürlich läuft er. Nur eben Faktor 8 
langsamer als gewünscht. Und? Wer die Inbetriebnahmeanleitung nicht 
liest, der fällt halt aufs Maul. Das ist bei einer Waschmaschine oder 
einem Toaster nicht anders.

>> Weil es um die Verwendung des internen RC-Oszillators ging. Der läuft
>> nun mal mit 8MHz. Und ohne den kannst du noch nicht mal die Fuse setzen
>> um dem µC zu sagen, daß er deinen externen Quarz verwenden soll.
>
> Aha, und wenn ich den µC auf externen Clocksource umgestellt habe ohne
> Prescaler

Das kannst du aber u.U. gar nicht. Nämlich dann wenn der µC bei einer 
Betriebsspannung geflasht/ge(ver)fused werden muß bei der er die 8MHz 
nicht schafft.

>> Zeig doch mal bitte, wie du den internen Oszillator auf 1MHz einstellst,
>> ohne die CLKDIV Fuse zu bemühen. Der läuft mit 8MHz plusminus ein
>> bißchen. Um ihn auf 4MHz oder 2MHz per Clock Prescaler runterzudrehen,
>> muß der µC aber erst mal laufen.
>
> Mit dem CLKPR vielleicht?

Und wie setzt du die, wenn dein µC mit den 8Mhz des internen Oszillators 
gar nicht erst losläuft? Und ich meine hier wirklich: nicht losläuft.

> Das CLKDIV-Fusebit macht nichts anderes, wie du sicher weißt, als
> das CLKPR auf einen Initialwert von 8 zu setzen. Man kann aber auch
> einen Initialwert von z.B. 256 einstellen.

Aha. Wie kommst du darauf? Das stimmt nämlich nicht. Du kannst den 
Prescaler auf genau 2 Werte voreinstellen: auf 1 und auf 8. Und zwar 
genau mit der CLKDIV Fuse. Für alle anderen Werte muß der µC erstmal 
laufen, sein Programm ausführen und kann dann den Prescaler setzen.

> Immer wieder das Gleiche: Im Kern gehts immer wieder um kleine
> Versorgungsspannungen.

Ja. Daß dir diese Antwort nicht gefällt, liegt nicht an uns. Es gibt 
aber keine andere.

> Daher immer wieder meine Frage: Warum den
> Clock-Teiler benutzen und nicht gleich den richtigen Oszillator?

Weil im Auslieferungszustand des ATmega88 (und der meisten anderen 
aktuellen AVRs) nun mal der interne Oszillator als Taktquelle 
eingestellt ist und nicht ein externer Taktgenerator. Was alle die 
Kunden von Atmel gut finden, die den µC in der Anwendungsschaltung 
programmieren (müssen) und die XTAL Pins für was anderes als einen Quarz 
oder Taktgenerator verwenden (müssen).

Der interne Oszillator ist nun mal die universellste Wahl. Weil er in 
jeder Anwendungsschaltung funktioniert. Mit der kleinen aber wichtigen 
Ausnahme, wenn der µC bei einer Betriebsspannung arbeiten muß bei der er 
die 8MHz nicht schafft. Weder zum Arbeiten noch zum Programmieren 
(sowohl Flash als auch Fuses). Genau dafür gibts die CLKDIV Fuse. Und 
genau darum ist sie auch im Auslieferungszustand gesetzt.

Eine kleine Gruppe von Atmels Kunden wird das so brauchen, andere 
werden die CLKDIV Fuse einfach selber auf den gewünschten Wert setzen. 
Ein vermutlich noch größerer Teil wird sagen "Was solls, ich setze CLKPR 
ja sowieso in meinem Programm und ob der µC bis zu dieser Stelle mit 1/8 
Geschwindigkeit läuft ist mir Schnuppe".

Schließlich wird noch eine kleine Minderheit von Ignoranten hier im 
Forum aufschlagen und rumheulen "Mi mi mi! Mein AVR läuft gefühlt 
zehnmal zu langsam, woran liegt das????"


XL

von M. S. (elpaco)


Lesenswert?

Der Blick ins Datenblatt sagt:

The Atmel ATmega48/88/168 has a system clock prescaler, and the system 
clock  can be
divided by setting the “CLKPR – Clock prescale register” on page 37. 
This feature can be used
to decrease the system clock frequency and the power consumption when 
the requirement for
processing power is low. This can be used with all clock source options, 
and it will affect the
clock frequency of the CPU and all synchronous peripherals. clkI/O, 
clkADC, clkCPU, and clkFLASH
are divided by a factor as shown in Table 9-14 on page 38.

Weiterhin ist zu entnehmen, dass der besagte CLKPR kein Fuse ist, 
sondern (unter Beachtung gewisser Bedingungen) während des Betriebs 
geändert werden kann.

: Bearbeitet durch User
von Helmut L. (helmi1)


Lesenswert?

Michael Köhler schrieb:
> Nochmal für alle zum mitschreiben: Warum sollte ich einen acht mal
> größeren Oszillator wählen und diesen dann mittels Fusebits auch 1/8
> runterbrechen? Warum nicht einen Oszillator wählen, sodass der Atmega
> von vorne herein mit der Wunschgeschwindigkeit läuft?

Ganz einfach:

SMD Quarze in kleinem Gehauese gibt es erst ab Frequenzen von 8MHz 
aufwaerts weil das Quarzplaettchen sonst nicht ins Gehaeuse passt.
Und nein die riesigen bedrahteten Truemmerteile ala HC49 oder so will 
keiner in der Industrie mehr haben.

von Falk B. (falk)


Lesenswert?

@ Helmut Lenzen (helmi1)

>SMD Quarze in kleinem Gehauese gibt es erst ab Frequenzen von 8MHz
>aufwaerts weil das Quarzplaettchen sonst nicht ins Gehaeuse passt.

Wie erklärst du dann die Größe von 32,768 kHz Uhrenquarzen? ;-)

>Und nein die riesigen bedrahteten Truemmerteile ala HC49 oder so will
>keiner in der Industrie mehr haben.

Vielleicht eine russiche Panzerschmiede ;-)

von Thomas E. (thomase)


Lesenswert?

Falk Brunner schrieb:
> Vielleicht eine russiche Panzerschmiede ;-)

Die takten mit Pendeln. Unanfällig gegen EMP.

mfg.

: Bearbeitet durch User
von Helmut L. (helmi1)


Lesenswert?

Falk Brunner schrieb:
> Wie erklärst du dann die Größe von 32,768 kHz Uhrenquarzen? ;-)

Da ist ein andere Quarztype drin (Biegeschwinger), die gehen aber nicht 
so hoch in der Frequenz (einige 100kHz)

Quarze fuer hoehere Frequenzen werden als Dickenscherschwinger 
gefertigt. Je niederiger die Frequenz umso groessere werden die. In die 
kleinen 2 x3 mm SMD Gehauese passen die erst ab 8Mhz aufwaerts rein.

Falk Brunner schrieb:
> Vielleicht eine russiche Panzerschmiede ;-)

Die haben noch Quarze im Roehrensockel drin ;-)

von Ralf G. (ralg)


Lesenswert?

M. S. schrieb:
> Weiterhin ist zu entnehmen, dass der besagte CLKPR kein Fuse ist,
> sondern (unter Beachtung gewisser Bedingungen) während des Betriebs
> geändert werden kann.

Bist du ein Verwandter vom TO?

CLKPR  -> Prescaler für Timer
CKDIV8 -> Fuse für Systemtakt

von Thomas E. (thomase)


Lesenswert?

Ralf G. schrieb:
> CLKPR  -> Prescaler für Timer
Nein.

Prescaler für den Systemtakt.

mfg.

von Ralf G. (ralg)


Lesenswert?

Thomas Eckmann schrieb:
> Prescaler für den Systemtakt.

Ja, stimmt. Für 'nachträgliche' Einstellungen. Die Timer kann man 
einzeln einstellen.

Die korrekte Erklärung war schon hier:
Beitrag "Re: Atmega8 Internal Clock Divider"

von M. K. (sylaina)


Lesenswert?

Ralf G. schrieb:
> CLKPR  -> Prescaler für Timer
> CKDIV8 -> Fuse für Systemtakt


Öhm, CLKPR ist der Prescaler für den Systemtakt. CLKDIV8 stellt diesen 
nur auf einen Wert von 8 ein.
Der Timer-Prescaler ist im TCCRx zu finden.

Helmut Lenzen schrieb:
> SMD Quarze in kleinem Gehauese gibt es erst ab Frequenzen von 8MHz
> aufwaerts weil das Quarzplaettchen sonst nicht ins Gehaeuse passt.
> Und nein die riesigen bedrahteten Truemmerteile ala HC49 oder so will
> keiner in der Industrie mehr haben.

Endlich mal eine vernüftige Antwort. Danke dir.

M. S. schrieb:
> Weiterhin ist zu entnehmen, dass der besagte CLKPR kein Fuse ist,
> sondern (unter Beachtung gewisser Bedingungen) während des Betriebs
> geändert werden kann.

Richig, aber das Fusebit setzt dieses Register nur sodass sich ein 
Teiler von 8 einstellt ;)

Axel Schwenke schrieb:
> Aha. Wie kommst du darauf? Das stimmt nämlich nicht. Du kannst den
> Prescaler auf genau 2 Werte voreinstellen: auf 1 und auf 8. Und zwar
> genau mit der CLKDIV Fuse. Für alle anderen Werte muß der µC erstmal
> laufen, sein Programm ausführen und kann dann den Prescaler setzen.

DAS geht so aus dem Datenblatt erstmal gar nicht hervor bzw. die 
entsprechende Stelle hab ich nicht gefunden. Aber dein Beitrag war jetzt 
ausführlich genug.

Thomas Eckmann schrieb:
> Zweitens ist es an dir, im Datenblatt nachzulesen, was dabei zu beachten
> ist.

Das hab ich ja gemacht, konnte mir aber zunächst schlicht keinen Reim 
darauf machen. Daher hab ich ja hier gefragt.

Im Allgemeinen glaub ich lass ich es demnächst hier zu fragen. Wenn ich 
frage dann nicht um blöd angemacht zu werden und wenn man sieht an 
meinen Antworten, dass ich es nicht verstanden habe dann hilft es 
wahrscheinlich wesentlich besser wenn man die Antwort noch mal neu, ggf. 
ausführlicher formuliert wie es einige hier aber auch umgesetzt haben.

Für mich ist somit hier alles klar und ich danke allen für ihre Mühe es 
mir zu erklären.

von Axel S. (a-za-z0-9)


Lesenswert?

Michael Köhler schrieb:
> Axel Schwenke schrieb:
>> Du kannst den
>> Prescaler auf genau 2 Werte voreinstellen: auf 1 und auf 8. Und zwar
>> genau mit der CLKDIV Fuse. Für alle anderen Werte muß der µC erstmal
>> laufen, sein Programm ausführen und kann dann den Prescaler setzen.
>
> DAS geht so aus dem Datenblatt erstmal gar nicht hervor bzw. die
> entsprechende Stelle hab ich nicht gefunden. Aber dein Beitrag war jetzt
> ausführlich genug.

Aha.

> Im Allgemeinen glaub ich lass ich es demnächst hier zu fragen. Wenn ich
> frage dann nicht um blöd angemacht zu werden und wenn man sieht an
> meinen Antworten, dass ich es nicht verstanden habe dann hilft es
> wahrscheinlich wesentlich besser wenn man die Antwort noch mal neu, ggf.
> ausführlicher formuliert ...

Den Schuh kannst du dir selber anziehen. Denn du hast keineswegs zu 
erkennen gegeben, daß du das Datenblatt oder die gegebenen Erklärungen 
nicht verstanden hast. Ja, womöglich lag das daran daß sie zu knapp 
gehalten waren. Aber ich kann aus der Ferne nicht sehen, ob es bei dir 
jetzt Klick gemacht hat oder nicht, wenn du es nicht sagst.

Statt dessen hast du voller Überzeugung die immer gleichen, falschen 
Behauptungen vorgebracht. Wie z.B. daß du ja problemlos einen externen 
Takt anschließen kannst (ohne vor her die Clock-Fuses setzen zu müssen) 
oder daß du ja problemlos eine Prescalereinstellung zwischen 1 und 256 
vorgeben könntest (ohne daß der µC dazu erst mal laufen müßte).

Es ist keine Schande zuzugeben "ich weiß das nicht" oder "ich habe das 
nicht verstanden". Es ist aber eine Schande, wenn man in diesem Zustand 
des Nichtwissens verharrt statt zu fragen und zu lernen.


XL

von Uwe K. (ukhl)


Lesenswert?

Michael Köhler schrieb:
> Der Atmega88 und seine Derivate haben ja unter anderem einen internen
> Clock-Teiler von 8. Nun wurde ich heute gefragt, welchen Sinn das
> macht...

Jetzt ich (ich glaube ich bin zu Spät ;-) ):

Sinn:
Taktanpassung des internen Oszillators.


Kurze Version:
Mit einem Quarz macht es keinen Sinn (Ausnahmen bestätigen die Regel).
P.S.:
Mit dem Register CLKPR kann man den Teiler auch zur Laufzeit anpassen. 
Damit ist es möglich, das FUSE Bit im Initialzustand zu belassen.

Mit dem internen Oszillator schaltet man mit dem Teiler zwischen 1 MHz 
und 8 MHz um.


Lange Version:
Ein Blick in das Datenblatt des ATmega8 gibt etwas Klarheit. Der Mega8 
hat keinen Teiler aber 4 verschiedene interne Oszillatoren (1 ,2 ,4 und 
8 MHz). Das hat man sich bei der nachfolgen Generation gespart und den 
Teiler eingeführt. Damit benötigt man nur noch einen internen Oszillator 
und kann trotzdem den Takt ändern.

Das man bei einem externen Takt auch den Teiler verwenden kann, hat nur 
wenig Bedeutung.

von Thomas E. (thomase)


Lesenswert?

Michael Köhler schrieb:
> Das hab ich ja gemacht, konnte mir aber zunächst schlicht keinen Reim
> darauf machen. Daher hab ich ja hier gefragt.

Schon im Ausgangspost hast du mit deiner Fragestellung impliziert, dass 
der Prescaler Blödsinn ist. Trotz aller Erklärungen, hast du ständig 
weiterhin darauf rumgeritten. Wie ein bockiges Kleinkind.

mfg.

von Erinnerer (Gast)


Lesenswert?

Die einzig vernünftige, sinnvolle und normale Antwort gab Uwe K.
um 15:23 Uhr. Dafür danke.

von M. K. (sylaina)


Lesenswert?

Axel Schwenke schrieb:
> Es ist keine Schande zuzugeben "ich weiß das nicht" oder "ich habe das
> nicht verstanden". Es ist aber eine Schande, wenn man in diesem Zustand
> des Nichtwissens verharrt statt zu fragen und zu lernen.

Frage zur Anregung: Wie hoch schätzt du die Wahrscheinlichkeit ein, dass 
ich hier gefragt hatte wenn ich im Zustand des Nichtwissens verharren 
wollte?
Ja, ich hab das mit dem Prescaler auch falsch verstanden. Mir ist aber 
auch neu, dass ein falsches Verständnis eine Schande ist. Vielleicht ist 
es aber auch eine Schande jemanden wegen seines falschen Verständnisses 
einfach anzublöken statt ihm zu sagen, dass er da wahrscheinlich etwas 
falsch verstanden hat.
Bitte sei doch so nett und geh demnächst nicht einfach davon aus, dass 
der Gegenüber borniert ist sondern dass er vielleicht wirklich etwas 
nicht versteht und mache dann einfach eine ausführlichere Erklärung. Hat 
hier ja auch geklappt mit deiner ausführlichen Erklärung.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michael Köhler schrieb:
> DAS geht so aus dem Datenblatt erstmal gar nicht hervor bzw. die
> entsprechende Stelle hab ich nicht gefunden. Aber dein Beitrag war jetzt
> ausführlich genug.

Michael Köhler schrieb:
> Ja, ich hab das mit dem Prescaler auch falsch verstanden. Mir ist aber
> auch neu, dass ein falsches Verständnis eine Schande ist.

 Nein, ist es nicht, aber man sollte schon den Unterschied zwischen
 Fuse und Register kennen, bevor man eine solche Diskussion anfängt.

von Thomas E. (thomase)


Lesenswert?

Michael Köhler schrieb:
> Ja, ich hab das mit dem Prescaler auch falsch verstanden. Mir ist aber
> auch neu, dass ein falsches Verständnis eine Schande ist.

Das ist es überhaupt nicht.

Wenn du mir aber auf meinen ersten Post, in dem das Wesentliche 
drinsteht, so kommst:

Michael Köhler schrieb:
> Yo, super. Und wenn ich an den Divider nicht denke läuft der µC gar
> nicht wie man hier im Forum auch immer wieder mal gut beobachten kann.

Dann bist du, nicht nur bei mir, kurz vor lmaA.

mfg.

von M. K. (sylaina)


Lesenswert?

Was war denn daran so schlimm? Ist das etwa falsch? Wenn ich dich damit 
beleidigt haben sollte tut es mir leid. Das war bei weitem nicht meine 
Absicht.

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.