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.
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
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!
>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.
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.
@ 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
>Was noch lange nicht heisst, dass es sowas nicht gibt.
Genau das sollte es heissen.
"Historische" Rechner wurden vermutlich auch in Assembler
programmiert...
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?
>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.
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?
> 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
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.