www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash beim AT90S8535 erweitern


Autor: Oli K. (waldmeister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen.
Ich benutze einen AT90S8535 mit 8K Byte internen Flash. Da mein Programm 
aber zuu groß wird suche ich nnach einer Flash-Erweiterung, die 
mindestens noch mal 8K - 32K Byte groß sein sollte! Wäre klasse, wenn 
ihr mir da helfen würdet, da ich das noch nie gemacht habe! Muss das 
ganze dann über SPI-Schnittstelle laufen? Wie viele Pins brauche ich 
ungefähr noch, da die I/O so gut wie ausgelastet sind!
Würde ja genr dem ATMega 16 genutzen, kann ich allerdings nicht machen, 
somit fällt die Lösung weg.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So direkt erweitern geht erstmal nicht, denn dazu müsste man Adress und 
Datenbuss nach aussen führen, so wie beim 8515. Also bleibt nur ein 
externen FLASH mit I2C oder SPI Schnittstelle. ABER!!! Der Zugriff auf 
diese Daten ist dann nicht so einfach wie im 8535. Und du kannst nur 
Daten speichern, keinen Programmcode.
Warum kannst du nicht den MEGA16 benutzen?

MfG
Falk

Autor: Oli K. (waldmeister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also sehe ich das richtig, dass ich externen Flash nur über die 
SPI-Schnittstelle benutzen kann, da ich keine I²c SChnittstelle habe! 
Zudem sollte ich ungedingt Porgrammcode drauf speichern können, sonst 
hilft mir die ganze Erweiterung nichts. Was für Erweiterungsgrößen gibt 
es denn in diesem Zusammenhang?
Warum keinen Mega, da meine Firma erst mal die "alten" Bestände an Chips 
aufbrauchen möchte!

Autor: irgendein Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Zudem sollte ich ungedingt Porgrammcode drauf speichern können,

Den kannst du darauf gerne speichern - er wird aber nicht ausgeführt.
Nimm einen grösseren Controller oder optimiere dein Programm.
Wenn du in C programmierst, sollte es kein Problem sein, einen grösseren 
Controller auszuwählen (Portabilität). Assembler dürfte etwas 
schwieriger werden. Allerdings habe ich noch nie gehört, dass jemand in 
Assembler in einen AVR 4KB programmiert hat.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmcode im externem FLASH ist praktisch unmöglich. Es sei denn, man 
benutzt die Self prgramming Features. Hat der 8535 AFAIK aber nicht, 
ausserdem ist es langsam und macht das Programm kompliziert.
Wenn du keine I2C Schnittstelle hast, kann man das Ganze auch in 
Software erledigen.

MfG
Falk

P.S. Ich fürchte, eure alten Chips müssen anderweitig sinnvoll 
eingesetzt werden.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ irgendein Rahul

> Allerdings habe ich noch nie gehört, dass jemand in
> Assembler in einen AVR 4KB programmiert hat.

Was noch lange nicht heisst, dass es sowas nicht gibt. Ich hab vor 
Jahren mal ne Schiedsricheranlage gebaut, mit Zeitmessung, Torzähler 
etc.
Waren so ca. 80kB Quelltext, ca. 7kB FLASH (wobei ca. 700 Byte 
String-definitionen). Alles in Assembler.

Ja, heute würde ich das sicher eher in C schreiben, hatte ich damals 
aber nicht die Zeit und Lust mich in C aufm AVR einzuarbeiten.

MfG
Falk

Autor: irgendein Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was noch lange nicht heisst, dass es sowas nicht gibt.

Genau das sollte es heissen.
"Historische" Rechner wurden vermutlich auch in Assembler 
programmiert...

Autor: Oli K. (waldmeister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann muss ich das anders machen und Teile vom Programm auslagern, 
die viel Speicher verbrauchen, wie Dislpay etc. Das sollte ja wenigstens 
möglich sein, oder?
Wo bekomme ich am besten solche Flash-Speicher?

Autor: irgendein Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Teile vom Programm auslagern
>Das sollte ja wenigstens möglich sein, oder?

Nein. Du kannst höchstens Konstanten, die im PROGMEM liegen (LCD-Texte 
etc.) extern in einem externen Speicher unterbringen und dann in den 
RAM-Speicher laden, wenn sie benötigt werden.

Beim AVR kann man keinen Programmcode auslagern!
http://de.wikipedia.org/wiki/Atmel_AVR

Man beachte die Harvard-Achritektur.

Autor: Oli K. (waldmeister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke mal für die Sachen. Nun dann werde ich das wohl etwas ändern 
und ein externes EEprom einbinden. Dort kann ich dann ja fixe Variablen 
und feste Stringwerte speichern. Worauf muss ich denn beim Layout und in 
der Inbetreibnahme achten? Das ganze wird bei mir über SPI laufen 
müssen.
Im AVR-GCC Tutorial wird die ansteuerung fürs EEprom geschrieben. Wenn 
dies aber extra ist, muss ich dann extern neu definieren?? Wie habt ihr 
solche Varianten gelöst?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und ein externes EEprom einbinden. Dort kann ich dann ja fixe Variablen

Das sind dann aber eher Konstanten ;-)

> und feste Stringwerte speichern. Worauf muss ich denn beim Layout und in

Genau. So gehts.

> der Inbetreibnahme achten? Das ganze wird bei mir über SPI laufen

Wenn die Leitung des SPI länger als 20..30 cm wird, sollte man eine 
Serienterminierung für SCK spendieren. Also einen Längswiderstand von 
ca. 33 Ohm, nah am Controller. Ich würde ihn immer einmachen, kostet 
praktisch nix und man weiss ja nie, was schlechte Leitungsführung mit so 
einem Signal manchmal macht. Der Rest ist relativ unkritisch.

MfG
Falk

Autor: Oli K. (waldmeister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen Zusammen!
Ich habe noch mal kurz ne Frage des EEProms.Kann ich dort wenigstens 
Langzeitlogging speichern? Das wäre echt gigantisch, wenn das klappen 
würde!

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher... in EEPROMS kann man auch zur Laufzeit Daten 
speicher/lesen/löschen.
Da Du von Langzeit redest wird die Anzahl der max. Schreibzyklen 
(100k-1M) wahrscheinlich kein Problem darstellen. Man muss sich halt nur 
merken, wo die Daten stehen/anfangen.

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.