Forum: Mikrocontroller und Digitale Elektronik ATmega64 vs. ATmega128


von Hans (Gast)


Lesenswert?

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

von johnny.m (Gast)


Lesenswert?

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.

von gerhard (Gast)


Lesenswert?

>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

von johnny.m (Gast)


Lesenswert?

> 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.

von Hans (Gast)


Lesenswert?

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

von gerhard (Gast)


Lesenswert?

@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

von johnny.m (Gast)


Lesenswert?

> ...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.

von Hauke S. (hauke)


Lesenswert?

@ 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


von johnny.m (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.