Kennt jemand solche ICs, die sich seriell über zwei Ports beschreiben/auslesen lassen? Ich finde nur mit parallelen Schnittstellen...
Als RAM nicht aber als EEPROM -> CAT24C208 unter http://www.onsemi.com/pub_link/Collateral/CAT24C208-D.PDF
Im aktuellen Elektor ist ein für dich passender Beitrag drinnen. Dort wird ein CPLD verwendet um einem parallelen RAM per SPI an den uC anzubinden. http://www.elektor.de/jahrgang/2013/januar-047-februar/rambo-s.2392427.lynkx Christian_RX7
>Kaum bis gar nicht. Beschreibe was du erreichen willst, dann kann man >dir helfen. Siehe Netiquette. Hallo Falk, ich wollte es nicht verkompliziert darstellen, deshalb die konkrete Frage gewesen. Es geht darum: ich habe einen FPGA der eine adressierbare serielle Schnittstelle umsetzt ( http://4.bp.blogspot.com/-9L_-3z_aST8/T0U4UMgYI6I/AAAAAAAAAUU/cdR25qhPD4A/s1600/cs45_frame.jpg ). Dahinter soll ein Cortex sitzen, der einige Regel/Steuerschleifen abfahren soll. Das ganze soll einen recht großen Registersatz besitzen. Der Controller soll nicht bei jedem Lesevorgang von der Außenwelt "genervt" werden, und schön brav die Daten in einem "shared Memory" ablegen, wenn der CPU Ressourcen dazu hat. Den Controller interessieren soweit nur die Schreibvorgänge, auf die soll er sofort reagieren. Das ließe sich mit dem FPGA lösen, der hat aber beim weiten nicht so viel RAM. Zu meinen Nachteil, gibt es leider zu wenig Platz und Pins am FPGA, um einen parallelen Zwei-Port RAM anzuschließen. Einen kleinen SPI Chip könnte ich aber noch unterbringen. Um die Kollisionen beim Zugreifen vom FPGA und dem Cortex auf den RAM zu vermeiden, suche ich einen der am besten zwei SPI Ports hat...
Was du benötigst ist ein Dual-Port-RAM. Diese RAM-Sorte lässt es zu von zwei Mastern gleichzeitig beschrieben oder gelesen zu werden. Ich kenne Dual-Port-RAM nur als SRAM ausgeführt mit parallelem Bus.
idas schrieb: > Das > ließe sich mit dem FPGA lösen, der hat aber beim weiten nicht so viel > RAM. Wenn es Dir auf die Größe ankommt, dann nenn sie doch endlich mal. Darf man Dir nochwas aus der Nase ziehen müssen (Zugriffszeit, VCC, ...)? Was spricht gegen einen Cortex mit DMA? Mach Dir doch erstmal Gedanken, bevor Du fragst. Es ist nicht verboten, Postings vor dem Absenden nochmal Korrektur zu lesen, ob sie überhaupt relevante Informationen enthalten. Man kriegt allerdings oft den Eindruck, die Poster denken, es wäre streng verboten.
>Was du benötigst ist ein Dual-Port-RAM. Das wäre zu schön >Und einfach ein größeres FPGA nehmen geht aus welchem Grund nicht? Platz auf der Platine >Wenn es Dir auf die Größe ankommt, dann nenn sie doch endlich mal. 5x5mm, maximal 7x7mm >Darf man Dir nochwas aus der Nase ziehen müssen (Zugriffszeit, VCC, >...)? Erforderlich sind 16k Register mit je 16 Bit Auflösung. VCC 3.3, >Mach Dir doch erstmal Gedanken, bevor Du fragst. >Es ist nicht verboten, Postings vor dem Absenden nochmal Korrektur zu >lesen, ob sie überhaupt relevante Informationen enthalten. Man kriegt >allerdings oft den Eindruck, die Poster denken, es wäre streng verboten. Glaube mir, ich habe mir soviele Gedanken gemacht, die willst du alle nicht wissen. Und im Posting (28.01.2013 09:19) habe ich alles beschrieben, was nötig ist. Deshalb habe ich meinen ersten Beitrag auf eine konkrete Frage abgekürzt und dem Falk zuliebe alles ausführlicher beschrieben. >Was spricht gegen einen Cortex mit DMA? Nicht, nur ist es mir nciht bekannt, wie ich auf den RAM des Cortex (z.B. stm32) via DMA vom FPGA aus zugreifen kann.
idas schrieb: > Glaube mir, ich habe mir soviele Gedanken gemacht, die willst du alle > nicht wissen. Doch, aber nur die, die einem anderen Dein Problem erklären, der nicht in Deinen Kopf sehen kann. idas schrieb: > Nicht, nur ist es mir nciht bekannt, wie ich auf den RAM des Cortex > (z.B. stm32) via DMA vom FPGA aus zugreifen kann. Du wolltest doch SPI machen: FPGA - SPI - DMA - RAM Zeiten hast Du immer noch keine genannt.
idas hat eine ganz konkrete Frage gestellt. Und auf die wollte er eine einfache Antwort, Er wollte nicht, dass wir hinterfragen, ob sein Problem vielleicht auch anders gelöst werden kann. Also war es (erstmal) auch nicht nötig, das Problem zu schildern. Kennt Ihr RAM Bausteine mit zwei serielle Ports dran haben? Ist doch eine ganz ganz einfache Frage! Wenn jemand von sowas kennt, kann er darauf verweisen, und idas schaut dann, ob das auch für seine Anwendung geeignet ist. Warum sollten wir ihm diese Arbeit abnehmen und dafür noch genau lernern, WAS seine Anforderungen sind? Ich bin über Google mal auf die Schnelle auf das http://electronics.stackexchange.com/questions/4904/sram-which-two-chips-can-read-write gestossen. Weiss halt nicht, ob Dir das weiterhilft. Gruäss Simon
idas schrieb: >>Was du benötigst ist ein Dual-Port-RAM. > Das wäre zu schön > >>Und einfach ein größeres FPGA nehmen geht aus welchem Grund nicht? > Platz auf der Platine > > >>Wenn es Dir auf die Größe ankommt, dann nenn sie doch endlich mal. > 5x5mm, maximal 7x7mm >>Darf man Dir nochwas aus der Nase ziehen müssen (Zugriffszeit, VCC, >>...)? > Erforderlich sind 16k Register mit je 16 Bit Auflösung. VCC 3.3, Ein Spartan 6 XC6SLX16 hat 32k*18 bit Block-RAM und ist im CPG196 Gehäuse (8mm*8mm) verfügbar. Das sollte passen. Ach ja, jetzt fällt Dir ein, dass Du gerne ein einseitiges Layout haben möchtest. Tja, man kann halt nicht alles haben. fchk
Simon Huwyler schrieb: > Kennt Ihr RAM Bausteine mit zwei serielle Ports dran haben? Ist doch > eine ganz ganz einfache Frage! Ist sie leider nicht. Er gibt nur das Interface an, sonst absolut garnichts. Jeder weiß aber, daß ein Speicher ganz wichtige Parameter hat, wie Zugriffszeit und Speichergröße. Es gibt TTL-RAMs mit 16*4 Bit. Und im PC sind GByte drin. Du mußt zugeben, da ist ein kleiner Unterschied dazwischen. Genauso die Zugriffszeit bzw. bei SPI der maximale SCK. Ohne diese Hauptparameter zu kennen, kann man keinen passenden RAM finden. Es wäre purer Zufall, wenn er paßte.
Peter Dannegger schrieb: > Jeder weiß aber, daß ein Speicher ganz wichtige Parameter hat, wie > Zugriffszeit und Speichergröße. richtig. Peter Dannegger schrieb: > Genauso die Zugriffszeit bzw. bei SPI der maximale SCK. Du meinst also, er hätte das alles spezifizieren sollen, damit wir schon mal in den Datenblättern nachschauen können, ob denn dieser Chip genehm ist, damit der Fragesteller sich nicht durch zu viele Vorschläge wühlen muss? Die Millionen Vorschläge, die zu erwarten sind? Peter Dannegger schrieb: > Es wäre purer Zufall, wenn er paßte. Also, Probe auf's Exempel: Was kennt Ihr denn so für RAM Chips, die zwei serielle Ports dran haben? Ganz egal, ob kB oder GB. Ich denke, da werden nicht soooooo viele Vorschläge kommen. Und der TO kann sich dann sich dann die Mühe machen, zu entscheiden, welche passen und welche nicht.
>Ein Spartan 6 XC6SLX16 hat 32k*18 bit Block-RAM und ist im CPG196 >Gehäuse (8mm*8mm) verfügbar. Das sollte passen. Die erfordern leider extern ein Configprom, wird somit mehr Fläche beanspruchen. Werde mir den genauer anschauen. >Ach ja, jetzt fällt Dir ein, dass Du gerne ein einseitiges Layout haben >möchtest. Tja, man kann halt nicht alles haben. Bitte was?
Ich sehe schon, hier brodelt es. Leider nicht zu selten wird aus einer "einfachen" Frage ein Thema gemacht, über Netiquette gesprochen und die TO für dumm verkauft. @ Peter, mir ging es wie der Simon das schon geschrieben hat erst darum, ob jemand solche ICs kennt. Das Lesen der Datenblätter hätte ich selbst übernommen. Ich wollte hier nicht gleich potentielle "Wissende" mit Parametern erschlagen usw. Wenn ich nach einem SRAM suchen würde, der bei 3.3V mehr als 20MHz schafft und 64k x 8 Struktur hat, würde ich es auch konkret fragen. Aber Danke, anscheinend habe ich richtig gesucht, wenn sonst niemand einen Dual-Port SRAM kennt. Somit können wir die Diskussion beenden. Danke
idas schrieb: > Um die Kollisionen beim Zugreifen vom > FPGA und dem Cortex auf den RAM zu vermeiden, suche ich einen der am > besten zwei SPI Ports hat... Würde denn nicht folgendes gehen: Die Außenwelt redet mit dem FPGA. Der ARM redet mit dem FPGA. Der FPGA benutzt ein ganz normales 1-Port-RAM als Speichererweiterung und arbitriert intern den Zugriff. Dann mußt Du es so auslegen, daß beide Seiten ausreichend Datendurchsatz haben bzw. den Datendurchsatz so festlegen, daß es funktioniert.
Simon Huwyler schrieb: > Du meinst also, er hätte das alles spezifizieren sollen Ja, die 2 Zahlen hinschreiben tut doch nicht weh. Aber alles, womit man die Suche eingrenzen kann, hilft enorm. Oder hast Du noch nie Google benutzt? Und besonders, wenn man was exotisches sucht, ist jede weitere Angabe nützlich. Peter
@ idas (Gast) >Hallo Falk, ich wollte es nicht verkompliziert darstellen, deshalb die >konkrete Frage gewesen. Man kann es aber auch ungünstig verkürzt darstellen. Und jedes Problem hat mehr als eine Lösung. Die findet man aber nur, wenn man das Problem umfassend kennt. >abfahren soll. Das ganze soll einen recht großen Registersatz besitzen. >ließe sich mit dem FPGA lösen, der hat aber beim weiten nicht so viel >RAM. >>Wenn es Dir auf die Größe ankommt, dann nenn sie doch endlich mal. >5x5mm, maximal 7x7mm Verdammt wenig. baust du eine Handy? >Erforderlich sind 16k Register mit je 16 Bit Auflösung. VCC 3.3, Klingt nach 16.000 PWM Kanälen für ne LED-Wand ;-) >nicht wissen. Und im Posting (28.01.2013 09:19) habe ich alles >beschrieben, was nötig ist. Nein. Siehe oben. >eine konkrete Frage abgekürzt und dem Falk zuliebe alles ausführlicher >beschrieben. Falsch! MIR zuliebe muss hier keiner IRGENDWAS schreiben. Es ist DIR zuliebe, wenn du ein paar nützlich Tips zu Lösung DEINES Problems haben möchtest. Du wärst nicht der Erste und nicht der Letzte, der erst nach einerm Thread mit hunderten von Beiträgen endlich mal die wesentlichen Informationen rausrückt, die den Inhalt des gesamten Threads schlicht überflüssig machen. >idas hat eine ganz konkrete Frage gestellt. Und auf die wollte er eine >einfache Antwort, Kann er bekommen, hilft aber in den meisten Fällen nicht wirklich. Du gehst ja auch nicht zum Arzt und sagts "Mir tut der Arm weh" und bis genervt, wenn der Arzt Fragen stellt. > Er wollte nicht, dass wir hinterfragen, ob sein >Problem vielleicht auch anders gelöst werden kann. Er nicht, wir schon ;-) Denn solche Threads ala "stille Post" und wir refen gern und lang aneinander vorbei gibt es hier schon tonnenweise! >Ein Spartan 6 XC6SLX16 hat 32k*18 bit Block-RAM und ist im CPG196 >Gehäuse (8mm*8mm) verfügbar. Das sollte passen. Nicht, wenn 7x7mm eine ultimative Forderung sind. >Ich sehe schon, hier brodelt es. Leider nicht zu selten wird aus einer >"einfachen" Frage ein Thema gemacht, über Netiquette gesprochen und die >TO für dumm verkauft. Mal halblang. Das Thema Netiquette hat schon seinen Sinn, und ein Hinweis darauf ist nicht "für dumm verkaufen". Wollen wir ewig rumlabern, wie es in vielen Threads der Fall ist, oder ein Problem zielgerichtet lösen? >übernommen. Ich wollte hier nicht gleich potentielle "Wissende" mit >Parametern erschlagen usw. Sollst du auch nicht, aber ein paar wichtige Eckdaten wären schon sinnvoll. Siehe Netiquette ;-) >Aber Danke, anscheinend habe ich richtig gesucht, wenn sonst niemand >einen Dual-Port SRAM kennt. Somit können wir die Diskussion beenden. Dual Port RAM gibt es, Cypress ist ein großer Name für sowas. Aber Dual Port SPI hab ich noch nie gesehen.
Die Frage nach der Zugriffszeit (bzw. nach dem erwarteten Datendurchsatz) ist schon sehr sinnvoll, weil eine Antwort eventuell den Lösungsraum erweitern könnte. Wenn du z.B. maximal insgesamt nicht mehr als 1MB/s schreibst/liest, dann kannst du eventuell die Speicherzugriffe auf einen SPI auch multiplexen und brauchst keinen Dualported-RAM.
Bronco hat darauf im übrigen auch schon hingewiesen, dass du den Zugriff über den FPGA arbitrieren kannst. Wenn du Cortex und FPGA abwechselnden Zugriff gibst, dann ist das so, als hättest du deinen hypothetischen Dual-SPI SRAM mit halber Frequenz des tatsächlichen SPI SRAM.
Hallo, Dual Port Rams werden für HiSpeed-Anwendungen verwendet, dem widerspricht ein serieller Zugriff, daher ist es logisch dass es solche Bauteile nicht gibt. Anders formuliert, wenn man tatsächlich genug Zeit für SPI hat, kann man den Zugriff auch in dieser Zeit auch bequem multiplexen oder arbitrieren. Den Zugriff z.B. abhängig vom Takt zwischen den beiden Ports umzuschalten ist immer noch um ein Vielfaches schneller als ein serieller Zugriff. Gruss Reinhard
Also ich bin ja sonst auch gern Vertreter der allumfassenden Anfragen, aber hier kann ich nur dem TO beipflichten. Ein Dual-Port serielles RAM ist so selten, dass es sicher keine Schar an Herstellern gibt und man sich durch das übersichtliche Angebot auch selbst ein Bild machen kann, wenn man denn mal einen Hersteller kennt. Spätestens mit seinem zweiten post hat der TO alles gesagt und /vor allem/ deutlich gemacht, dass er kein Bastelkind wie 90% der Poster hier ist, sondern ein wirklich denkender Mensch.
Reinhard Kern schrieb: > Dual Port Rams werden für HiSpeed-Anwendungen verwendet, dem > widerspricht ein serieller Zugriff, daher ist es logisch dass es solche > Bauteile nicht gibt. Anders formuliert, wenn man tatsächlich genug Zeit > für SPI hat, kann man den Zugriff auch in dieser Zeit auch bequem > multiplexen oder arbitrieren. Den Zugriff z.B. abhängig vom Takt > zwischen den beiden Ports umzuschalten ist immer noch um ein Vielfaches > schneller als ein serieller Zugriff. Volle Zustimmung, genau das ist der Sachverhalt und die Lösung zu dem ganzen.
Michael H. schrieb: > dass er kein Bastelkind wie 90% der Poster hier > ist Danke für die Blumen. Ich dachte immer, es geht darum, ein Problem zu lösen. Jetzt weiss ich wenigstens dass ich schon deshalb unfähig bin weil ich hier was poste. Gruss Reinhard
Hallo Reinhard, nicht so selbstkritisch sein :) du hast nicht an Irgendeinem Punkt rumgehackt sondern was vorgeschlagen. Ich denke Michael hat dich nicht gemeint. @ Marco: Ich habe nach einem Dual-Port SPI gesucht, weil die Zeit zum für die arbitrierte Zugriffe nicht ausreicht. Wenn von der Außenwelt auf den Registersatz zugegriffen wird, soll der FPGA die Daten ohne Verzögerung liefern. Der uC sollte demnach die seine Zugriffe abbrechen. Auf dem Bus wird viel gelesen/weniger geschrieben. Die Zeitschlitze, die dem uC zum Updaten der Daten im Registersatz bleiben, sind minimal. Datenaufkommen ist jedoch groß. Aus diesem Grund kommt so ein One-Port SPI RAM leider nicht in Frage. Die Frage nach einem Dual-Port SPI hat sich hier wohl geklärt und kann als erledigt betrachtet werden.
idas schrieb: >>Ein Spartan 6 XC6SLX16 hat 32k*18 bit Block-RAM und ist im CPG196 >>Gehäuse (8mm*8mm) verfügbar. Das sollte passen. > Die erfordern leider extern ein Configprom, wird somit mehr Fläche > beanspruchen. Werde mir den genauer anschauen. Nicht wenn Du ihn über Deinen Cortex M konfigurierst. fchk
Meinst du den Cortex als eine Art SPI ConfigProm missbrauchen und die Daten im Flash lagern? Ginge theoretisch auch, ich weiß aber nicht (mangels Erfahrung mit Xilinx) wie Groß die ConfigFiles werden. Andere Sache gefällt mir da auch nicht und zwar braucht alleine FPGA Core schon einen halben Watt :(
Die Xilinx-FPGAs haben zum einen JTAG und zum anderen einen seriellen Konfigurationsport. Den kannst Du per Bootstrap-Pins unter anderem auf Master Serial (zur Verwendung mit Xilinx-Proms), Slave Serial (zum Konfigurieren über einen Controller) oder Master SPI (für SPI Flashes) setzen. Per Slave Serial kannst Du das Teil also von Deinem Controller konfigurieren, wobei die Daten entweder komprimiert im Flash des Controllers (es gibt ja auch Controller mit 1M Flash) oder auf einer MicroSD oder wasweissichwo liegen. Der XC6SLX16 braucht 3,713,568 Bit für seine Config, wenn Du mit dem XC6SLX9 auskommst, sind es nur 2,724,832 Bits. Das lässt sich im allgemeinen sehr gut komprimieren, und der Konfigurationsvorgang ist nicht zeitkritisch, solange das FPGA Slave ist. > Andere Sache gefällt mir da auch nicht und zwar braucht alleine FPGA > Core schon einen halben Watt :( Ja nu, das Leben ist kein Wunschkonzert. fchk
@idas http://www.mouser.com/ds/2/225/iCE40LPdatasheet120330-8680.pdf 3*3 mm ´36 PIN BGA und 7*7 mm ... Bauformen. Ist von Lattice iCE40 extra Low Power für Mobile Devices 20 uA. Verfügt über Dual-Ported Ram via RTL Design als "Glue Logic". Ist nur leider OTP wenn das Design im CHIP ROM ist. Alternativ Configt via externem. SPI-Flash-Rom. 2) http://www.actel.com/products/igloo/default.aspx Oder die Actel IGLOO spez. Nano IGLOO family true "dual-port" SRAM, PLLs, ... Gruss Holger.
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.