Hallo, mein ATmega128 ist irgendwie ganz schön voll geworden ... sicherlich auch durch schlechtes Programmieren, aber das sei mal dahingestellt. Da ich perspektivisch sowieso bisschen mehr Platz für Programmcode brauche, hab ich mir gedacht auf den ATmega2561 zu wechseln. Ich hab da auch eine feine App-Note gefunden ... http://www.atmel.com/dyn/resources/prod_documents/doc2581.pdf Gibt es außer den Hinweisen in der Note noch weitere Sachen zu beachten? Wenn ich den Satz ... "ATmega128 and ATmega1281/2561 are designed to be a pin and functionality compatible sub family." ... für bare Münze nehme, dann dürfte dem ja nichts im Wege stehen, oder?
In one project we have migrated from 'M128 to 'M2561 with no hardware issues whatsoever. We still use the same board for two versions of the product. Of course the firmware had to be modified.
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.)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.