Forum: Mikrocontroller und Digitale Elektronik RAM mit SPI und zwei Eingängen


von idas (Gast)


Lesenswert?

Kennt jemand solche ICs, die sich seriell über zwei Ports 
beschreiben/auslesen lassen? Ich finde nur mit parallelen 
Schnittstellen...

von Maier (Gast)


Lesenswert?

Als RAM nicht aber als EEPROM -> CAT24C208 unter 
http://www.onsemi.com/pub_link/Collateral/CAT24C208-D.PDF

von Falk B. (falk)


Lesenswert?

Kaum bis gar nicht. Beschreibe was du erreichen willst, dann kann man 
dir helfen. Siehe Netiquette.

von Christian K. (christian_rx7) Benutzerseite


Lesenswert?

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

von idas (Gast)


Lesenswert?

>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...

von Star K. (starkeeper)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

Und einfach ein größeres FPGA nehmen geht aus welchem Grund nicht?

fchk

von Peter D. (peda)


Lesenswert?

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.

von idas (Gast)


Lesenswert?

>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.

von Peter D. (peda)


Lesenswert?

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.

von Simon H. (simi)


Lesenswert?

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

von Frank K. (fchk)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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.

von Simon H. (simi)


Lesenswert?

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.

von idas (Gast)


Lesenswert?

>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?

von idas (Gast)


Lesenswert?

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

von idas (Gast)


Lesenswert?

PS: Dual-Port SRAM mit seriellem Interface, versteht sich.

von Bronco (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@  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.

von Marco M. (marco_m)


Lesenswert?

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.

von Marco M. (marco_m)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von Michael H. (michael_h45)


Lesenswert?

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.

von Michael H. (michael_h45)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von Michael H. (michael_h45)


Lesenswert?

...
90% der TOs.

von idas (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von idas (Gast)


Lesenswert?

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 :(

von Frank K. (fchk)


Lesenswert?

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

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

@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
Noch kein Account? Hier anmelden.