Forum: Mikrocontroller und Digitale Elektronik Cortex-M3 externer Speicher


von C. M. (chrisliebaer)


Lesenswert?

Hallo alle zusammen,

ich beschäftige mich aktuell mit dem LPC1788. Bisher habe ich nur 
Schaltungen mit den AVRs designed. Ich hab inzwischen das Datenblatt 
ausführlich studiert und mir bereits eine kleine Schaltung in EAGLE 
erstellt.

Das ganze soll ein Testboard für einen Quadrocopter werden (jedenfalls 
irgendwann villeicht mal ;)

Diverse Peripherie habe ich bereits beschaltet und auch mit der 
Grundschaltung des Mikrocontrollers habe ich keine Probleme.

Das einzige, was mir Kopfzerbrechen bereitet ist das externe 
Speicherinterface. Da es sich wie gesagt um ein Experimentierboard 
handelt, möchte ich mir ensprechende Freiräume für diverse Spaßprojekte 
offen halten, daher hatte ich vor dem Teil 512MB RAM zu verpassen. Das 
soll nur mal als Richtwert dienen, ich wäre auch mit weniger RAM 
zufrieden, jedenfalls sollte mehr als 32MB schon drin sein.

Mein Problem ist nur, dass ich im Internet auf teufel komm raus nichts 
finden kann, wie ich das anstellen muss. Ich suche z.B. immernoch solche 
großen Speicherbausteine.

Die nächste Frage ist dann, wie das Interface aussieht. Die kleinen AVRs 
arbeiten ja noch mit SRAM und R/W Strobes. Der Cortex scheint auch 
bereits mit richtigem PC RAM umgehen zu können. Wobei ich sagen muss, 
dass ich da bisher mit Speicher nicht so viel Erfahrung habe. Jedoch 
finde ich auch keine Quellen um mich in die Thematik einlesen zu können.

Könnt ihr mit da vielleicht Hilfestellungen geben?
- Opensource Projekte
- Bezugsquellen für deratige Bausteine
- Was für eine Speichertechnik ist empfehlenswert?
- Wie wichtig ist die saubere Leiterbahnführung? (Was für Frequenzen 
werden da gefahren, reicht einfaches paraelel führen?)
- Erfahrungen?

Schonmal Danke im Vorraus
Grüße Chris

von W.S. (Gast)


Lesenswert?

Chris R. schrieb:
> Der Cortex scheint auch
> bereits mit richtigem PC RAM umgehen zu können.

So kann und sollte man das nicht sehen. Sicherlich kann ein Cortex dank 
seiner 32 Bit breiten Adressen auf theoretisch 4 GB zugreifen, aber was 
man dann an einem praktisch realisierten Chip anschließen kann, ist 
Sache des dort vorhandenen Interfaces. Da mußt du in der Doku des 
betreffenden uC lesen, was man dort anschließen kann.

W.S.

von Holler (Gast)


Lesenswert?

Ich kenne mich weder mit dem M3 noch mit deinem Eval-Board aus, aber 
nach kurzem googlen scheint der NXP-Prozessor ein SDRAM Interface zu 
unterstützen.

SDRAM ist im PC-Bereich nicht mehr aktuell, das wars vor rund 10 Jahren.

Hinter diesem Link findest du Hinweise zum Anschluß eines 
Notebook-Speichermoduls, eines SODIMMs. Als SDRAM gabs die etwa bis 
128MByte, gibts bei ebay für 1€.

http://www.teamfdi.com/products/somdimm_lpc1788/manual/SOMDIMM-LPC1788%20Users%20Manual.pdf

Sie Seite ist nur sehr, sehr träge erreichbar.

von C. M. (chrisliebaer)


Lesenswert?

Holler schrieb:
> Ich kenne mich weder mit dem M3 noch mit deinem Eval-Board aus, aber
> nach kurzem googlen scheint der NXP-Prozessor ein SDRAM Interface zu
> unterstützen.

Hab grad nochmal im Datenblatt nach SDRAM gesucht. Peinlich :) das hab 
ich überlesen.

Hab auch mal bei Farnell und Co. geguckt, da finde ich auch 
Speichermodule in dieser Größe. Sehr schön :)

Hast du Erfahungen mit SDRAM? Wie empfindlich sind den die 
Signalleitungen gegen Störungen? Ich nehme mal an, die Frequenzen sind 
nochmal deutlich höher als bei SRAM. Oder würdest du mir sogar von SDRAM 
abraten, wenn ich bisher noch nie solche Bausteine verbunden habe?

von Frank K. (fchk)


Lesenswert?

Chris R. schrieb im Beitrag #2657118:

> Das ist aber alles kein Problem, ich find ich schon raus, aktuell ist
> nur das Problem, dass ich keine Ahnung habe, wo ich solche großen
> Speicherchips finde. Selbst Farnell scheint keine so großen
> Speichermodule zu führen.

SDRAM ist alte Technik. Die wird noch produziert, aber nicht mehr 
weiterentwickelt. Wenn Du größere Chips brauchst, musst Du zu LPDDR2 
greifen, was dann aber auch einen Controller erfordert, der LPDDR2 
ansteuern kann. Und schon bist Du bei BGA-Bausteinen.

Ich rede hier von sowas z.B.
http://www.micron.com/parts/dram/mobile-ddr2-sdram/mt42l256m32d4kp-25-it?pc={D2B035D1-1074-49F8-B6EC-95FB3317B0AC}

Die LP/mobile-RAMs haben gegenüber den normalen aus der PC-Welt einen 
deutlich geringeren Energiebedarf und sind für 
Embedded/Mobile-Anwendungen gedacht.

Und beachte bitte "Clock Rate: 400 MHz" Dafür musst Du Multilayer haben.

Viel Spaß noch damit.

fchk

von C. M. (chrisliebaer)


Lesenswert?

Ich hab den Beitrag von mir nochmal gelöscht, ich habe festgestellt, 
dass ich anstelle von SDRAM immer SRAM gelesen habe.

Speichergrößen von 128MB sind vollkommen ausreichend, wie gesagt, das 
ist nur, damit ich einfach Freiräume für Spaßideen hab.

Von daher würd mich eigentlich nurnoch interessieren, wie aufwendig die 
Leiterbahnführung für SDRAM ist. Funktioniert das noch, wenn man das als 
"Unerfahrener" einfach schön parralel Routet oder sind die Leitungen 
dafür zu empfindlich?

von Holler (Gast)


Lesenswert?

Wenn der Controller SDRAM von Haus aus unterstützt, wirst du kaum 
Probleme haben.
Willst du selbst eine Leiterplatte entwerfen? Dann darauf achten, dass 
die Verbindungen zum Speicher kurz und vor allem etwa in ähnlicher Länge 
sind. Geht auch mit nur 2 Lagen, hängt vom Platz ab.

SRAM ist in der Regel asynchron und hat ein gänzlich anderes Interface. 
Von Frequenzen kann man da nicht sprechen.

Der Hinweis von Frank K. zu DDR2-RAM bringt nur dann etwas, falls dein 
Controller diesen Speicher unterstützt. DDR2 an einem SDRAM Interface 
geht nicht.

von C. M. (chrisliebaer)


Lesenswert?

Laut Datenblatt untersütz der LPC 1788 SDRAM.

The LPC178x/177x External Memory Controller (EMC) is an ARM PrimeCell™ 
MultiPort [..] as well as !!dynamic memories such as Single Data Rate 
SDRAM!!. The EMC is an Advanced Microcontroller Bus Architecture (AMBA) 
compliant peripheral.



Ich fasse also zusammen: Ich kann mit diesem µC SDRAM ansteuern.

Sprich:
http://de.farnell.com/integrated-silicon-solution-issi/is42s16320b-7tli/sdram-ind-32m-x-16-3v-54tsop2/dp/1869963
Das hier wäre z.B. ein solcher Baustein? (Die Pinnamen im Datenblatt 
entsprechen zumindest mal denen im Datenblatt von µC).

Ich werd mir das Morgen nochmal alles durchlesen.

Vielen Dank für eure Hilfe

Grüße Chris

von Martin M. (capiman)


Lesenswert?

Vielleicht hilft es Dir weiter, mal die Infos von fertigen Evalboards
anzuschauen (die ersten Treffer, die ich beim Googeln gefunden habe...)

http://www.embeddedartists.com/products/kits/lpc1788_kit.php
http://www.embeddedartists.com/products/oem/lpc1788_oem.php
http://www.teamfdi.com/development-tools-kits/products/1/DK-57VTS-LPC1788
http://www.embedinfo.com/en/list.asp?id=107
http://www.thaieasyelec.net/index.php/ARM/miniSUN7-Basic-Option-LPC1788-ARM-Cortex-M3-Dev-Board-No-LCD-/p_212.html

Vielleicht gibt es auch Schaltungen, wo man direkt sieht,
wie diese am LPC1788 angeschlossen werden. Nächstes Problem ist,
dass der Speichercontroller im LPC1788 meist genau auf den
Speicher konfiguriert werden muss.
Auch nicht so ganz einfach, wenn man es noch nicht gemacht hat...

http://www.lpcware.com/content/forum/dk-57vts-lpc1788-configuring-emc-sdram

von Holler (Gast)


Lesenswert?

Chris R. schrieb:
> Ich fasse also zusammen: Ich kann mit diesem µC SDRAM ansteuern.
>
> Sprich:
> http://de.farnell.com/integrated-silicon-solution-...
> Das hier wäre z.B. ein solcher Baustein? (Die Pinnamen im Datenblatt
> entsprechen zumindest mal denen im Datenblatt von µC).

Ja, auf den ersten Blick müßte der gehen. Ist 64 MByte groß (32MB x 16 
Bit). Der Controller kann nach Datenblatt mit 16Bit Speicher umgehen. 
Wahrscheinlich verliert man etwas Performance, aber das PCB-Layout 
vereinfacht sich.

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.