Ergebnis 1 bis 10 von 10
  1. #1
    Erfahrener Forum-Benutzer
    Registriert seit
    12.04.2008
    Beiträge
    90

    Standard M514256A an ATMega

    Hallo Leute,

    ich möchte gern den oben genannten RAM an meinen ATMega anschließen - und zwar mit möglichst wenig Pins.

    Hintergrund ist mein Oszilloskop-Projekt, ich möchte gern den internen SRAM des Mega für die Messreihe benutzen - und für die Darstellung falls unbedingt notwendig.

    Son Oszilloskop braucht aber ja eine Menge anderer Einstellungen, und da diese ja nicht zeitkritisch sind, würde ich sie gerne Auslagern.

    Leider habe ich keine Ahnung wie ich das verwirklcihen könnte. Im Internet finde ich auch nichts, wie ich das machen könnte, auch keinen Ansatz.

    Vorhanden sind die 8Bit-74HC Schieberegister, und 16x der RAM-Baustein. einer würde ja bereits reichen.

    Hat jemand Lust das mit mir sone Speichersteuerung zu entwickeln oder mir eine Idee dazu zu geben?

    Gruß Rainer
    Never touch a running System

  2. #2

    Administrator

    Registriert seit
    28.01.2007
    Ort
    Region Giessen
    Beiträge
    2.554
    Blog-Einträge
    6
    Sprachen
    C Assembler Pascal

    Standard

    Hallo Rainer,

    ist das ein 32k x 8bit SRAM, ich habe da kein Datenblatt gefunden?

    Wenn du möglichst wenige Pins für das externe SRAM belegen möchtest und die Übertragungszeit nicht kritisch ist, könntest du die Adresse 15bit (oder 16bit) durch zwei 8bit-Shiftregister schieben und dann parallel ausgeben. Beim Datenbyte wird es ein bisschen schwieriger, da bidirektional. Die Steursignale CS\, RD\ und WR\ darf man auch nicht vergessen. Wieviele Pins hast du denn für den Speicher zur Verfügung? Und wieviel Speicher benötigst du denn?

    Ein ähnliches Thema hatten wir schonmal in diesem Thread.

    Grüße,
    Dirk
    Theorie ist Wissen, das nicht funktioniert - Praxis ist, wenn alles funktioniert und man weiß nicht warum!
    Mein Kindheitstraum: Die 32bit Farbpalette als Buntstiftsammlung.


  3. #3
    Erfahrener Forum-Benutzer
    Registriert seit
    12.04.2008
    Beiträge
    90

    Standard

    Hallo Dirk,

    hier ist das Datenblatt: DATASHEET
    Das Datenblatt ist das einzige was mir logisch passen erscheint - und wenn nicht, dann rauchts eben - war nicht der optimale Arbeitspunkt.

    Ich weiß nicht, wie viel Speicher ich genau brauchen werde. Den anderen Thread habe ich gelesen, er hat mir aber nicht weitergeholfen. Ich habe vermutlich damit nicht viel Anfangen können, weil mir auch das Datenblatt nicht sehr weiterhilft.

    Ich kenne RAMs nur als "Array" - dieser hier scheint aber als Tabelle aufgebaut zu sein, also mit 2 Indizes. Und das verwirrt mich.

    Gruß Rainer
    Never touch a running System

  4. #4

    Administrator

    Registriert seit
    28.01.2007
    Ort
    Region Giessen
    Beiträge
    2.554
    Blog-Einträge
    6
    Sprachen
    C Assembler Pascal

    Standard

    Hallo Rainer,

    ich habe mir das Datenblatt einmal angesehen. Man überträgt hier insgesamt 18bit für die Adresse, diese ist unterteilt in 9bit Row-Address und 9bit Column-Address, gelatcht werden die beiden Adressteile durch die Signale CAS\ und RAS\. Die Daten werden mit 4bit übertragen, den Ausgangsteiber aktiviert man mit OE\=low, Daten werden übernommen mit WE\ nach low.

    Es ist schon ein bisschen komplizierter, als mit einem herkömmlichen SRAM. Versuche doch erst einmal festzustellen, wieviel Speicher du wirklich benötigst, vielleicht reicht ein AVR mit mehr SRAM. Wenn du nicht zu oft schreiben musst, kannst du vielleicht auch eine andere Speicherart nutzen, DataFlash, FRam, EEPROM z. B.

    Gruß
    Dirk
    Theorie ist Wissen, das nicht funktioniert - Praxis ist, wenn alles funktioniert und man weiß nicht warum!
    Mein Kindheitstraum: Die 32bit Farbpalette als Buntstiftsammlung.


  5. #5
    Erfahrener Forum-Benutzer
    Registriert seit
    12.04.2008
    Beiträge
    90

    Standard

    Hallo Dirk,

    mein Speicherproblem ließe sich ohne Weiteres mit einem anderen µC lösen - aber ich habe gerade keinen da, und die RAMs rumfliegen und möchte auch lernen, wie man sowas am besten angeht.

    Und von daher kam einfach die Idee, man könnte das ja mal versuchen - wenn man das ja einmal raushat, dann gehts ja ratzfatz.

    Für mich steht der lerneffekt an erster Stelle, und an nächster das Geld sparen - bin halt ein armer Azubi

    Gruß Rainer
    Never touch a running System

  6. #6
    Moderator
    Registriert seit
    27.10.2008
    Beiträge
    5.442
    Sprachen
    Bascom Assembler

    Standard

    Hallo Rainer (pcprofi)!

    Zitat Zitat von pcprofi Beitrag anzeigen
    mein Speicherproblem ließe sich ohne Weiteres mit einem anderen µC lösen - aber ich habe gerade keinen da, und die RAMs rumfliegen und möchte auch lernen, wie man sowas am besten angeht.
    Ist zwar schon etwas spät aber evtl hilft es noch dem einen oder anderen.
    Das was Du da hast sind dynamische RAMs und keine statischen. Die würde ich
    persönlich an nem ATMEL nicht einsetzen. Außer du hast zu viel Rechenzeit übrig

    Die müssen alle paar Millisekunden/Microsekunden einen Refresh-Zyklus haben, damit
    sie ihren Speicherinhalt nicht verlieren. In dynamischen RAMs werden Kondensatoren
    zur Speicherung verwendet - bei statischen sind es Flip-Flops (oder wie man es auch
    immer nennen will). Diese Kondensatoren werden über Refreshzyklen immer wieder
    nachgeladen (sind nur ein paar PicoFarad-Bruchteile groß) weil sie durch Leckströme
    usw immer etwas verlieren und damit natürlich auch die gespeicherten Bits.

    Sieh dir mal Datenblätter oder Schaltungen von alten Computern (Z80, 6502) oder
    den damals verwendeten Speichern (4116, 4164) an. Das müßte dir die Augen
    öffnen und einiges erklären.

    Gruß
    Dino

  7. #7
    Erfahrener Forum-Benutzer
    Registriert seit
    12.04.2008
    Beiträge
    90

    Standard

    Okay, dann lassen wir das... Das würde dann ja shcon bald wieder auf nen eigenen µC auslaufen, der nix anderes tut als den Speicher zu managen...

    Eigentlich schade, weil ich habe nämlich 16 Stück von den Dinger rumliegen...

    Gruß Rainer
    Never touch a running System

  8. #8
    Moderator
    Registriert seit
    27.10.2008
    Beiträge
    5.442
    Sprachen
    Bascom Assembler

    Standard

    Hallo Rainer!

    Ich hab mir heute auch mal das Datenblatt angesehen.
    Es ist also ein 256kx4Bit dynamisches RAM wie vermutet.
    Es hat 9 Spalten und Reihenadressen. 9+9=18BitAdressen (256k)
    Mit den 4 Datenbit multipliziert ist das also ein 1MBit DRAM.

    Auf Seite 1 steht bei den Feature unter anderem:
    Refresh: 512 cycles/8ms, 512 cycles/64ms (L-Version)
    CAS before RAS refresh, hidden refresh, RAS-only-refresh capability

    Für diese DRAMs waren damals Verzögerungsglieder auf den PC-Boards drauf
    die Signale mit einigen Nanosekunden Abstand erzeugt haben. Damit wurde dann
    mit Hilfe eines Adressmultiplexers erst die obere Hälfte der Adressen in RAS und
    dann die untere Hälfte in CAS eingetaktet. Danach lag die Adresse in einem internen
    Buffer (Sie Seite 3) an und man konnte auf die Daten zugreifen.

    Für den Refresh hat man in den CPUs meißt einen internen Refresh-Counter
    gehabt (zB beim Z80) der hat dann seine Refresh-Adresse auf den Adressbus
    gelegt (In deinem Fall müsste das ein 9-Bit Zähler sein) und mit dem RFSH-Pin
    diese Refresh-Adresse in RAS eingetaktet (RAS-only-refresh). Dieser Refresh
    passierte zwischen den normalen Speicheroperationen (Also, wenn die CPU
    gerade keine Daten abgelegt oder geladen hat).

    Wenn du diese Speicher verwenden willst, müßtest Du also in deinem uC nen
    9-Bit Zähler implementieren, der alle 8ms seinen Wert auf den Adressbus legt
    und mit nem Impuls nach RAS eintaktet. Und das zwischen deinen "normalen"
    Speicheroperationen, die du sowieso noch hast.

    Auf Seite 12 siehst Du unten im Signal-Diagram den Refresh-Zyklus.
    Ab Seite 9 ist das mit den Adressen zu sehen --ROW--COLUMN---------
    Ab Seite 11 ist zu sehen, warum das Teil Fast-Page-DRAM heißt.

    Für MicroController würde ich sowas wie ...
    - 62256-70M (32kx8 70ns) SMD 1,10eur
    - 62256-80 (32kx8 80ns) DIP 1,30eur
    - 6264-70 (8kx8 70ns) DIP 1,25eur
    - ....
    oder ähnliche STATISCHE RAM-Speicher verwenden (Preise gerade bei
    Reichelt rausgesucht) und 1,30eur für 32kByte sind eigentlich akzeptabel
    Die lagen früher mal bei 30-40DM pro Baustein
    Die kann man dann auch ziemlich direkt an nen ATmega ranpacken wenn er
    die Pins dafür hat (z.B. der Mega128). Dann muß man sich auch keinen
    abbrechen und hat für die Ansprache des externen RAM direkt Befehle (auch
    in Assembler) zur Verfügung

    Deine Steinchen sind für den Zweck leider nur "nice to have" aber nicht wirklich
    verwendbar.

    Denn man viel Spaß beim Basteln

    Gruß
    Dino

  9. #9
    Moderator
    Registriert seit
    27.10.2008
    Beiträge
    5.442
    Sprachen
    Bascom Assembler

    Standard

    Noch einmal ein Nachtrag.
    Ich habe beim stöbern zufällig etwas über DRAMs an Microcontrollern gefunden.

    http://www.myplace.nu/avr/dram/index.htm

    Wenn ich den flüchtig überflogenen Text richtig verstanden habe, wird alleine
    für das Refresh ca 10 Prozent der Rechenzeit verbraten. Wenn man also
    Applikationen hat, die wenig Rechenzeit benötigen aber viel Speicher, dann
    geht das. Aber in Anbetracht der relativ geringen SRAM-Preise weiß ich
    nicht, ob sich der Aufwand lohnt. Das muß dann jeder selber entscheiden.

    Gruß
    Dino

  10. #10

    Administrator

    Registriert seit
    28.01.2007
    Ort
    Region Giessen
    Beiträge
    2.554
    Blog-Einträge
    6
    Sprachen
    C Assembler Pascal

    Standard

    Man kann es natürlich als Spielerei oder Herausforderung sehen, SDRAM mit einem Mega AVR zu verwenden (mit Tiny wäre auch interessant ), ich würde dann aber schon einen Schritt weiter gehen und einen Xmega nutzen. Die Xmega-Familie hat ein External-Bus-Interface (EBI), welches für SDRAM und SRAM geeinet ist und das Timing vollständig durch Hardware realisiert. Wenn man SRAM und SDRAM in der Bastelkiste hat und sich nicht entscheiden kann, was man jetzt nehmen soll ... kein Problem, es ist sogar möglich beide RAM-Typen parallel in einem Design nutzen

    Grüße,
    Dirk
    Theorie ist Wissen, das nicht funktioniert - Praxis ist, wenn alles funktioniert und man weiß nicht warum!
    Mein Kindheitstraum: Die 32bit Farbpalette als Buntstiftsammlung.


 

 

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Powered by vBulletin® Version 4.2.0 (Deutsch)
Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:29 Uhr.