Titelbild Mikrocontroller

4.6. OSCCAL – Oszillator Calibration Register

OSCCAL des ATmega8

OSCCAL des ATmega8

Indem das Kalibrierungs-Byte in das Register geschrieben wird, wird die Frequenz des internen Oszillators justiert, um dadurch die durch die Herstellung bedingt Ungenauigkeiten auszugleichen. Während eines Resets wird der Kalibrierungswert für die Frequenz von 1MHz, der im High-Byte der Signatur-Reihe (Adresse 00) hinterlegt ist, automatisch geladen und in das OSCCAL-Register geschrieben. Auch die Kalibrierungswerte für die Frequenzen von 2, 4, und 8 MHz sind in der Signaturreihe abgelegt. Soll der interne RC-Oszillator mit einer dieser Frequenz betrieben werden, so muss das Kalibrierungsbyte manuell geladen werden. Dies kann dadurch geschehen, indem man zunächst das Kalibrierungsbyte mit dem AVR-Studio ausliest und den Wert im Programm- oder EEPROM-Speicher hinterlegt. Die Software muss dann diesen Wert abholen und in das OSCCAL-Register schreiben.

Wenn das OSCCAL auf 00h steht, ist die niedrigste Frequenz ausgewählt. Werte größer als Null erhöhen die Frequenz des internen Oszillators, bei FFh ist die maximale Frequenz erreicht. Wenn die Applikationssoftware das EEPROM oder den Flash-Speicher beschreibt, sollte die eingestellte Frequenz nicht mehr als 10% über ihrem nominalen Wert liegen. Andernfalls können Fehler beim Schreiben des EEPROM oder Flash auftreten. Man sollte beachten, dass der Oszillator nur für das Kalibrieren auf 1, 2, 4 oder 8 MHz vorgesehen ist. Das Justieren anderer Werte ist nicht garantiert, so wie in nachfolgender Tabelle angegeben.

OSCCAL Wert Min Frequenz in Prozent der nominalen Frequenz (%) Max Frequenz in Prozent der nominalen Frequenz (%)
00h 50 100
7Fh 75 150
FFh 100 200
Impressum