www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eeprom / speichererweiterung


Autor: Benrd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

jetzt hat mein hex-file leider die größe des internen flash meines 4433 
überschritten. (~4 K)
Gibt es eine möglichkeit dieses hex-file in ein externes eeprom(I2c)oder 
dataflash abzulegen und den code dann im 4433 ausführen zu lassen. Ich 
hatte mir gedacht, das man zunächst eine bootloader schreibt, der dann 
die ansteuerung an das eeprom erledigt. Aber wie kann ich den im eeprom 
abgelegten code dann ausführen ?
Ist das ganze überhauüt machbar ?

Gruß Bernd

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen der Architektur der AVR Familie nicht möglich.
Verwende einfach die nächst grössere Variante mit mehr
Flash Programmspeicher 8535 (8K) oder MEGA16 bzw. MEGA163 (16K) sind 
auch abwärts pin kompatibel.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das den bei irgend welchen der größeren typen möglich )
z.B die megas .

Das ich an meinem Programm noch am arbeiten bin und nicht so genau weis 
wie groß es wird tue ich mich natürlich schwer bei grösse des flash 
speicher. darum eben auch die frage nach der erweiterung. Sollte ich 
viellecht die prozessorfamile wechseln  ?
wenn ja auf bei welcher geht denn so was (speichererweiterung) ?

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im 40 Pin DIP ist bei 32K Flash Schluss ATMEGA32 bzw. 323. Im TQFP 
Gehäuse gehts bis 128K Flash, für einen
Microcontroller auch bei umfangreichen Tabellen mit Sicherheit mehr als 
ausreichend.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim AVR kannst Du nur konstante Daten in einem externen Flash 
speichern, aber keine Programme.

Es hängt also davon ab, ob Dein Programm viele Daten (z.B. Tabellen) 
enthällt.

Externen Programmspeicher kannst Du z.B. beim 8051 anschließen. Da sind 
standardmäßig bis zu 64kB möglich, was etwa einem AVR mit 80kB 
entspricht, da Programme auf dem 8051 kleiner sind als auf dem AVR, 
besonders, wenn man gut optimierende C-Compiler benutzt, wie den Keil.

Falls das nicht reicht, gibt es 8051-Derivate, die bis zum 4MB 
adressieren können. Die werden aber nur von dem neuesten Keil-Compiler 
unterstützt.

Dann gibt es die 251- bzw. XA-Familie, die auch 8051-Code ausführen 
können, aber zusätzliche 16-Bit-Instruktionen haben.

Die 8051 im DIP-40 Gehäuse haben bis zu 64kB internen Flash (z.B. 
T89C51RD2), der direkt vom PC über den COM-Port geladen werden kann.


Peter

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, 128k sollten LEICHT reichen, so aufwendig wird dein Programm zu 
99.9% nicht werden... 8051 ist ganz nett, aber sicher nicht ganz so 
komfortabel wie AVR... Und wenns wirklich ein Riesenprogramm werden 
sollte, der C16x kann 16MB adressieren (allerdings ist das eine von 
Neumann Architektur!)

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.