Fuses ATmega8

From ConeleK Electronic Wiki
Jump to: navigation, search

Einleitung

Inhalt

Dieser Artikel befasst sich mit der Einstellung der sogenannten Fuses oder auch Fuse-Bits für den Microcontroller ATmega8 wie er im Mikrocontroller Modul ATmega8 MC-AVR8 verwendet wird. Fuse-Bits dienen dazu, gewisse Grundeinstellungen am Microcontroller vorzunehmen. Dazu gehört beispielsweise die Auswahl des Taktes oder auch des Taktgebers.


Inhalt

Übersicht

Inhalt

Der Microconstroller ATmega8 bietet 16 verschiedene Fuse-Bits (also 2 Fuse-Bytes) an, deren Bedeutung in der folgenden Tabelle kurz angedeutet ist. Es ist ratsam, für erste Versuche die Standardwerte (siehe #Standardwerte (Default)) zu nutzen. Weitere Informationen und eine detailierte Erklärung der einzelnen Fuses erhalten Sie im Datenblatt des ATmega8.

High Byte

Inhalt
Name Bitindex Bedeutung 0 (programmed) Bedeutung 1 (unprogrammed) Default
RSTDISBL 7 PC6 ist RESET-Pin PC6 ist I/O-Pin 1
WDTON 6 WDT stets an WDT aktiviert durch WDTCR 1
SPIEN 5 Serielle Programmierung und Datendownload deaktivieren ~ aktivieren 0
CHKOPT 4 Eine Oszillator-Option 1
EESAVE 3 EEPROM-Inhalt beim Löschen des Chips beibehalten EEPROM-Inhalt beim Löschen des Chips ebenfalls löschen 1
BOOTSZ1 2 Konfiguration der Bootsektorgröße 0
BOOTSZ2 1 Konfiguration der Bootsektorgröße 0
BOOTRST 0 Reset Vector auswählen 1

Low Byte

Inhalt
Name Bitindex Bedeutung 0 (programmed) Bedeutung 1 (unprogrammed) Default
BODLEVEL 7 Konfiguration der Brown Out-Erkennung 1
BODON 6 Brown Out-Erkennung deaktiviert ~ aktiviert 1
SUT1 5 Startzeit-Verhalten konfigurieren 0
SUT0 4 Startzeit-Verhalten konfigurieren 1
CKSEL3 3 Taktgeber konfigurieren 0
CKSEL2 2 Taktgeber konfigurieren 0
CKSEL1 1 Taktgeber konfigurieren 0
CKSEL0 0 Taktgeber konfigurieren 1

Standardwerte (Default)

Inhalt

Aus den obigen Tabellen ergeben sich folgende Werte für die Fuse-Bytes:

  • High-Byte: 0xD9 = 0b1101 1001
  • Low-Byte: 0xE1 = 0b1110 0001

Anmerkung Verwenden Sie andere Werte für die Fuses nur, wenn Sie ganz genau wissen, was Sie tun! Es ist möglich, den Microcontroller mittels falscher Fusebelegung in einen Zustand zu bringen, in dem er von einigen Programmiergeräten nicht mehr angesprochen werden kann.

Einstellung der Fuse-Bits

Inhalt

avrdude

Inhalt

Um die Fuse-Bytes zu setzen existieren beim avrdude folgende Kommandozeilenoptionen (Hexadezimale Werte wurden durch ein Fragezeichen '?' ersetzt):

  • High-Byte:
    -Uhfuse:w:0x??:m
    (Standardwert: -Uhfuse:w:0xd9:m)
  • Low-Byte:
    -Ulfuse:w:0x??:m
    (Standardwert: -Ulfuse:w:0xe1:m)

Mit dem folgenden Befehl setzen Sie die Fuse-Bits auf den Standardwert (Programmer: AVR ISP mkII [6]):

 avrdude -c avrisp2 -p m8 -P usb -Uhfuse:w:0xd9:m -Ulfuse:w:0xe1:m

AVR Eclipse

Inhalt
  • Projekt auswählen (Project Explorer)
  • Rechtsklick -> Eigenschaften/Properties -> AVR -> AVRDude
  • Reiter "Fuses"
  • In das Feld neben "direct hex values" können obige Werte direkt eingetragen werden. Es existiert auch ein Editor, in dem man komfortable anhaken kann, welche Funktionen aktiviert werden sollen (Icons neben den Eingabefeldern). Wir empfehlen aber wegen der geringen Wahrscheinlichkeit von Flüchtigkeitsfehlern für die ersten Versuche, dass Sie die Standardwerte als Hex-Wert von oben übernehmen.

AVR Studio

Inhalt

TODO

Bezugsquellen

Inhalt
  • Mikrocontroller Modul ATmega8 MC-AVR8 [7]
  • AVR ISP MKII In-System Programmer für Atmel AVR 8bit mit ISP-Schnittstelle [8]
  • Steckplatinen [9]
    • Steckplatine 640 Kontakte Profi Line GL10 [10]
    • Steckplatine 100 Kontakte zur Spannungsversorgung GL5D [11]

Siehe auch

Inhalt

Links extern

Inhalt
  • Kapitel "Memory-Management" -> "Fuse Bits" (Seite 216) ATmega8 Datenblatts [12]
  • Datenblatt des ATmega8 [13]

© R.Kluge Änderungen und Irrtümer vorbehalten