www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externes SRam - Verhalten normal?


Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich verwende einen ADUC7026. Diese MCU hat einen ARM7 Core und ein 
externes 16Bit Speicherinterface. Mittels 4 Selectleitungen können 4 
Adressräume mit 64Kx16 angesprochen werden.

Ich habe ein externes SRam mit 64Kx16 angeschlossen. Dabei ist mir etwas 
aufgefallen. Der Adressraum beginnt bei 0x30000000. Wird in Adresse 
0x30000000 oder 0x300000001 ein Char in C geschrieben, wird dieses auf 
beide Adressen geschrieben. Wird in Adress 0x30000000 ein Short in C 
geschrieben, werden beide Adressen korrekt verarbeitet.

Von der Hardwareseite her leuchtet mir dies ein Stück weit ein. Der 
Zugriff auf das SRam kann immer nur mit 16Bit erfolgen. Sollen nur 8Bit 
gespeichert werden, muss zu erst ein Lesezugriff durchgeführt werden, 
damit die 8Bit die im Speicher bleiben sollen, gelesen werden können und 
im Anschluss in einem einem 2. Schritt dann zusammen mit den neuen 8Bit 
geschrieben werden können.
Muss ich als C Programmierer selbst darauf achten, dass nur 16Bit 
Zugriffe erfolgen, oder übernimmt dies normalerweise der 
Speicherkontroller?
Warum wird das geschriebene Byte gespiegelt?

Aufgefallen ist mir das ganze, als ich einen Bytestream speichern 
wollte. Sah etwas eigenartig aus.

Vielen Dank für eure Tips,

Tilo

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist nicht Sache des Programmes, sondern der korrekten Beschaltung der 
Hardware. Üblicherweise besitzen Speicher und Speicherinterface 
Leitungen, die das jeweils zu schreibende Byte auswählen, so dass bei 
Byteoperationen nur eine dieser beiden Leitungen aktiv ist, bei 
Halbwortoperationen jedoch beide.

Beim ADUC dürften /BHE und /BLE dafür zuständig sein. Den Typ des SRAMs 
hast du nicht genannt, beim erstbesten 64Kx16 gibt es /UB und /LB.

Zugegeben, das Datasheet von Analog Devices ist nicht sehr gesprächig. 
Derart knappe Beschreibungen kenne ich anderswo (STM,NXP) nur als 
Kurzform eines ausführlicheren Reference Manuals - was ich bei AD aber 
noch nicht gefunden habe.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Danke. Schlatungfehler ;)

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.