Einen einfachen DSP zum Starten

T

Thomas Pototschnig

Guest
Hallo,

ich bin jetzt an eine Anwendung geraten, bei der ich 2 Kanal Stereo mit
16Bit, 44Khz samplen muss (oder höher), das gesampelte digital aufbereiten
will (z.B. Dynamic Compressor, Equalizer, ...) und das dann wieder in Analog
umwandeln will.

Ich hab viel Erfahrung mit normale Microcontroller, möchte aber diese
Gelegenheit nutzen, um mich in die Welt der DSPs einzuarbeiten.

Um Antworten wie "Mach das doch analog" zu vermeiden, sag ich gleich ich
WILL es digital machen ;-)

Meine Frage ist, ob es noch relativ hantliche DSPs gibt, die über A/D und
D/A (min 16 Bit) verfügen, für die es vielleicht auch freie C Compiler gibt.

Bedanke mich im Voraus :)

Thomas Pototschnig
 
In MaWins FAQ bin ich auf folgende Seite gestoßen:
http://www.dspguide.com/

ist ein sehr interessantes Buch rund um die DSPs, das man auch frei
downloaden kann - sehr interessant.

Mittlerweile hab ich auch rausgefunden, dass zum Beispiel Texas Instruments
einen 24x DSP hat, den es in PLCC68 Bauform gibt - allerdings kann das Ding
nur 20MHz.

Mir fehlt leider die Erfahrung mit DSPs um einschätzen zu können, ob mir die
Leistung ausreicht - aber ich kann mir vorstellen, dass ich für meine Zwecke
keinen Leistungsstärkeren DSP brauche ...

Freie C-Compiler hab ich allerdings noch nicht gefunden ...



"Thomas Pototschnig" <thomas.pototschnig@gmx.de> schrieb im Newsbeitrag
news:2n2b7iFrrarqU1@uni-berlin.de...
Hallo,

ich bin jetzt an eine Anwendung geraten, bei der ich 2 Kanal Stereo mit
16Bit, 44Khz samplen muss (oder höher), das gesampelte digital aufbereiten
will (z.B. Dynamic Compressor, Equalizer, ...) und das dann wieder in
Analog
umwandeln will.

Ich hab viel Erfahrung mit normale Microcontroller, möchte aber diese
Gelegenheit nutzen, um mich in die Welt der DSPs einzuarbeiten.

Um Antworten wie "Mach das doch analog" zu vermeiden, sag ich gleich ich
WILL es digital machen ;-)

Meine Frage ist, ob es noch relativ hantliche DSPs gibt, die über A/D und
D/A (min 16 Bit) verfügen, für die es vielleicht auch freie C Compiler
gibt.

Bedanke mich im Voraus :)

Thomas Pototschnig
 
Thomas Pototschnig wrote:

Meine Frage ist, ob es noch relativ hantliche DSPs gibt, die über A/D und
D/A (min 16 Bit) verfügen, für die es vielleicht auch freie C Compiler gibt.
Von AD gab es vor einiger Zeit mal ziemlich günstige Evaluation-Boards
mit Stereo I/O on board, über die Serielle Programmierbar und natürlich
mit Flash. Nur ein kleines Netzteil brauchte man noch dazu.
Ich weiß nicht mehr was das genau für Chips waren, aber sie waren genau
für diese Zwecke geeignet. Ich hätte mir seinerzeit beinahe eine
gekauft, bin aber dann nicht dazu gekommen.
Ist vielleicht ein Ansatzpunkt zum Suchen.


Marcel
 
Thomas Pototschnig wrote:

Freie C-Compiler hab ich allerdings noch nicht gefunden ...
Ich bin mir jetzt sowieso nicht sicher, inwiefern DSP mit C Spass
macht. Das wenige HW DSP, das ich bislang gemacht habe war in
ASM und da sind teilweise so spezielle Sachen dabei, dass ich
nicht wĂźsste wie man die in C abbilden soll. HĂśchstens per
inline funktion, die dann diese ASM Konstrukte beinhaltet.

Aber da ist man dann eher auf ensprechende Bibliotheken
angewiesen und inwiefern die frei erhältlich sind ist dann auch
noch abzuklären.

Wo ich erfahrung habe, ist die Programmierung von SW DSP,
immerhin hat das Soundsystem meiner 3D Engine (die hoffentlich
bald fertig wird) ein solches eingebaut um Umgebungseffekte
unahbängig von HW und Treiberunterstßtzung zu ermÜglichen.
Sollte gleichwertige ( => EAX3 oder besser ) UnterstĂźtzung
seitens der HW vorhanden sein, wird natĂźrlich der Performanz zu
liebe auf diese Umgeschaltet.

Wolfgang
 
"Wolfgang Draxinger" <wdraxinger@darkstargames.de> schrieb im Newsbeitrag
news:ceigtn$ad4$1@svr7.m-online.net...
Thomas Pototschnig wrote:

Freie C-Compiler hab ich allerdings noch nicht gefunden ...

Ich bin mir jetzt sowieso nicht sicher, inwiefern DSP mit C Spass
macht. Das wenige HW DSP, das ich bislang gemacht habe war in
ASM und da sind teilweise so spezielle Sachen dabei, dass ich
nicht wüsste wie man die in C abbilden soll. Höchstens per
inline funktion, die dann diese ASM Konstrukte beinhaltet.
Also - DSP macht "Spaß" mit C. Spezielle Sachen (z.B. FFT o.ä.) nimmt man
doch immer aus Libraries, die von TI (oder welchem Fabrikat auch immer)
meistens zum Download angeboten werden. Diese Libraries sind ja meist auch
in Assembler, und für spezielleres kann man im C-Code ja auch Assembler-Code
einbinden. Ich denke, wirklich speziellere Sachen sind ohne C "spaßlos".
Natürlich geht Assembler schneller usw... - die allte Diskussion eben. Aber
Optimieren kann man immer noch, sobald man muß bzw. weiß, wie der Compiler
was umsetzt, das kann man ja auch nachvollziehen.

Ich habe eine Zeitlang mit dem F2812 von TI gearbeitet, für den gibt es ein
Starterboard (eZdsp) um rund 200?.
Der Prozessor läuft auf 30 Mhz und hat eine interne Taktvervielfachung auf
150MHz. Ist also gut zu gebrauchen.
Ich hab aber leider keine Erfahrung mit selbstgebauten DSP-Boards.
Zu solchen Fragen wissen wahrscheinlich die bei comp.dsp mehr (allerdings
kann man da ganz schön lange warten, bis jemand antwortet, da können wir
alle ganz glücklich sein mit der de.sci.electronics-newsgroup! :) danke an
alle hauptposter ;-))

Vielleicht hilft auch die comp.dsp FAQ
(http://www.bdti.com/faq/dsp_faq.htm). Unter Punkt 3 schreiben sie auch was
von "free C compiler".

Hoffe, das hilft!

LG
Simone
>
 
"Thomas Pototschnig" <thomas.pototschnig@gmx.de> schrieb im Newsbeitrag
news:2n3mreFc9o99U1@uni-berlin.de...
In MaWins FAQ bin ich auf folgende Seite gestoßen:
http://www.dspguide.com/

ist ein sehr interessantes Buch rund um die DSPs, das man auch frei
downloaden kann - sehr interessant.

Mittlerweile hab ich auch rausgefunden, dass zum Beispiel Texas
Instruments
einen 24x DSP hat, den es in PLCC68 Bauform gibt - allerdings kann das
Ding
nur 20MHz.
Hallo Thomas,
mit 16bit DSPs auf 16bit Genauigkeit zu kommen ist bei Filtern eine Qual.
Da mußt du nämlich gleich mit doppelter Genauigkeit(32bit statt 16bit)
rechnen. Da es dafür dann keine direkten Befehle gibt, muß man das per
Software erschlagen. Das bedeutet, daß man die versprochene Leistung(bei
16bit)
für 32bit gleich mal durch 10 teilen kann. Also z.B. statt 40MIPS dann 4
MIPS.
Das wird also nix mit 24xx für 16bit Audio.

Früher gabe es da noch Motorola mit 24bit DSPs, aber irgendwie wurden
die wohl von den Fließkomma-DSPs aus dem Audio-Segment verdrängt.
Am einfachsten wäre also sicher ein DSP mit Fließkomma(floating point)
zu programmieren. Da geht dann 16bit rein und du kannst sicher sein,
daß auch die 16bit Auflösung wieder herauskommen.

ADSP21065?
http://www.analog.com/processors/epProductPage/0,2542,ADSP-21065L,00.html

Von TI gäbe es dann entsprechend C67xx

Vielleicht weiß ja jemand wo man da bezahlbare Eval-Boards mit Software
bekommt.

Gruß
Helmut
 
Marcel Müller wrote:

Thomas Pototschnig wrote:

Meine Frage ist, ob es noch relativ hantliche DSPs gibt, die über A/D und
D/A (min 16 Bit) verfügen, für die es vielleicht auch freie C Compiler
gibt.


Von AD gab es vor einiger Zeit mal ziemlich günstige Evaluation-Boards
mit Stereo I/O on board, über die Serielle Programmierbar und natürlich
mit Flash. Nur ein kleines Netzteil brauchte man noch dazu.
Ich weiß nicht mehr was das genau für Chips waren, aber sie waren genau
für diese Zwecke geeignet. Ich hätte mir seinerzeit beinahe eine
gekauft, bin aber dann nicht dazu gekommen.
Ist vielleicht ein Ansatzpunkt zum Suchen.
Das dürfte das EZ-Kit Lite
(http://www.mikrocontroller.net/wiki/EZ-Kit_Lite) gewesen sein; wird
leider nicht mehr hergestellt, wenn man's trotzdem noch irgendwo findet
ist es aber recht brauchbar. Es gibt sogar einen (ca. 10 Jahre alten)
GCC dafür.

Und dann gab es vor ein paar Monaten auch noch ein Blackfin-Kit für 99$,
da war ein 600 MHz-Fließkomma-DSP drauf und ein zeitbeschränkter
C-Compiler dabei.
 
Thomas Pototschnig schrieb:

Meine Frage ist, ob es noch relativ hantliche DSPs gibt, die über A/D und
D/A (min 16 Bit) verfügen, für die es vielleicht auch freie C Compiler gibt.
Ich weiß, was aktuell an günstigen DSP Einsteigerkits vertrieben wird,
aber sowas ist in der Regel die beste Variante, damit anzufangen. Das
gibts/gabs von Motorola, TI, AnalogDevices. Einige Kits als klassische
Audio-Module mit A/D-DSP-D/A.

Die Motorola 56K waren mal sehr verbreitet im Audiobereich, es gab auch
Unmengen von üblichen Audiostandardsourcen dafür. Leider hat Motorola
das nicht so richtig weiterbetrieben, und AD und TI führen da deutlich,

- Carsten





--
Audio Visual Systems fon: +49 (0)2234 601886
Carsten Kurz fax: +49 (0)2234 601887
Von-Werth-Straße 111 email: audiovisual@t-online.de
50259 Pulheim / Germany WGS84:N50°57'50.2" E06°47'28.5"
 
Thomas Pototschnig schrieb:

Mittlerweile hab ich auch rausgefunden, dass zum Beispiel Texas Instruments
einen 24x DSP hat, den es in PLCC68 Bauform gibt - allerdings kann das Ding
nur 20MHz.
Die Taktfrequenz ist da erstmal relativ irrelevant. In der Regel haben
die Hersteller bestimmte Performancebeispiele in den
Produktdatenblättern angegeben.

Mir fehlt leider die Erfahrung mit DSPs um einschätzen zu können, ob mir die
Leistung ausreicht - aber ich kann mir vorstellen, dass ich für meine Zwecke
keinen Leistungsstärkeren DSP brauche ...
Wenn Du partout C machen willst, wirst Du um einen leistungsstarken DSP
kaum herumkommen.
Die kleineren Dinger in Assembler programmiert schaffen die üblichen
Audioalgorithmen mit links.

- Carsten



--
Audio Visual Systems fon: +49 (0)2234 601886
Carsten Kurz fax: +49 (0)2234 601887
Von-Werth-Straße 111 email: audiovisual@t-online.de
50259 Pulheim / Germany WGS84:N50°57'50.2" E06°47'28.5"
 
In article <410E26ED.C7B4ADB5@t-online.de>,
Carsten Kurz <audiovisual@t-online.de> writes:

|> Wenn Du partout C machen willst, wirst Du um einen leistungsstarken DSP
|> kaum herumkommen.
|> Die kleineren Dinger in Assembler programmiert schaffen die üblichen
|> Audioalgorithmen mit links.

Wenn man die Algorithmen aber selber schreibt und nicht auf fertige Makros
zurückgreifen kann, kann es je nach Architektur übel werden.

Der 56k war ja ganz nett für alles, was sich in a=a+b*c pressen lässt, aber alles
andere (Viterbi etc.) wird grauslich. Der C6x ist zwar an sich von Befehlen und
Registern her ein Universalprozessor und damit theoretisch leicht in Assembler zu
programmieren, "dank" VLIW und der unzähligen zu beachtenden
Pipelineabhängigkeiten möchte man das aber eigentlich auch nur gegen
Schmerzensgeld...

--
Georg Acher, acher@in.tum.de
http://wwwbode.in.tum.de/~acher
"Oh no, not again !" The bowl of petunias
 

Welcome to EDABoard.com

Sponsor

Back
Top