Hallo erstmal,
ich hätte eine Frage bzw den Wunsch nach einem Tip:
Mein Problem ist das folgende: Ich habe in sowohl in Labview als auch in
Matlab einen FIR Filter entwicklet, der auch mittels Soundkarte etc auf
dem PC soweit nett funktioniert. Jetzt würde ich gerne einen DSP dazu
überreden an die Stelle des PC´s zu treten, um zum einen eine gewisse
Echtzeitfähigkeit zu erreichen und zum anderen ein Standalonegerät zu
haben, welches die gewünschte Filterung ausführt.
Jetzt würde ich mich freuen wenn ihr da einen Tip hättet, wie ein
nächster Schritt aussehen sollte also auch welche Hardware geeignet
wäre. Ich habe mich natürlich auch hier im Forum schon umggeguckt und
kann mir denken einge werden mir sicherlich eines der diversen
Evalborads empfehlen. Würde ich mir wahrscheinlich selber auch, nur ist
die sache, dass ich wie gesagt, das Endprodukt weiter verbauen möchte,
was ja nicht wirklich sinn und zweck eines evalboards ist.
Nochmal in kürze und ohne gelaber:
- geg. filterkoeffizienten, anwendungsgebiet audio
- ges. passende (s.o.) Hardware und nützliche Tips :-)
Also schon mal vielen dank für eure Mühe :-)
Prinzipiell sind floating point DSPs einfacher zu programmieren als
fixed point; mit fixed point ist das immer ein ziemliches Gefrickel. Als
Anfänger würd ich mir das nicht antun.
Du wirst für deinen Anwendungszweck sowohl bei TI als auch bei Analog
fündig werden. Problem bei der Sache ist, dass die leistungsfähigeren
DSPs in grossen BGA Gehäusen kommen und die PCBs dann auch meist 4lagig
sind. Selbst herstellen ist fast nicht möglich. Bleibt also nur die
Möglichkeit ein fertiges Board zu kaufen. Da liegt der Hase im Pfeffer:
Die Dinger sind nicht billig. Das C6713 Evalboard von TI kostet glaube
ich 400$ und das ist eines der günstigeren.
Die Frage ist nun was willst du machen? Einen DSP für diese eine
Anwendung für möglichst wenig Geld oder doch lieber was "Grösseres" zum
experimentieren? Wenn du eine Platine selbst entwickeln willst brauchst
du auch immer noch die Entwicklungsumgebung (CodeComposer Studio bei TI)
, die auch nicht billig ist. CC Studio glaube ich an die 4000$.
Zum Experimentieren würd ich das C6713 Evalboard empfehlen. Da ist alles
komplett, auch mit CC Studio. Sind halt auch 400$.
Danke für eure Anworten.
Also in diesem konkreten Fall, wäre ich an einen kostengünstigen und
mehrmals reproduzierbaren Möglichkeit interessiert, da der Dsp ausser
der Filterung nichts tun soll. Für weiteres werde ich mich dann auch mal
nach einem evalboard umgucken, nur wie gesagt für diese konkrete
anwendung wäre es anders besser, da ich wie beschrieben nur die
funktionen: rein, filtern, raus benötige. Evalboards hätten ja wietaus
mehr möglichkeiten, die ich immom nicht brauche. Vielleicht gibts da ja
was?
Wie weit kann ich denn einen normalen uC nutzen? Es müssen schon eine
ganze Menge Filterkoeffizienten (je mehr desto besser) und mit geringer
Latenz verarbeitet werden.
Na wenn du nur eine ganze Menge Filterkoeffizienten verarbeiten musst,
kommst du auch mit einem µC ganz schön weit. Alles klar? Nein. Werde dir
über deine Anforderungen klar, dann kannst du entscheiden, ob ein µC
ausreicht. Mit einem ARM7 hast du pi mal Daumen 300 - 1000 Befehle pro
Sample. Wenn du mit einem IIR Filter leben kannst, reicht vielleicht
auch ein AVR. Ein FIR mit ganz schön vielen Koeffizienten braucht halt
auch ganz schön viel Rechenzeit. Das mit der Latenz überlegst du dir
bitte nochmal genau. Das ist nämlich Nonsense. Die Arbeit wird nicht
weniger, wenn man sie länger hinauszögert.
Danke für den Hinweis, wobei ich den mitschwingenden Unmut in der
Antwort nich nachvollziehen kann, es wird niemand zum posten
gezwungen...
Zurück zum Thema: FIR Filter und schnellstmögliche Abarbeitung sind
notwenig, ich denke, dass das doch ne recht klare Anforderung ist. Auch
bringt mir die Verwendung eines uC auch keine Erfahrung mit DSPs die ich
mir auch aus dem ganzen erhoffe.
Worin liegen die konkreten Probleme eine Platine nach seinen
Anforderungen aufzubauen? Abgesehen von den natürlich heftigen Kosten
einer IDE. Die Einzelteile sind meinen Recherchen zufolge nich übermäßig
teuer. Ist es die Verarbeitung?
> FIR und schnellstmögliche Abarbeitung
ist vergleichbar mit: Bau mir das bestmögliche Auto mit vier Rädern.
Bleibt noch die Frage, nach welchem Kriterium genau das Auto optimiert
werden soll. Höchstgeschwindigkeit, Raumangebot, Kosten? Ah, schreibst
du ja selbst schon:
> kostengünstigen und mehrmals reproduzierbaren Möglichkeit
Zielkonflikt.
Im Prinzip wurden hier alle relevanten Möglichkeiten genannt. PC,
floatingpoint DSP, fixedpoint DSP, FPGA, µC. "Schnellstmöglich" sind mit
Sicherheit die DSPs und FPGAs. Teuer allerdings auch. Bei den DSPs
kommen schnell einige tausend Euro zusammen, weil du die
Entwicklungswerkzeuge brauchst (und bezahlen musst). FPGA boards bekommt
man ab ca 100 Ören, Software ist kostenlos, der Schaltungsaufwand bei
selbst herzustellenden Platinen nicht zu vernachlässigen. Die
Entwicklungsarbeit hat dann nur noch wenig mit programmieren zu tun. Die
größeren und schnelleren Chips gibt es nur noch als BGA. Einen ARM7 kann
man zur Not auch noch selbst mit einem Codec auf eine Platine pappen.
MAC kennt er. Kommt eben auf deine Anforderungen an (die du so
unglaublich dämlich-ungenau formulierst, daher der Unmut). Ein Parallax
Propeller wäre sicher auch geeignet und das sogar in DIP.
Digitale Signalverarbeitung hat nicht zwangsläufig einen DSP zur Folge.
Was du lernen sollst ist z.B. einen Filter zu entwerfen und mit den
Problemen der Abtastung und der begrenzten Auflösung umzugehen. Die
Implementierung unterscheidet sich nicht mehr so großartig, weil die
Compiler mittlerweile ziemlich gut sind und es fertige Funktionen gibt.
Da muss man auf einem µC fast mehr von Hand machen.
Hi habe eure Diskussion verfolgt und leider haben sich mir nun mehr
Fragen gestellt als Antworten gegeben :-(.
Aber ich habe ja auch selber zwei Hände um nachzufragen:
- Gibt es keine andere Möglichkeiten z.B. einen TI Dsp zu programmieren
als mit Code Composer Studio oder entsprechend bei anderen Herstellern?
- Hab ich richtig verstanden, dass es schwieriger ist, einen DSP zu
verbauen als einen µC? Wenn ja warum?
- Worin bestehen die konkreten Probleme eine eigene Platine mit
Prozessor, Wandler und Stromversorgung zu ertstellen? Eine Prototyp
Platine ist ja für unter 100€ erhältlich, sodass das ätzen als ggf
Problem entfällt.
Danke für eure Antworten und verzeiht mir, dass ich manchen Profi ggf
die Hände überm Kopf zusammenschlagen lassen. Alles Anfang ist schwer.
Mfg Peter
Für die Blackfins von AD gibt es afaik einen GCC-port. Allerdings weiß
ich nicht, wie gut der ist. DSPs haben gerne ihre Eigenheiten, weil sie
auf die parallele Verarbeitung von Daten ausgelegt sind. Das ist für
einen sehr allgemein gehaltenen Compiler wie den GCC besonders schwer.
Ob es für die TIs auch was gibt, weiß ich nicht. Google ist dein Freund.
DSPs spielen idR in einer ganz anderen Liga als µCs. Dementsprechend
sind die Taktraten höher, haben mehr Pins etc. Das macht die ganze Sache
kompliziert. Es versucht ja auch niemand einen aktuellen Pentium auf
eine Lochrasterplatine zu packen. Natürlich sind auch hier die Grenzen
fließend. Einen TMS320 mit 60 MHz bekommt man vielleicht noch ans
Laufen. Allerdings kann der dann auch nicht so viel mehr als ein
schneller µC. Eine Platine für die 6000er Serie z.B. mit ca 1 GHz
schüttelt man nicht mal eben so aus dem Ärmel.
Konkrete Probleme? Das Zeug wird unglaublich komplex. Viele Pins, DDR2
Speicherinterfaces usw. Dazu braucht es meist noch glue-logic (CPLD,
FPGA), um externe Wandler ansteuern zu können. Alles in allem für eine
simple Audio-Anwendung wie oben imo völliger Overkill.