Forum: Mikrocontroller und Digitale Elektronik MSP430 mit externem RAM beschaltbar?


von Sebastian Pischel (Gast)


Lesenswert?

Hallo,
wie sieht das aus, kann man an irgendeinen MSP430 externes RAM
anschließen? Ich würde gerne 128-512kByte externes Ram möglichst
einfach ansteuern, beim AVR muss man ja die oberen Adressleitungen
"per Hand" schalten. Oder kennt jemand einen 8 oder 16-bit µC, der
das kann und durch RISC einfach zu programmieren ist?
Achja: was es werden soll: ein einfaches Effektgerät für meinen E-Bass.
16-bit ADC und DAC per SPI oder parallel und eben das große RAM für
Delayeffekte. Ein bisschen Rechenleistung sollte schon übrig
bleiben...

Sebastian

von Thorsten (Gast)


Lesenswert?

Könntest du nicht einfach ein Dataflash benutzen? Funktioniert seriell,
und gibts z. B. mit 4MB von Atmel in einem SO8-Gehäuse.

von Rufus T. Firefly (Gast)


Lesenswert?

Wenn das RAM ganz einfach angesteuert werden soll, eben so, wie internes
RAM, dann wird ein 16-Bit-Prozessor dafür nicht genügen. Dessen
Adressraum ist zu klein dafür, so daß Bankingmechanismen etc.
erforderlich sind.

Geeignete Controller, die auch sehr viel mehr als 512K RAM ansteuern
können, SPI und diverse andere Schnittstellen haben, gibt's aber auch
- beispielsweise den LPC2214 von Philips. Das ist ein 32-Bit-Prozessor
mit ARM7-Kern - und für den gibt es auch vorzügliche
Entwicklungswerkzeuge.
Und Rechenleistung ist auch vorhanden.

Was magst Du mit "durch RISC einfach zu programmieren" meinen?

von Arvid Teichtmann (Gast)


Lesenswert?

@Sebastian,

Wenn Du ein Effektgerät suchst, würde ich eins kaufen, spart ne Menge
Zeit...
Digitale Audio-Signalverarbeitung ist nicht ganz trivial :-)

Wenn Du aus pädagogischen Gründen eins selber bauen willst, nimm keinen
MSP, PIC oder AVR, sondern mindestens einen LPC22xx oder besser einen
DSP. Für Audiosignalverarbeitung brauchst Du ordentlich RAM und
Rechenleistung. Der Prozessor sollte externe RAM-Ansteuerung
unterstützen, was der MSP und manche AVRs und PICs von Haus aus nicht
können.

@Thorsten
Einen seriellen DataFlash mit Audiodaten in Echtzeit (44,1kHz ?) zu
füttern und zu lesen ist mit einem MSP (max. 8MHz) unmöglich, wie eine
kurze Überschlagsrechnung ergibt. Ausserdem ist ein DataFlash schonmal
prinzipiell das falsche Speichermedium für Audiodaten, die sich ständig
ändern und in ein RAM gehören.

Gruss
Arvid

von Thorsten (Gast)


Lesenswert?

Ja Arvid, hast völlig recht. Hatte es so verstanden, daß du Effekte etc.
abspeichern wolltest die dann bei Bedarf ins RAM geladen werden sollen.
Also vergiss mein Beitrag :)

von Sebastian Pischel (Gast)


Lesenswert?

Hallo ihr,
danke erstmal,
mit "durch RISC leicht zu programmieren" meine ich einen
überschaubaren Befehlssatz und einen einigermaßen überschaubaren
Aufbau. Ich habe schon mit AVRs gebastelt, hatte das letzte Jahr aber
nur sehr wenig Zeit und habe mich riesig gefreut, ein winziges
GCC-Programm auf nem 2313 zum Laufen zu bekommen. Ich kenne mich nicht
so aus mit anderen Prozessorfamilien, aber die ca. hundert Seiten
Datenblatt sind schon ganz übersichtlich im Vergleich zu den 1200 eines
Renesas-µCs, den ich mir mal angesehen hatte. Der wird auch schon in
einer Minimal-Demo-Applikation in dem Starterkit mit einem 12kb(!)
großen Bootloader programmiert. Und hat ein TQFP-80 oder so mit 0.5er
Pitch, also schwierig verlötbar und wochenlange Arbeit, um eine Platine
dafür zu entflechten. Aber er hat nen DMA-Controller und kann 4MB Ram
adressieren.
Hab mal einen Blick auf den LPC2210 geworfen. Ich weiß nicht, wo ich
mit den 144 Pins hin soll ;-) Hab auch schon mal nach den DSPs von TI
geschielt, aber erscheint mir auch zwei Nummern zu groß für mein
Vorhaben.
Am liebsten wäre mir ein AVR mit 20 externen Adressleitungen.
Ursprünglich wollte ich das mit nem Mega8515 probieren und die 512 kB
auf 64kB-Bänke verteilen. Ich will auch keine riesigen Sprünge machen,
hauptsächlich mit ein paar Delay- oder Echo-Effekten rumspielen. Dabei
dachte ich an eine Basisstrategie wie ADC in einen (sehr großen)
Ringpuffer einlesen, Sample an einer anderen Stelle auslesen und an den
DAC schicken. Vielleicht etwas Mischen, Dynamik verändern, also
Kompressor oder so. SO viel Rechenleistung will ich gar nicht
verbraten, da ich gar nicht die Zeit und das Wissen habe, so viel zu
rechnen. Aber ist immer praktisch, wenn man noch mehr machen kann, wenn
man neues dazulernt. Also so ein nie-fertig-Projekt, was aber schon
laufen sollte, wobei sich das "nie fertig" auf den Funktionsumfang
bezieht.
Ich hoffe, damit habt ihr ein grobes Bild, was ich machen will. Kennt
jemand eine Seite, wo bekannte µC-Familien mit ihren Features
verglichen werden und wo man eine Lösung finden könnte?
MfG, Sebastian

von Sebastian (Gast)


Lesenswert?

Ich kann dir auch nur empfehlen, es mit einem anderen µC zu versuchen,
beispielsweise mit einem C167. Den gibt es auf Phytec-Boards mit
einigen MB externem RAM (ich habe ein paar ältere Boards mit 1MB und
4MB gesehen, keine Ahnung, was es aktuell noch neueres gibt). Der kann
über 20MHz, da sollten ohne Probleme einfache Delay-Effekte drin sein.
Nachteil: Das Board kostet mehr als ein komplett fertiges Effektgerät,
vermute ich. ;-)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Er schrieb "einen überschaubaren Befehlssatz und einen einigermaßen
überschaubaren Aufbau", somit dürfte der C16x schon mal rausfallen.

von Jürgen Schuhmacher (Gast)


Lesenswert?

Ein C16x ist in der Tat kein überschaubarer Proz. Wen es aber um
Musikprogrammierung geht, würde ich eher zu einem programmierbaren
Gerät wie der Chameleon raten:

http://home.arcor.de/juergen.schuhmacher/chameleon.html

Die frisst C/C++ und man kann - wenn man will - allein auf der
musikalischen Applikationsebene bleiben. Es gibt bereits eine software
für Gitarreneffekte, die erweitert werden kann. Ausserdem steht es
jedem frei tiefer einzutauchen und die beiden CPUs in Assembler direkt
zu programmieren.

Das derzeitge Auslaufgerät kostet um die €450,-

von Manfred Wujesch (Gast)


Lesenswert?

Hallo Sebastian,

schau dir mal unter folgendem Link
http://www.olimex.com/dev/msp-169stk.html
das ganze an.

Dort wird ein Entwicklungsboard vorgestellt, auf Basis eines
MSP430F169,
mit zusätzlichen 8MB Speicher. Vielleicht ist es das, was du suchst!!

von Rufus T. Firefly (Gast)


Lesenswert?

@Manfred: Die zusätzlichen 8 MB sind FLASH-ROM und daher nicht für
häufiges Beschreiben geeignet.
Das ist letzlich nichts anderes als eine SmartMedia/xD-Card, die kann
man sich auch selbst an den Controller häkeln.

(SM/xD haben exakt dasselbe Interface wie das hier verwendete
Flash-ROM).

Einen einfachen Zugriff auf externes RAM gibt es nur bei Prozessoren,
die externes RAM auf dieselbe Art und Weise ansprechen wie ihr internes
RAM. Kombiniert man das mit der Forderung nach mehr als 64 kByte, dann
fallen Prozessoren wie die MSP430-Reihe und auch die AVR-Reihe flach,
oder es müssen wieder Kompromisse wie Bankumschaltung etc. eingegangen
werden.

Da eingangs der Wunsch geäußert wurde
  "[...] 128-512kByte externes Ram möglichst einfach an[zu]steuern,
  beim AVR muss man ja die oberen Adressleitungen "per Hand"
  schalten."

gehe ich hier von linear adressierbarem RAM aus. Und das ist eben was
anderes als Bankumschaltung, das geht nur mit Prozessoren mit
ausreichend großem Adressraum - 32-Bit-Prozessoren halt. ARM, 68k ...

Allerdings ist die Gleichsetzung "RISC - überschaubarer Befehlssatz"
gewagt. Lediglich bei einigen 8-Bit-RISC-CPUs wie eben der AVR-Reihe
trifft das zu, andere RISC-Prozessoren sind nicht wirklich
übersichtlich. Ich bin mir nicht sicher, ob ich einen ARM wirklich in
Assembler programmieren wollte.

Aber warum auch? Dafür gibt es exzellente C-Compiler.

Das Problem der 144 Pins des LPC2210 ist mit Adapterplatinen oder so
etwas
http://www.olimex.com/dev/lpc-h2214.html
durchaus in den Griff zu bekommen. Mit 90 USD ist das für ein
Entwicklungsmuster auch gar nicht so irrwitzig teuer; immerhin ist hier
1 MByte sehr schnelles SRAM, 1 MByte zusätzliches Flash-ROM und eine
FTDI-USB-Schnittstelle gleich mit dabei.

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.