Forum: Mikrocontroller und Digitale Elektronik Calibration Bytes bei ATmegas


von Bernd (Gast)


Lesenswert?

Hi,

wer kennt sich mit den Calibration Bytes aus?

Es gibt offensichtlich zwei verschiedene ATmega Reihen. Die eine
Verfügt nur über ein Calibration Byte im Signature High Byte 0. Die
andere hat 4 Calibration Bytes, je eins für 1,2,4,8 MHz.

Wohin schreibt das STK500 diese Bytes? Gibt es so etwas wie eine Norm
unter Programmiergeräten?

Hier ein Auszug aus der ATmega64 Docu:
Page 41 2490I–AVR–11/04 "Writing the calibration byte to this address
will trim the internal Oscillator to remove process variations from the
Oscillator frequency. During Reset, the 1 MHz calibration value which is
located in the signature row high byte (address 0x00) is automatically
loaded into the OSCCAL Register. If the internal RC is used at other
frequencies, the calibration values must be loaded manually. This can
be done by first reading the signature row by
a programmer, and then store the calibration values in the Flash or
EEPROM. Then the value can be read by software and loaded into the
OSCCAL Register."

Nicht gerade sehr aussagekäftig, oder?

von Tobi (Gast)


Lesenswert?

du kannst bei stk500 doch genau einstellen wo in welchen speicher er das
schreiben soll. schau dir das bedien modul nochmal genau an

von ...HanneS... (Gast)


Lesenswert?

Hi Bernd...

Bei den AVRs, die im Auslieferungszustand vom Userprogramm kalibriert
werden müssen (Tiny12, Tiny15) schreibt ATMEL das "Calibrationsbyte"
zusätzlich in das H-Byte und L-Byte der letzten Speicherzelle im
Flash.

Dies macht meine Bratsoft bei jedem Löschen, falls Kalibration
erforderlich ist (also Kalibrationsversion 1.x und 3.x außer 1MHz) und
wenn das Programm die letzte Flash-Zelle nicht belegt.

Die letzte Flash-Zelle ist eine gute Wahl. Das User-Programm kann diese
in der Reset-Routine einlesen, auf Gültigkeit prüfen (<>$FF) und bei
Gültigkeit ins osccal schreiben.

Schau mal in die AVR053, da sind die Kalibrationsversionen
aufgelistet.

...HanneS...

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.