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
Könntest du nicht einfach ein Dataflash benutzen? Funktioniert seriell, und gibts z. B. mit 4MB von Atmel in einem SO8-Gehäuse.
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?
@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
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 :)
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
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. ;-)
Er schrieb "einen überschaubaren Befehlssatz und einen einigermaßen überschaubaren Aufbau", somit dürfte der C16x schon mal rausfallen.
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,-
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!!
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.