Forum: Mikrocontroller und Digitale Elektronik Kompatibilität zwischen ATmega ' s


von Amin L. (amin_l)


Lesenswert?

Hallo,

Ich bin gerade dabei eine Leiterplatte für mein aktuelles Projekt zu 
entwerfen. Testweise habe ich meine Schaltung auf dem Steckbrett mit 
einem ATmega328P aufgebaut. Der soll mit der I2C Libary von Peter Fleury 
einen PWM-Generator steuern.
Um mir später Erweiterungen offen zu lassen, möchte ich die auf der 
Leiterplatte einen größeren µC verweden (vorraussichtlich ATmega128).

Meine Frage gibt es eine Sache die ich beim Ersetzen (abgesehen von der 
Pinbelegung) beachten muss?

Die Register für das TWI habe ich in den Datenblättern miteinander 
verglichen. Die müssten soweit in Name und Adresse kompatibel sein, 
sodass ich bei der Verwendung der Bibiliothek und dem gleichen Code 
eigentlich keine Probleme bekommen sollte.

Stimmt das so oder habe ich hier einen groben Denkfehler der dann nach 
der Bestückung zum bösen Erwachen führt?


Danke schonmal im vorraus

Gruß

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Der ATmega128 ist veraltet.
Nimm je nach benötigter Pinanzahl ATmega1284, 1281 oder 1280.

Achtung Fallgrube!
Die 64-Pinner haben eine von allen anderen AVRs abweichende Belegung der 
ISP-Schnittstelle.

von Amin L. (amin_l)


Lesenswert?

Hallo,

Danke erstmal für deine schnelle Antwort.

Könnte mein Code aber prinzipiell auf dem 1284 laufen?
Oder müsste ich da etwas verändern?

Das mit dem SPI hätte doch nur Auswirkungen auf mein Layout oder 
entstehen dadurch weitere Probleme?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

I²C sollte kompatibel sein.  Bei anderen Dingen ist gerade der alte
ATmega128 deutlich anders, die anderen genannten AVRs sind da ähnlicher
zu deinem ATmega328P.  Das betrifft Dinge wie den Taktgenerator, den
Watchdog, welcher Timer für einen externen 32-kHz-Quarz benutzt wird
etc. pp.

von Amin L. (amin_l)


Lesenswert?

Jörg W. schrieb:
> I²C sollte kompatibel sein.

Wie gesagt die Register sind von Name und Adresse her gleich.
Andere Sachen beeinflussen das TWI doch gar nicht oder?

Gibt es denn noch bessere Alternativen als den 1281/1284?
Eignet sich ein 2560 eher?
Ich hatte eigentlich vor den Mikrocontroller mit einem 16Mhz Quarz zu 
betreiben. Dafür ist der 2560 ja maximal ausgelegt.

Gruß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Amin L. schrieb:

> Andere Sachen beeinflussen das TWI doch gar nicht oder?

Der Takt natürlich, aber den wirst du ja bei beiden gleich einrichten
wollen.

> Gibt es denn noch bessere Alternativen als den 1281/1284?
> Eignet sich ein 2560 eher?

Wenn du viel Flash und viele Pins brauchst, vielleicht.
Entwicklungsmäßig ist dieser der älteste seiner Serie (zu der noch
um 1281/1280/640 gehören).  Der ATmega1284 ist noch etwas neuer,
und glänzt insbesondere mit vergleichsweise viel SRAM.

> Ich hatte eigentlich vor den Mikrocontroller mit einem 16Mhz Quarz zu
> betreiben.

Alle klassischen AVRs können bei 5 V (genauer: >= 4,5 V) mindestens
16 MHz, einige können auch 20 MHz.  Bei einigen Typen muss man sehen,
dass man nicht die auf "V" oder "L" endenden Versionen benutzt; diese
sind für geringere Betriebsspannungen ausgelegt und haben eine geringere
maximale Taktfrequenz.

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.