Hallo, soweit ich aus den beiden Datenblätter entnommen habe sind die beiden Mikrocontroller ausgangskompatibel. Hat jemand Erfahrungen oder Probleme beim Austausch eines ATmega64 gegen einen 128er? Grüße Hans
Der Mega128 ist älter als der Mega64 und hat einige Funktionen nicht, die der Mega64 hat. Wenn Du einen Mega64 hast und einen pinkompatiblen mit mehr Speicher brauchst, dann nimm lieber einen Mega1281. Der ist wenigstens up to date.
>Der Mega128 ist älter als der Mega64 und hat einige Funktionen nicht, >die der Mega64 hat. Wenn Du einen Mega64 hast und einen pinkompatiblen >mit mehr Speicher brauchst, dann nimm lieber einen Mega1281. Der ist >wenigstens up to date. diese aussage halte ich für falsch. der mega64 und der mega128 sind aus der gleichen familie und sicher kompatibel, während der mega1281 nicht einmal zum mega128 kompatibel ist (zumindest was die belegung der register und ein paar andere details betrifft). gruss gerhard
> diese aussage halte ich für falsch.
Dann schau doch einfach mal in die Datenblätter! Der Mega64 ist ein
Derivat des Mega103 und ist deutlich später als der Mega128
herausgekommen. Genau deshalb ist ja auch der 1281 dem 64 ähnlicher als
dem 128.
Der OP sucht nach meinem Verständnis einen Ersatz für seinen Mega64, der
pinkompatibel ist. Und da ist es unsinnig, einen "veralteten"
Vorgängertypen einzusetzen, wenn es aktuelle µCs gibt, die nicht nur
pin- sondern auch weitgehend funktionskompatibel sind.
Hallo, danke für die schnellen Antworten. Werd mir den vorgeschlagenen 1281 ansehen. Wie johnny.m schon richtig schreibt verwende ich momentan den ATmega64 und muss wegen Mangel an Speicher auf 128kB aufrüsten. Die Platine mit der externen Beschaltung kann nicht geändert werden. Grüße Hans
@johnny: 1. der atmega128 war der ersatz für en atmega103 (sonst gäbe es ja auch nicht die entspr. fuses im atmega128 oder?). 2. guckst du mal unter http://www.avrfreaks.net/index.php?module=Freaks%20Devices&func=devCompare und clickst auf den atmega64 und liest die details. da steht dann folgender text: "The ATmega64 has the same feature set as the ATmega128. The main difference is half memory size for the non-volatile memories. The SRAM size is the same as for the ATmega128." ich hoffe damit ist alles klar! gruss gerhard
> ...The main difference...
Eben nur der Hauptunterschied! Wenn man sich die Datenblätter genauer
ansieht, stellt man aber fest, dass es noch ein paar weitere
Unterschiede gibt. Um nur ein Beispiel zu nennen: Der ATMega128 hat
keine ADC-Auto-Trigger-Möglichkeit, der Mega64 hat das jedoch. Du kannst
mir das ruhig glauben: Der Mega128 ist älter als der Mega64. Und ich
gehe davon aus, dass aufgrund der Tatsache, dass es mittlerweile den
(zum Mega128 pinkompatiblen) Mega1281 gibt, der Mega128 demnächst vom
Markt verschwinden wird.
@ Jonny.m Ich halte deine Aussage für sehr gewagt und zudem an der Frage vorbei. Es wurde explizit nach Problemem mit der Austaschbarkeit zwischen M64 und M128 gefagt. So wie ich das sehe sind der M128 und der M64 BEIDE aus dem M103 hervorgegangen. BEIDE haben einen M103 Kompatiblitätsmodus. Der M1281 hat nichts dergleichen. Weiterhin unterscheiden sich die IO-Register von und M64 und M128 nur an zwei Stellen. 1. dem EEPROM Address Register High (EEARH=$1F ($3F)) dies ist beim M128 um ein Bit breiter (weil der M128 mer EEPROM hat) 2. dem ADC Control and Status Register B(ADCSRB=(0x8E)) dies ist beim M128 nicht vorhanden und steuert beim M64 die ADC Auto Trigger Quellen. Wenn ich mir die IO-Register des M1281 ansehe dann kann ich keinerlei ähnlichkeiten zu den "alten Megas" erkennen. Vielmehr hat der M1281 die "neue Mega" Registeraufteilung, und ist daher von der Programmstruktur eher mit dem M48/88/168 zu vergleichen. Die Frage war ja ob man M64 Programme auf M128 (und umgekehrt) portieren kann. Ich würde sagen, mit gewissen Einschränkungen sollte es keine Probleme geben. M128 Programme auf M1281 wird ohne Nacharbeit (Sprich neuschreiben des Programms) kaum gehen. Selbst ein einfaches "Hello World" in Assembler auf die serielle Schnittstelle wird warscheinlich zum Crash führen. Die UART Ansteuerung hat sich sehr geändert, und wurde in den Datenblättern noch nicht korrigiert. Zu Erfahrungen kann ich nur sagen das ich meine M64 Programme auf einem M128 Emulator teste, und ich bisher keine Probleme hatte. cu Hauke
@Hauke: OK, wenn man die Code-Kompatibilität in Augenschein nimmt hast Du sicher recht. Ohne Ändern bestimmter I/O-Register-Zugriffe gehts da nicht, auch wenn das in C nicht so ein großes Problem wie in Assembler sein dürfte (und ich gehe nicht davon aus, dass der OP 64K Flash in Assembler vollgeschrieben hat). Wenn es um Code-Portabilität ohne umstricken geht, dann ist der Mega128 in der Tat immer noch die einfachste Variante.
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.