Forum: Mikrocontroller und Digitale Elektronik SAM3X8E multiplexed Adress-/Datenleitungen


von Lucas G. (lucas_g)


Lesenswert?

Hallo miteinander,

ich plane gerade ein Projekt auf Basis des Atmel SAM3X8E oder ähnlichen. 
Ich möchte diverse Peripherie memory-mapped in den Adressraum des Atmel 
bringen. Diese hat aber einen gemultiplexten Adress- und Datenbus mit 
ALE (Adress Latch Enable) Leitung. Im Datenblatt des Atmel finde ich 
eine Beschreibung zum gemultiplexten Bus aber nur beim 
NAND-Flash-Controller. Kann es sein dass der allgemeine externe Datenbus 
das einfach nicht kann? Kann man in dem Fall den NAND-Controller 
zweckentfremden? Bei den 8-bit Controllern war der gemultiplexte Bus ja 
Standard, weil einfach nicht genug I/O-Pins da sind.

Hat sich mit der Thematik schon jemand auseinander gesetzt und kann mir 
evtl. auf die Sprünge helfen?

Grüße

von ArduinoQuäler (Gast)


Lesenswert?

Hast du kein Datenblatt oder kannst du es nicht lesen?
Peripherie wäre im I/O wie statisches RAM zu behandeln.

Anhand des AT91SAM3X:

In Kurzform:

9.2.2 Static Memory Controller
• 8- or 16-bit Data Bus
• Multiple Access Modes supported
  – Byte Write or Byte Select Lines
  – Asynchronous read in Page Mode supported (4- up to 32-byte page 
size)
• Multiple Wait State Management
  – Programmable Wait State Generation
  – External Wait Request
  – Programmable Data Float Time
• Slow Clock mode supported


und hier in Langform:

27. Static Memory Controller (SMC)
............

von ArduinoQuäler (Gast)


Lesenswert?

Nachtrag:

27. Static Memory Controller (SMC)
..............
This SMC is capable of handling several types of external memory
and peripheral devices, such as SRAM, PSRAM, PROM, EPROM, EEPROM,
LCD Module, NOR Flash and NAND Flash.
..............

von Lucas G. (lucas_g)


Lesenswert?

@ArduinoQuäler: vielen Dank für deine Antwort. Jedoch muss ich 
feststellen, dass wohl eher Du der bist, der nicht vernünftig gelesen 
hat. Dass ich Peripherie wie statisches Ram einbinden kann ist mir klar. 
Was ich suche, ist eine Möglichkeit, den Adress-/Datenbus zu 
multiplexen, ohne den NAND-Flash-Controller zu verwenden.

von gerhard (Gast)


Lesenswert?

hallo lucas,
wieso willst de den adress/datenbus multiplexen?
wie schon weiter oben erwähnt solltest du dir mal Figure 27-2. SMC 
Connections to Static Memory Devices genauer ansehen.
siehst du da eine ALE Leitung?
Nein, weil der SAM3X8E keinen "gemultiplexten" Daten/Adress-Bus hat!
Daher brauchst du auch keine ALE-Leitung und den Bus zu 
"demultiplexten".
Also einfach deine externen periperals wie statische memory anschalten.

gruss
gerhard

von Mitlesa (Gast)


Lesenswert?

gerhard schrieb:
> Also einfach deine externen periperals wie statische memory anschalten.

Naja ...... vielleicht will er unbedingt multiplexen um Pins
zu sparen .....

von Frank K. (fchk)


Lesenswert?

Lucas G. schrieb:

> Ich möchte diverse Peripherie

welche genau? Wenn man Dir helfen soll, musst Du ALLE Informationen 
liefern.

> Kann es sein dass der allgemeine externe Datenbus
> das einfach nicht kann?

ja, das wird so sein.

> Kann man in dem Fall den NAND-Controller zweckentfremden?

nein, kannst Du nicht.

Vielleicht gibts andere Möglichkeiten, wenn Du die exakten Bezeichnungen 
aller anzuschließenden Peripheriebausteine lieferst.

fchk

von Lucas G. (lucas_g)


Lesenswert?

Ich weiß nicht, wieso immer davon ausgegangen wird, dass Threadersteller 
nicht lesen können... Ich habe das Datenblatt gelesen und dabei eben 
keinen offensichtlichen Hinweis auf entsprechende Möglichkeiten 
gefunden. Wenn ich dort einen ALE Pin gefunden hätte, hätte ich mir das 
erstellen eines Threads sparen können.

Der Grund ist wie Mitlesa richtig erkannt hat: ich möchte das ganze 
modular gestalten und den Adressbus über Pinleisten herausführen. Und da 
sind mir halt 17 Leitungen lieber als 32...

Aber gut, wenn's nicht geht, dann muss es halt sein.

Nachtrag @Frank K.: Die genaue Bezeichnung der Peripherie tut nichts zur 
Sache. Der NAND-Controller kann mit multiplexed Adress-/Datenleitungen 
umgehen und ist ansonsten laut Application Note scheinbar sehr gut 
konfigurierbar, darum dachte ich dass dieser eventuell nutzbar wäre, 
wenn auch mit gewissen Schwierigkeiten.

von gerhard (Gast)


Lesenswert?

hallo lucas,
wenn du leitungen sparen willst nimm eine synchrone serielle 
schnittstelle, i2c oder spi bieten sich da an und mit spi erreichst du 
übetragungsgeschwindigkeiten die in den meisten fällen ausreichend sind. 
du bekommst sehr viele peripherie-bausteine auch mit einer spi 
schnittstelle.
die idee den daten/adress-bus auf stiftleisten zu führen und vermutlich 
über sehr lange leitungen zu ziehen war zu zeiten eines z80 vielleicht 
noch sinnvoll (und schon damals emv-mäßig eine katastrophe), bei einem 
cortex-m mit einer taktfrequenz von bis zu 80mhz ist das keine gute idee 
(selbst für bastellösungen)

gruss
gerhard

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.