www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 128KB SRAM an Mega128?


Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute :)

Es gibt ja eine million Threads über das Thema Sram. Viele handeln
davon über die Ansteuerung von 64kb SRAM, was ja vom Mega128 bereits
unterstützt wird. Da aber genau eine Adressleitung noch frei ist, die
man quasi leicht verwenden könnte um 128 kb statt 64 kb anzusteuern,
frage ich mich, ob es nicht evtl auch möglich ist, 128KB vom Mega128 in
Hardware zu unterstützen, sprich ohne aufwendige (naja...) Algorithmen
zu schreiben und eine eigene Speicherverwaltung zu implementieren.

Gibts da lösungen zu? Ich frage mich nämlich warum nur 64 kb
addressiert werden können, wo doch eine Leitung eh noch brach liegt?
Woran liegt das?

Gruß
Timo

Autor: ruepel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da liegt keine Leitung brach. Welche meinst Du denn?

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man braucht für 64k nur 15 Leitungen. Das bedeutet, dass da eine Leitung
von dem ohnehin zweiten benötigten Port frei liegt. (oder irre ich mich
da... ich schau das gleich nochmal nach, aber ich bin da ziemlich fest
von überzeugt.

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdammt. 2^16 sind 65536.... dann kann das wirklich nicht stimmen O_o

Autor: sven s. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na um 64k zu adressieren braucht man nun mal 16 leitungen ( 2 hoch 16 =
65536 = 64k sollte jeder taschenrechner können).

der mega 16 benutzt auch alle 16 und zwar von A0 bis A15 = 16
leitungen.

und die daten werden auf den unteren 8 datenleitungen "gelatcht".

ich hoffe diese leihenhafte erklärung reicht dier :-)

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jaja, nadeln für meine Augen :P
Ich habs ja nen Post früher auch schon gemerkt, dass ich mich vertan
habe :)
Und da fällt mir auch schon mein Fehler ein: Ich habe für meine
Versuche nen 32k SRAM verwendet und da ist natürlich ne Leitung frei.
Ich hatte aber im Kopf, dass es nen 64k Modul war. Wie dumm von mir :)

Autor: sven s. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh du hast es gerade von allein gemerkt ...

aber ich denke du könntest drotzdem z.b. 128kb recht einfach ansteuern
einfach die letzte adressleitung auf nen io pin und damit kannst du
dann sozusagen deine ram in 2 bänke aufteilen.

das dumme ist nur das der mega 128 das eigentlich nicht weis. für
programm variabeln wär das wohl nix aber für z.b. eine verkettete liste
kännte man das ganz gut verwenden.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in assembler ist das alles kein problem, einfach eine freie Portleitung
opfern und als höchste Adresse verwenden. Vor jedem mem-Zugriff muss
dann eben auch untere/obere 64k gesetzt werden. Mit Compilern dürfte
das etwas schwieriger werden.

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genauer will ich mehrere Bilder aus einer Camera speichern und
verarbeiten. Ein Bild hat 16kb, und ich würde gerne mehr als 4 Bilder
unterbringen. In dem Falle könnte man das tatsächlich ganz gut so
machen, wie du vorschlägst.

Allerdings kann ich dann nicht mit malloc() speicher reservieren. Wenn
das schon nicht geht, dann kann ich warscheinlich gleich nen eigenes
kleines Speichermanagement schreiben. So viel sollte das warscheinlich
eh nicht sein.

Autor: sven s. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@crazy horse

mit nem compiler dürfte das genauso funktionieren einfach von nem
zugriff das höhere adressbyte nicht vergessen. man kann ja auch mal
schauen was der compiler das so macht... der kocht auch nur mit
wasser:-)

@Timo Birnschein
scheint ja ein lustiges projekt zu sein. ich würd an deiner stelle mal
in deine bastelkiste gucken (falls vorhanden) aber da findet sich
bestimmt noch alter sd speicher oder von ner alten gra.ka. der ram kann
man meist für so zwecke noch supper gebrauchen.
hab selbst ne alte voodoo ausgeschlachtet und den immerhin 512kb
speicher genommen ist zimlich schnell das teil:-)

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastelkisten sind hier randvoll :D

Ich habe hier EliteMT SRAM mit 128KB rumliegen. Hintergrund ist das
Auslesen einer Gameboycamera mittels nem fein schnellen AD-Wandler und
anschließender Bildbearbeitung. Die Camera läuft bereits, allerdings
ist der interne Wandler einfach net schnell genug um die Cam vernünftig
auszulesen.

Das ganze soll später mal in nen kleinen mobilen Roboter eingebaut
werden, dessen Funktion öhm noch nicht genau spezifiziert wurde :P
Zukunftsvisionen...

Jedenfalls ist der Plan nen Mega128 sowei auszureizen wie es irgend
geht. Er muss sich um einige Dinge kümmern:
- Camera auslesen
- Bilder auswerten (möglicherweise Bewegungsvektoren erkennen, sowie
Objekterkennung)

Das brauche ich aber nicht immer, warum auch, schließlich gibt es ja
Wegplanung, darum:
- AD-Wandler strapazieren und Geräusche per Mikrofon aufnehmen und
möglicherweise analysieren. Entweder einfach um zu erkennen, dass da
was ist, evtl aber auch ne äußerst primitive Spracherkennung, wie
damals in den alten PDAs. Kein eigenes lernen oder so gruselige
Sachen)
- Raumkarten erstellen und speichern und Wege zum nächsten Ziel planen
- Wenn noch Zeit, Platz und Lust ist, dann ne SD-Card für die
Speicherung von Daten verwenden.

ABER: Alles nur Ideen. Nichts davon, mal abgesehen von der Camera, soll
aktuell funktionieren. Ich weiß nur, das die Camera störungen hat, weil
der Wandler des Mega128 nicht exakt das tut was im Datenblatt steht.
Die Camera übrigens auch nicht.
Außerdem bekomme ich mit C mein LCD-Display mit t6963c nicht vernünftig
angesteuert, was mit Bascom Basic direkt lief, kann also nur am Program
liegen.
Mein Plan ist, das Camerabild zur besseren Fehleranalyse zunächst auf
das Display zu legen. Nur um es da mal zu sehen.

Das ist nen recht umfangreiches Projekt, läuft schon seit ewigen Zeiten
und da ich studiere, kommt man nie dazu was daran zu machen. Darum muss
man sich alle halbe Jahre immer wieder alle Informationen neu besorgen
und sich erstmal wieder einarbeiten. Das ist relativ ätzend.

Autor: sven s. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja so nen roboter hab ich auch mal gebaut.
na ja wir haben es mit can-bus vernetzt da wir gleich 2 at90can128
(fast wie mega128) verbaut haben :-) eigentlich nicht nötig aber ich
wollte mich mal mit can bus auseinander setzten. am schluss wars dann
doch nicht schlecht die doppelte power zur verfügung zu haben.

kannst dier ja mal anschauen
http://www.elektronik-projekt.de.vu/

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.