atmega644 auf internen takt von 8mhz einstellen

Gast #694886
Lesenswert?
• ▲
▼
>hallo, ich komme mit dem datenblatt vom 644 nicht klar.

Was soll das heißen? Kannst Du es nicht lesen, oder was?

>ich möchte den atmega644 auf internen takt stellen von 8mhz.

Auf Seite 28 im DB ist unter "clock sources" eindeutig beschrieben,
welche Fuses wie gesetzt werden müssen.

Und nochwas, nicht m(milli)Hertz sondern M(Mega)Hertz.
#694913
Lesenswert?
• ▲
▼
@jack
bleib mal locker!

Habe heute meinen netten Tag ;)

Seite 28:
Default Clock Source: The device is shipped with internal RC oscillator 
at 8.0MHz and with the fuse CKDIV8 programmed, resulting in 1.0MHz 
system clock

In Deutschisch:
Der Controller wird mit einem internen 8 MHz RC-Oszillator ausgeliefert, 
welcher durch die gesetzte CKDIV8-Fuse bei effektiv 1 MHz läuft.

Eine Suche nach "CKDIV8" im Dokument liefert Seite 33: "Calibrated 
Internal RC Oscillator" mit weiteren Informationen zum internen 
Oszillator.
CKSEL3..0 muss z.B. auf 0010 gesetzt werden (was es wahrscheinlich ab 
Werk schon ist)

Hier findet sich auch folgende Info:
"If 8 MHz frequency exceeds the specification of the device (depends on 
VCC), the CKDIV8 Fuse can be programmed in order to divide the internal 
frequency by 8."

In Deutschisch:
Falls die 8 MHz zu schnell für den Controller sein sollte (z.B. bei zu 
niedriger Versorgungsspannung), kann das CKDIV8-Fuse gesetzt 
(programmed) werden um die Rate auf 1 MHz zu reduzieren.

Ich interpretiere das so, dass einfach nur die CKDIV8 Fuse (unprogrammed 
= 1) werden muss, und schon hast du die Werkskalibrierten 8 MHz (bei Vcc 
= 5V). Ich kenne den 644 nicht - kann sein, dass ich mich irre... aber 
auch dann steht's im Datenblatt.
Gast #694935
Lesenswert?
• ▲
▼
...Wenn der 644 im Auslieferungszustand ist, muss CKDIV8 im low fuse 
byte
umgeschaltet werden.....


wie muss denn nun CKSEL3..0 gesetzt werden, damit die 8mhz intern 
eingestellt sind?

danke.

mfg
Gast #694970
Lesenswert?
• ▲
▼
Tja, was soll man da machen. Das ist nunmal bei jedem Programmer ein 
wenig anders, leider hast du ja noch immer nicht verraten welchen du 
hast.

In der Tabelle im Datenblatt steht ja was man eintragen muss drin und 
Kai hat oben auch geschrieben wie CSEL3..0 sein müssen. CKDIV8 ist aber 
nicht in den CSEL3...0 drin, sondern ein extra bit.

Fuse Low Byte      Bit No       Description         Default Value
CKDIV8(4)             7         Divide clock by 8      0 (programmed)
CKOUT(3)              6         Clock output           1 (unprogrammed)
SUT1                  5         Select start-up time   1 (unprogrammed)
SUT0                  4         Select start-up time   0 (programmed)
CKSEL3                3         Select Clock source    0 (programmed)
CKSEL2                2         Select Clock source    0 (programmed)
CKSEL1                1         Select Clock source    1 (unprogrammed)
CKSEL0                0         Select Clock source    0 (programmed)


so nun ließt du die Fuse bits ein:

da sollte 62 stehen: also 0110010

nun CKDIV8 rausnehmen: 11100010  = E2


Kannst du aber auch gern selber nachrechnen oder im AVR Studio 
anschauen, geht auch ohne Programmer.

oder hier
http://palmavr.sourceforge.net/cgi-bin/fc.cgi

allerdings sind da die Fusebits nicht so wie im Datenblatt, die muss man 
erst selber einstellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren