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