Die Appnote sollte es ganz gut zusammenfassen.
Falls ihr jemals in die Verlegenheit kommt, den Watchdog zu benutzen,
das hier ist geringfügig untertrieben:
1 | If the operation voltage is 5V and the WDTON fuse is left unprogrammed, the WDT
|
2 | will behave similar on both devices. [...]
|
Den neuen Watchdog kannst du nämlich erst dann wieder deaktivieren,
wenn du das WDRF-Bit in MCUCSR zuvor gelöscht hast. Ansonsten, hat
der Watchdog einmal zugeschlagen, dann bekommst du künftig aller 15 ms
einen Reset, wenn du dich nicht darum kümmerst, WDRF zu löschen und
den Watchdog danach außer Betrieb zu nehmen. Das hat uns damals beim
Übergang vom ATmega128 auf den ATmega1281 mal einen halben Tag Suche
gekostet. (Ohne diese Firmware-Aktion kannst du dich auf den Kopf
stellen und mit den Beinen wackeln, auch ein chip erase ändert nichts,
denn die *RF-Bits in MCUCSR überleben jeglichen Reset. Lediglich
ein power cycle würde noch helfen.)
Angenehm ist der bessere RC-Oszillator. RS-232 mit RC-Oszillator geht
beim ATmega1281 selbst dann in der Regel noch, wenn man ihn statt mit
5 V (für die die Kalibrierung gemacht worden ist) nur mit 3 V betreibt.
Zu beachten ist der gänzlich andere RC-Oszillator-Aufbau: es gibt nur
noch einen (mit nominal 8 MHz) statt derer vier, dafür einen clock
prescaler, der initial auf 1:8 steht. Den kann man per Fuse auf 1:1
setzen, aber man kann ihn auch in der Firmware umsetzen.
Beachte den eingeschränkten Taktbereich des ATmega256x (im Vergleich
zu ATmega128x) beim Betrieb unterhalb 2,7 V. (War für den ATmega128
gar nicht spezifiziert, sollte insofern kein Problem sein.)