Forum: Mikrocontroller und Digitale Elektronik µC Datenbus


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gerhard (Gast)


Lesenswert?

hallo,

welcher µC besitzt einen 32Bit breiten Datenbus, den man auch als 32 
GIOPs verwenden kann (sozusagen 32Bits gleichzeitig in die weite Welt 
schaufeln kann)?


Gerhard

von Peter D. (peda)


Lesenswert?

Definiere "gleichzeitig".

Wenn Du z.B. bei nem AVR alle 4 8Bit Ports nacheinander setzt (dauert 
0,2µs), ist das aus Sicht eines langsamen CD4xxx CMOS-ICs (max 1MHz) 
total gleichzeitig.


Peter

von Gerhard (Gast)


Lesenswert?

nein ich möchte gern 32GIOPs zusammenhängend nicht 4x 8Bit Ports... 
sondern 1x 32Bit Port...

Gerhard

von Jörg B. (manos)


Lesenswert?

Wie schnell muss dein 32-Bit-Parallel" sein? Reichen da auch 4x8-Bit 
Schieberegister und gleichzeitiges "Enable"?

von Gerhard (Gast)


Lesenswert?

nein, ich will keine schieberegister etc. verwenden... auch keine 
latches... das muss ohne allem zusätzlichem gehen... schnell muss der 
controller nicht unbedingt sein....


Gerhard

von Jörg B. (manos)


Lesenswert?

Alternativ könnte vielleicht auch eine Kombination aus dem Vorschlag von 
Peter Dannegger in Verbindung mit 4x 74HC573 (8Bit Latch) sowohl schnell 
als auch zeitgleich sein (wenn ich die Funktion richtig verstanden 
habe).

EDIT: war ich wohl zu langsam mit der Antwort^^

von Jörg B. (manos)


Lesenswert?

Gerhard wrote:
> schnell muss der controller nicht unbedingt sein....
Wenn nicht schnell, warum dann zeitgleich?

von Gerhard (Gast)


Lesenswert?

schnelligkeit und synchronität hat ja erstmal nichts gemeinsames... nur 
die darstellung mit schieberegister oder latches benötigt erstes etwas 
mehr platz, und wenn man eh einen 32Bit breiten Datenbus benötigt, 
dachte ich mir wäre es performanter gleich einen µC zusuchen bei dem man 
zwischen GIOPs und Datenbus hin- u. herschalten kann...

Gerhard

von Micha (Gast)


Lesenswert?

nem nen ARM7 von NXP oder ATMEL da gibt es jeweils Varianten mit 32 Bit 
Datenbus. Die Dinger sind leicht zu Programmieren.

NXP: LPC22XX; LPC23XX; LPC24XX
ATMELT : AT91SAM XXXX

sind alles 32 Bit Prozessoren

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn Du 32-Bit-I/O-Operationen durchführen willst, dann solltest Du Dir 
mal einen ARM7-basierenden µC ansehen. Da reicht schon der LPC2106 von 
Philips, bereits der hat einen 32 Bit breiten GPIO (den man zwar kaum 
nutzen kann, aber das ist 'ne andere Geschichte).

von Gerhard (Gast)


Lesenswert?

>(den man zwar kaum nutzen kann, aber das ist 'ne andere Geschichte).

wie meinst du das???

von Gerhard (Gast)


Lesenswert?

gibt es bei den LPC auch welche die Flash und mehr als 16Bit RAM 
aufweisen?



Gerhard

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der LPC2106 hat nur sehr wenig Pins, das liegt am 48poligen Gehäuse.
Möchte man beispielsweise das JTAG-Interface nutzen, gehen eine ganze 
Latte I/O-Leitungen deswegen verloren.

Das macht aber nicht wirklich was, denn der 2106 hat natürlich auch 
größere Brüder mit sehr viel mehr I/O-Leitungen.

Jeder LPC2xxx hat internes Flash-ROM und internes RAM - mehr als 16 Bit 
sowieso. Der 2106 beispielsweise hat 64 kByte RAM und 128 kByte 
FlashROM.

von Gerhard (Gast)


Lesenswert?

aber die LPC21xx haben doch alle keinen Daten- u. Addressbus - deshalb 
gehen sie nicht...

wo findet man eigentlich die LPC24xx-Serie bei Phillips?

http://www.nxp.com/#/homepage/cb=[type=product,path=/50809/45993/45994,final=LPC2104_2105_2106_6]|[14]

Gerhard

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was genau willst Du denn?

Möchtest Du 32-Bit-I/O-Operationen durchführen? Dazu brauchst Du weder 
Daten- noch Adressbus. Dafür genügt der 32 Bit breite I/O-Port des µC.

Möchtest Du externen Speicher anschließen?

Reicht der im µC vorhandene Speicher nicht aus?

von Gerhard (Gast)


Lesenswert?

beides - ich möchte einen 32Bit breiten Datenbus + entsprechenden 
Addressbus und ich möchte diesen 32Bit Datenbus umschalten können zu 
normalen GIOPs so dass ich 32Bits mit einem Befehl rausschieben kann...

Atmel: bei den AT91SAM7SE geht das z.B. nicht, weil der Datenbus aus PC, 
PA etc. zusammengesetzt wird.. ansonsten sind die Datasheets von Atmel 
zu diesem Punkt sehr undurchsichtig, weil sie es nämlich nicht 
erwähnen...

http://www.atmel.com/dyn/resources/prod_documents/DDI0029G_7TDMI_R3_trm.pdf
zwar hat dieser einen 32Bit breiten Datenbus, aber ich kann leider nicht 
finden, ob man diesen 32Bit Datenbus auch als 32GIOPs verwenden kann 
(ohne mehree Ports ansprechen zu müssen)



Gerhard

von opacer (Gast)


Lesenswert?

Wäre mal ganz interessant zu wissen wo der Sinn liegt einen Externes 
Businterface zwischendurch umzuschalten auf GPIO. Was hängt denn da 
dran?

von Gerhard (Gast)


Lesenswert?

einerseits die Outputs und andererseits der externe speicher - und das 
umschalten nur deshalb, damit man nicht andere Pins dafür belegen 
muss... zuerst wird vom externen speicher daten geholt im internen 
speicher müssen diese noch in die richtige reihenfolge gebracht werden 
etc. und dann werden sie an die outputs gegeben --> das geht so die 
ganze zeit...

Gerhard

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> und ich möchte diesen 32Bit Datenbus umschalten können zu
> normalen GIOPs so dass ich 32Bits mit einem Befehl rausschieben kann...

Und wozu soll das gut sein?

Entweder Du machst I/O-Zugriffe auf Peripherie oder Du machst 
irgendwelche Speicherzugriffe. Ein 32 Bit breiter Datenbus (für 
Speicherzugriffe) ist nur dann erforderlich, wenn die Busbandbreite 
eines 16-Bit-Datenbusses nicht ausreicht.


32 Bit breite I/O-Zugriffe können verschiedene ARM7-basierende 
Controller durchführen, wie eben schon die einfachen LPC2xxx.

Das erfordert eben nicht mehrere Portzugriffe, denn der Port ist 32 
Bit breit.

Was lässt Dich annehmen, daß das beim AT91SAM7S... nicht der Fall sein 
soll?

Informationen darüber wirst Du übrigens nicht im ARM7-Manual finden, das 
beschreibt den Prozessor, nicht die Peripherie. Und für die ist nicht 
ARM zuständig, sondern der jeweilige Hersteller, also Atmel, NXP etc.



Was ist Deine Anwendung, was hast Du vor?

von Gerhard (Gast)


Lesenswert?

>32 Bit breite I/O-Zugriffe können verschiedene ARM7-basierende
>Controller durchführen, wie eben schon die einfachen LPC2xxx.

würde mir reichen - nur der interne RAM ist zu wenig - ich benötige mehr 
als 16kB - ansonsten wären die super!


>Informationen darüber wirst Du übrigens nicht im ARM7-Manual finden, das
>beschreibt den Prozessor, nicht die Peripherie. Und für die ist nicht
>ARM zuständig, sondern der jeweilige Hersteller, also Atmel, NXP etc.

aber der link war doch das Datasheet von Atmel (von einem µC)... oder 
nicht?


Gerhard

von opacer (Gast)


Lesenswert?

Und was hängt an den Output dran?

Also ich sehe nicht wo das Problem ist ein ARM zu holen, wenn man viel 
Speicher braucht ein externes Ram dran und das ganze dann per 
Schieberegister raushauen. Mit einem gemeinsamen Enable ist es dann auch 
ziemlich synchron. Schließlich braucht es ja auch was zeit die 
Peripheriefunktion (in dem Fall Datenbus) abzuschalten, auszugeben und 
wieder einzuschalten. Und wie reagiert der µC darauf? Schaltet er den 
kompletten externen Daten/Adressbus ab oder nur die Peripherie an dem 
Pin? Nicht das der externe Speicher auf einmal Matsch ist ..

von Peter D. (peda)


Lesenswert?

Also wenn Geschwindigkeit kein Thema ist, kann man SRAM auch prima 
8bittig an den LPC ranbaumeln.

Ich hab z.B. 128kB SRAM 8bittig an den LP2292 rangepappt, spart 
Routingzeit und Chips (nur 1 SRAM statt 4). Trotzdem kann man natürlich 
den SRAM 32bittig ansprechen, der LPC macht automatisch 4 8bit-Zugriffe 
draus.


Peter

von Christian U. (z0m3ie)


Lesenswert?

Was machen denn deine Outputs, wenn du Daten vom ram holst ?
Dann Flackern die lustig vor sich hin.
Also brauchst du Lataches dazwischen wo ist jetzt der Unterscheid zu der 
Schieberegister Variante ?
Irgendwie hört sich das für mich nach Denkfehler an.
Du kannst warscheinlich problemlos nen 8-Bitter mit Schieberegistern und 
villeicht wenn nicht so schnell sein soll sogar n SPI oder I2C Ram 
nehmen.

Das ganze bekommt man mit nem Tiny auf 2x4 cm platine o.ä.
Nimmst du nen 32 bit Arm, nen externes Ram und Latches brauchst du 
locker mal 5x8 oder so. Ich seh da keinen Sinn.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, der Link war nicht das Datenblatt. Heimtückisch.

Das Datenblatt ist das hier 
http://atmel.com/dyn/resources/prod_documents/doc6175.pdf

von Tobias P. (hubertus)


Lesenswert?

Du kannst ja einen 32 Bit Latch an deinen 32 Bit Bus hängen. Und der 
Latch wird dann wie ein Memory adressiert. Klappt wunderbar, und du hast 
schon deinen 32 Bit Output Port. Den Latch zurücklesen kannst du 
natürlich nicht... Ausser du nimmst entweder einen Read-Back-Latch oder 
aber einen Bustreiber, dessen Eingänge mit den Latchausgängen verbunden 
sind, und der vom READ-Signal gesteuert wird. Aber ich denke, auf diese 
Idee bist du sicher schon selber gekommen.
Wäre dann allerdings eher etwas für einen PLD... denn ich habe noch nie 
einen 74er oder 4000er Chip gesehen der 32 FFs enthält ;)

von Robert Teufel (Gast)


Lesenswert?

@ Gerhard,
info zum LPC24xx gibts hier:
http://www.standardics.nxp.com/products/mcus/arm7/
oder hier:
http://www.standardics.nxp.com/products/lpc2000/
oder hier:
http://www.standardics.nxp.com/

aber bitte NICHT hier anfangen, sonst findest Du nie was:
www(punkt)nxp(punkt)com

Ein selbst leidgeplagter

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.