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
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
nein ich möchte gern 32GIOPs zusammenhängend nicht 4x 8Bit Ports... sondern 1x 32Bit Port... Gerhard
Wie schnell muss dein 32-Bit-Parallel" sein? Reichen da auch 4x8-Bit Schieberegister und gleichzeitiges "Enable"?
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
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^^
Gerhard wrote:
> schnell muss der controller nicht unbedingt sein....
Wenn nicht schnell, warum dann zeitgleich?
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
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
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).
>(den man zwar kaum nutzen kann, aber das ist 'ne andere Geschichte).
wie meinst du das???
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.
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
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?
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
Wäre mal ganz interessant zu wissen wo der Sinn liegt einen Externes Businterface zwischendurch umzuschalten auf GPIO. Was hängt denn da dran?
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
> 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?
>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
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 ..
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
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.
Nein, der Link war nicht das Datenblatt. Heimtückisch. Das Datenblatt ist das hier http://atmel.com/dyn/resources/prod_documents/doc6175.pdf
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 ;)
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.