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$.
Schau mal auf www.xilinx.com nach. Dort findest du verschiedene Entwicktungsboards und du kannst eine kostenlose Entwicklungssoftware downloaden.
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?
Für diese Aufgabe muss man nicht unbedingt mit einem DSP daherkommen. Ein normaler µC packt das auch locker.
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.
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.