Forum: Mikrocontroller und Digitale Elektronik AT91SAM7SE


von Bernd (Gast)


Lesenswert?

hallo,

können eigenltich Addressbus und Datenbus von der Pinbelegung 
ausgetauscht werden oder warum ist bei diesem µC der Addresbus so 
komisch aufgesplittet in PB und PC?
http://www.atmel.com/dyn/resources/prod_documents/doc6241.pdf

Bernd

von Ingo Peters (Gast)


Lesenswert?

das sieht ja echt komisch aus - kann man so einen Datenbus trotzdem mit 
einem Befehl komplett ansprechen... ? PA, PB und PC... oder sind das 
einfach nur xyz-Namen und die Hardware dahinter macht das dann schon 
so...

Ingo Peters

von Ingo Peters (Gast)


Lesenswert?

im datasheet steht, dass man den 32Bit breiten Datenbus nur für 
SDRAM-ICs benutzen kann? d.h. einen Ethernet-controller mit 32Bit 
breiten Datenbus kann ich damit nicht ansprechen - ??? oder einfach 
32Bits mit einem Schlag auf alle 32 Datenleitungen des Datenbusses 
geben?

Ingo Peters

von Bernd (Gast)


Lesenswert?

würde es trotzdem funktionieren 32Bits mit einem Assembler-Befehl an 
zwei Latches zu schicken - auch wenn PA, PB und PC angesprochen werden 
muss? Ist das dann schneller als wenn man nur 8Bit breite Ports hat und 
somit 4 Stück damit in 4 Befehlen ansprechen muss?

Bernd

von Bernd (Gast)


Lesenswert?

kann mir jmd gewissheit geben, da ich mir diesen µC eigentlich kaufen 
möchte... um damit 32Bit gleichzeitig mit einem Assembler-Befehl oder 
C-Befehl rausschieben möchte... ohne irgendeiner verzögerung 
dazwischen...

Bernd

von Gast (Gast)


Lesenswert?


von Bernd (Gast)


Lesenswert?

das datasheet hab ich ja angeschaut... (im ersten post ist auch der link 
dazu)... aber durch das datasheet bin ich nicht wirklich schlau 
geworden, deshalb meine frage..

Bei allen anderen µC z.B. von NXP oder so, sind die Pins mit D0-D31 oder 
A0-A16 belegt und alles klar... aber hier ist es total durcheinander; 
was die beschriftung angeht... und ich daher nicht weiß ob ich in einem 
Assembler-Befehl 32Bits über den Datenbus rausschieben kann ohne eine 
Addresse im Addressbus anzulegen...

Bernd

von Dominic R. (dominic)


Lesenswert?

Was du (scheinbar) willst ist kein externer Bus sondern 32 GPIO Pins, 
die du aus irgend einem Grund scheinbar atomar ansprechen willst. Dazu 
musst du entweder alle Pins PA oder PB als GPIO Pins verwenden - 
eventuell auf diesen Pins verfügbare Peripherals sind dann nicht mehr 
verfügbar, sofern sie nicht auch auf anderen Pins zu finden sind. PB 
scheint sich hier anzubieten, da dessen Pins scheinbar nicht mutliplexed 
sid.

Das External Bus Interface (EBI) kümmert sich um einen kompletten 
Transfer, inklusive Handshake Leitungen, allerdings unterstützt der 
Static Memory Controller nur einen maximal 16-bit breiten Datenbus.

Was möchtest du denn genau an den uC anschliessen?

Gruß,

Dominic

von Bernd (Gast)


Lesenswert?

einerseits sollen 32Bits gleichzeitig mit einem Befehl abgeschickt 
werden können... und andererseits hab ich einen Ethernet Controller über 
diesen die Daten kommen, der einen 32Bit breiten Datenbus besitzt... -> 
dafür kann ich dann diesen Controller gar nicht verwenden... des 
weiteren hab ich natürlich noch einen externen SRAM und Flash-Speicher 
(jeder 16Bit Datenbus und 20Bit Addressbus)

Bernd

von Bernd (Gast)


Lesenswert?

d.h. ich müsste so einen Controller dafür verwenden wie den LPC2468 von 
Phillips http://www.standardics.nxp.com/products/lpc2000/pdf/lpc2468.pdf

-> da kann ich dann zwischen Datenbuss und GPIOs 32Stück an der Zahl 
hin- u. herschalten... --> kennst du noch solche Controller, die keine 
eigebaute Ethernet-Schnittstelle aufweisen oder USB weil, dass brauch 
ich z.B. gar nicht...

Sind die Freescale MPC555, M2114 eigentlich von der Performance besser 
als LPC2468?

Bernd

von Dominic R. (dominic)


Lesenswert?

Der Ethernetcontroller wird wohl auch Handshake Leitungen haben, ähnlich 
wie dein SRAM oder Flash. Dann wirst du mit GPIO nicht glücklich, da du 
dann mehrere Zugriffe brauchst, um die Steuerleitungen zu kontrollieren. 
Der Sinn des externen Busses ist ja, dass dieses Protokoll automatisch 
abläuft.

Es stellt sich die Frage, ob du nicht mit einem uC mit eingebautem 
Ethernetcontroller besser beraten bist - die Anbindung dürfte auf jeden 
Fall einfacher sein, vermutlich auch performanter.

Weshalb hast du dich denn für einen so "großen" Ethernet Controller 
entschieden? Das 32-Bit Interface bietet wohl Performancevorteile, 
jedoch kann ich mir vorstellen dass die ARM7, für die du dich hier 
interessiert, niemals den Durchsatz bewältigen, den ein externes 32-Bit 
Interface generieren kann.

Gruß,

Dominic

von Bernd (Gast)


Lesenswert?

welche ARM7 Serien können so einen Durchsatz den umsetzen?  Über die 
Ethernet Schnittstelle werden UDP-Datenpakete entgegengenommen, die 
schon relativ schnell ankommen können (nicht kontinuierlich)...

ich dachte, wenn so ein ARM7 auch einen 32Bit Datenbus anbietet, dass 
dieser Mikroncontroller auch damit umgehen kann bzw. ausnutzen kann...

Bernd

von Bernd (Gast)


Lesenswert?

>die Anbindung dürfte auf jeden Fall einfacher sein, vermutlich auch 
>performanter.

da bin ich mir nicht sicher, da ich schon in mehreren prof. produkten 
zwar mikrocontroller gesehen habe, die eine integrierte 
etherent-schnittstelle besitzen die platine aber trotzdem mit einem 
externen controller fürs ethernet bestückt war bzw. ist...

Bernd

von Dominic R. (dominic)


Lesenswert?

Diese professionellen Produkte werden vermutlich keinen ARM7 wie SAM7, 
LPC2000 oder STR7x einsetzen. Ein großer Vorteil der internen EMACs ist 
z.B. die DMA Engine, die den Core bereits deutlich entlasten kann.
Die externen BUS Interfaces dieser kleinen uCs bieten in der Regel kein 
externes DMA, schon allein weil die internen Busse dafür garnicht genug 
Bandbreite bieten.

Gruß,

Dominic

von Jörn K. (joern)


Lesenswert?

Bernd wrote:
> welche ARM7 Serien können so einen Durchsatz den umsetzen?  Über die
> Ethernet Schnittstelle werden UDP-Datenpakete entgegengenommen, die
> schon relativ schnell ankommen können (nicht kontinuierlich)...

Kannst du "schon relativ schnell" in Zahlen ausdrücken?

Wahrscheinlich wirst du mit einem ARM9 mit interner EMAC und seperatem 
AD-Bus besser fahren, wie Dominic schon erklärt hat.

Gruß Jörn

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.