mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik externes SRAM an ATMega16


Autor: Jan-Erik Schmutz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte ein externes SRAM an einen ATmega16 anschließen. Der
elektronische Anschluss sieht wie folgt aus:

PortB des Mega16 ist mit 2 latches und den IO-Ports des SRAMs
verbunden. Ein Latch liegt auf Adressleitung 0-7 das andere

auf 8-15 des SRAMs. Den CS1 und CS2 vom RAM habe ich direkt auf Vcc
bzw. GND gelegt damit das RAM immer "an" ist. WE/ und

OE/ liegen an PortD 2 und 3. Die LE Leitungen des LAtches liegen auf
PortD 4 und 5.
Die Routine die ich geschieben habe angehängt.
Ich habe mit dem Scope geschaut und die Adresse liegt richtig an den
Adressleitungen an.
Das Problem ist, dass ich keine Daten aus dem RAM lesen kann.
Dummerweise kann ich nicht überprüfen, ob die Daten richtig

geschrieben werden.
Ich wäre sehr Dankbar für jeden hilfreichen Tip.

Schöne Grüße

Jan-Erik



SRAM.h:


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++      SRAM     ++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


#define OUTEN    2    // Output Enable SDRAM
#define WREN    3    // Write Enable SDRAM
#define ADDRLOW    4    // Latch Enable for low Address
#define ADDRHIGH  5    // Latch Enable for high Address
#define DATA_PORT  PORTB
#define DATA_PIN  PINB
#define CTRL_PORT  PORTD


void write_address(unsigned int address);
void Data_to_RAM(unsigned int address, unsigned char data);
unsigned char Data_from_RAM(unsigned int address);

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Funktion "write_address" kommt mir ein wenig seltsam vor, wie
sagst Du welchem Latch, daß es jetzt die Daten am Port übernehmen soll?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach, sorry, zu schnell gepostet, ich sehs grad...

Autor: OldBug (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Probier doch mal das hier, bitte.
Ich habe Deinen Code mal ein wenig verändert, und zwar so, wie mir das
Logisch erscheint.

Vielleicht hilfts, wenn nicht, dann einfach nochmal Posten!

Autor: Jan-Erik Schmutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo OldBug,

ich habe deine Routine getestet und sie läuft super.

Nochmal tausend Dank für deine Hilfe.


Schöne Grüße

Jan-Erik

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.