Forum: Compiler & IDEs Programmspeicher


von Tester (Gast)


Lesenswert?

Hallo,

eine kurze Frage... ich benutze zur Zeit Atmega16. Leider reicht der 
Programmspeicher für den Code nicht aus. Kann ich einfach den Atmega16 
mit dem Atmega32 bzw. Atmega644 ersetzen? Sind diese Mikrocontroller 
sonst in der Bauweise gleich?

Muss ich den Code ändern, oder sind sie alle kompatibel?


DANKE!

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


Lesenswert?

Tester wrote:

> eine kurze Frage... ich benutze zur Zeit Atmega16. Leider reicht der
> Programmspeicher für den Code nicht aus. Kann ich einfach den Atmega16
> mit dem Atmega32 bzw. Atmega644 ersetzen? Sind diese Mikrocontroller
> sonst in der Bauweise gleich?

Der ATmega32 sollte in der Tat bis auf den größeren Speicher dem
ATmega16 ziemlich gleich sein.  Sie entstammen einer Familie und
sind ungefähr gleich alt.

ATmega324P, ATmega644 und ATmega644P (sowie der hier nicht zur Debatte
stehende ATmega164P) sind dagegen neuere Weiterentwicklungen, die zu
ATmega16/32 lediglich pinkompatibel sind, aber ansonsten viele neue
Dinge enthalten (u. a. bis auf den ATmega644 zwei USARTs statt nur
einer).  Für den Übergang von ATmega16/32 auf die neueren gibt es
Atmel-typische application notes, die die Details beschreiben.

> Muss ich den Code ändern, oder sind sie alle kompatibel?

Zumindest neu compilieren, selbst beim ATmega32.  Doppelter Speicher
bedeutet ja auch, dass z. B. der RAM größer ist und damit der Stack
auf höheren Adressen beginnen kann.

Beim Übergang auf die neue Familie dürften weitere Änderungen von
Nöten sein, siehe Appnote.

von OliverSo (Gast)


Lesenswert?

Eigentlich schreibt atmel ja selber:

>ATmega644 is device pin and functionally compatible to ATmega32

Es haben sich allerdings ein paar Registernamen nebst zugehörigen 
Bitbezeichnungen geändert (z.B. wird aus TIMSK TIMSK0), aber das wird 
dir der Compiler schon mitteilen.

Die Appnote dazu gibts hier:
http://www.atmel.fi/dyn/resources/prod_documents/doc8001.pdf

Oliver

von Tester (Gast)


Lesenswert?

Vielen Dank!
64 KB Speicher ist schon eine ganze Menge ;)

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


Lesenswert?

Bekommste demnächst auch mit 128 KiB ROM und 16 KiB SRAM -- ATmega1284P.
Bislang noch kein Datenblatt auf der Atmel-Seite, aber die Details
kann man sich bereits im vom AVR Studio freiwillig installierten
ATmega1284P.xml ansehen. ;-)

von t.b.d. (Gast)


Lesenswert?

Auch ganz witzig: ATmega328 -> pinkompatibel zum mega8 ansonsten ein 
atmega48/88/168 mit eben 32kb flash. leider noch nicht verfügbar :(

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.