Forum: Mikrocontroller und Digitale Elektronik Externes SRAM + Atmel AT91SAM7SE


von Leni (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Expertenrunde,

ich bitte bei folgender Aufgabe um Hilfe:

Um Daten über POWERLINK an meinem µC empfangen und senden zu können, 
habe ich ein Modul der Firma Hilscher (Datenblatt anbei) gekauft. Das 
Modul übernimmt die Netzwerk- Kommunikation und verhält sich aus Sicht 
meines µC wie ein SRAM- Baustein. Um die Netzdaten zu verarbeiten, muss 
ich also nur das virtuelle 16 kbyte SRAM auslesen.

Auf meinem Mikrocontroller soll außerdem ein OPC UA- Server aufgebaut 
werden. Daher sollte Linux auf diesem µC laufen können. Also habe ich 
mich für einen Atmel AT91SAM7SE entschieden.

Der AT91SAM7SE verfügt über eine Externe Busschnittstelle und einen 
Static Memory Controller (SMC). Den SMC brauche ich, um mein virtuelles 
SRAM auszulesen.

Im Datenblatt (anbei) des AT91SAM7SE steht auf S.161
22.6 External Memory Mapping
"The SMC provides up to 26 address lines, A[25:0]. This allows each chip 
select line to address up to 64 Mbytes of memory.
If the physical memory device connected on one chip select is smaller 
than 64 Mbytes, it wraps around and appears to be repeated within this 
space. The SMC correctly handles any valid access to the memory device 
within the page (see Figure 22-2).
A[25:0] is only significant for 8-bit memory, A[25:1] is used for 16-bit 
memory, A[25:2] is used for 32-bit memory."

Um mein virtuelles Hilscher- SRAM an den AT91SAM7SE anzuschließen, 
stehen mir 14 Adresslines zur Verfügung, also würden einige Adresslines 
des AT91SAM7SE unverbunden bleiben. Tritt dann diese 
Speicherwiederholung beim Auslesen des SRAM auf, oder würde das nur 
auftreten, wenn man alle Adresslines an einen zu kleinen SRAM verbindet 
und somit nichtvorhandene Speicherzellen anspricht?

Kann ich also 16 kbyte virtuelles SRAM an den AT91SAM7SE anschließen, 
oder kommt es dann zu Speicherwiederholungen?
Falls sich Speicherwiederholungen ergeben, kann ich diese dann in der 
Software berücksichtungen, also einfach ignorieren?


Über Hilfe, Informationen und Anregungen würde ich mich sehr freunen!

Viele Grüße,
Leni

von Gregor B. (Gast)


Lesenswert?

Leni schrieb:
> also würden einige Adresslines
> des AT91SAM7SE unverbunden bleiben. Tritt dann diese
> Speicherwiederholung beim Auslesen des SRAM auf, oder würde das nur
> auftreten, wenn man alle Adresslines an einen zu kleinen SRAM verbindet
> und somit nichtvorhandene Speicherzellen anspricht?

Sieh dir die Memory-Map auf S. 22 im Datenblatt zum AT91SAM7SE an.

Schließ das Hilscher Modul an das Chip-Select 0 des Prozessors an.
Der Adressraum für CS0 geht von 0x10000000 bis 0x1FFFFFFF.
Es gibt kein Register, mit dem man dem Prozessor sagen könnte, dass der 
angeschlossene Chip weniger als die 26 zur Verfügung stehenden 
Adressleitungen hat. Also greift er bei jedem Zugriff auf den 
Speicherbereich auf alle Adressleitungen zu.
Dein Speicherbereich geht von 0x10000000 bis 0x10003FFF.
Jetzt greift Dein Programm auf die Speicherzelle 0x10004000 zu. Die 
Leitung A14 ist aber gar nicht angeschlossen. Also sind die 
Adressleitungen A0-A13 alle 0 und der Chip wird ab Adresse Null wieder 
ausgelesen.

von Leni (Gast)


Lesenswert?

Hallo Gregor,

danke für die schnelle Antwort! Zugriffe auf Speicherzellen ab Adresse 
0x10004000 werde ich einfach im Programm abfangen, dann dürfte es keine 
Probleme geben.

Viele Grüße,
Leni

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
Noch kein Account? Hier anmelden.