Armins AVR-Buch - Takterzeugung_Fusebits

Zuletzt geändert am 09.12.2023, 17:23:38

Takterzeugung_Fusebits


(armin77, 01.01.2013, 19:58:50)

Ein ATMEGA 8, wie auch viele andere AVR werden mit einem
voreingestelltem 1 MHZ RC Oszillator geliefert.
Genaueres siehe entsprechendes Datenblatt des verwendeten AVR.

Braucht man eine schnelle oder genaue Taktfrequenz braucht man einen Quarz
So wird ein Quarz an den AVR angeschlossen:

Bild Quarz.jpg

Jetzt müssen wir dies in den Fuses einstellen sonst läuft der AVR mit dem 1 MHZ RC Oszillator weiter.


Fusebiteinstellung über das AVR Studio 4



Hier ein Beispiel mit dem AVR Studio 4.
Wir schließen den Programmer an den AVR an und starten das AVR Studio.
Wir öffnen die Fuses Einstellungen
mit Tools > Program AVR>Auto connect.
Wir gehen auf den Reiter Fuses und sehen folgendes Bild:

Bild Fuse2.png

Hier kann die Taktfrequenz mit dem internen Oszillator auf 1,2,4 oder 8MHZ eingestellt werden.

Brauchen wir eine schnellere oder genauere Taktfrequenz so müssen wir einen Quarz anschließen und
es in den Fuses einstellen:

Bild Fuse1.png


Jetzt noch die neue Takteinstellung in den AVR schreiben:

Bild Fuse3.png

Vorsicht vor dem Kästchen RSTDISBL.
Damit wird der Reset Eingang zum normalen Port und der AVR kann nicht mehr mit einem ISP Programmer
programmiert werden.

Für das Kästchen SPIEN gilt das Gleiche. Es schaltet die SPI Schnittstelle ab und man hat sich ausgesperrt.

Im allgemeinen gilt, lieber 10 Mal überlegen was man ändert bevor der AVR verfust und damit unbrauchbar ist.



Die neue Taktfrequenz muß in den Bascom Programmen natürlich angegeben werden.

$regfile = "m8def.dat"
$Crystal=1000000 <-- Neue Frequenz angeben
$hwstack=40
$swstack=16
$framesize=32


Fusebit mit Bascom einstellen



Man kann die Fusebit auch über Bascom direkt einstellen.

Den AVR mit dem Programmer an den PC anschließen und auf den Pfeil neben dem "grünen Sockel" klicken.
Manuell Programmieren anwählen.

Bild fuse200.jpg

Jetzt sehen wird die Werkseinstellungen (Fusebits) auf einen Blick.
Oben der verwendete AVR, die Größe des Programmspeicher und die Größe des internen EEPROM.
Vorsicht vor dem Fusebit I. Hier wird der SPI ausgeschaltet und der AVR kann nicht mehr mit einem ISP Programmer
programmiert werden.
Mit dem Fusebit M kann man den Reset-Pin zum normalen Port umschalten. Der AVR kann aber dann auch nicht
mehr mit einem ISP Programmer programmiert werden. Aber man hat einen Port gewonnen.


Bild fuse204.jpg



Hier lassen sich die Taktfrequenzen von 1Mhz bis 8Mhz mit dem internen RC Oszillator auswählen und mit dem Knopf "Write FS"
programmieren.



Bild Fuse201.jpg




Schließen wir einen Quarz an müssen wir in den Fusebit "Ext. Crystal/Resonator" wählen und mit Write FS den AVR programmieren.


Bild Quarz.jpg



Bild fuse202.jpg




Besonderheit bei den Attiny Fuse Bit



Bei den kleinen Attiny 25/45/85/13 etc. gibt es eine Besonderheit
Dort kann zusätzlich zu der Taktfrequenz noch ein Vorteiler durch 8 ein und ausgeschaltet werden.
Bei ausgewählter Taktfrequenz von 8 Mhz und eingeschaltetem Vorteiler ergibt dies eine Taktfrequenz von 1 Mhz.
Diese 1Mhz muß man in Bascom angeben.
   

Bild fuse210.jpg



Besonderheit bei den größeren ATmega mit JTAG Schnittstelle (ATMega 16 aufwärts)



Auch bei den größeren ATMega`s gibt es eine Besonderheit. Diese verfügen über eine JTAG Schnittstelle.
Wenn man sich wundert das Portc.2 und Portc.5 nicht so funktionieren wie erwartet, liegt das an der
werkseitig aktivierten JTAG Schnittstelle.
Diese kann in den Fusebit gefahrlos deaktiviert werden.


Bild fuse320.jpg