www.mikrocontroller.net

Forum: Compiler & IDEs Programmspeicher


Autor: Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank!
64 KB Speicher ist schon eine ganze Menge ;)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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. ;-)

Autor: t.b.d. (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.