Forum: Digitale Signalverarbeitung / DSP / Machine Learning Verwirrung: Gängige (Audio)-Interfaces eines DSP zu DACs & ADCs


von Paul H. (powl)


Lesenswert?

Ich versuche gerade mir eine Kombination aus DACs, ADCs und einem DSP 
zusammenzustellen, mit der ich eine Konfiguration aus 1 Stereo-Eingang 
und 2 Stereo-Ausgängen zusammenschließen kann. Ich möchte gängige 
Audio-Verarbeitung wie Frequenzweichen, parametrische Equalizer, Limiter 
usw implementieren (eigentlich recht ähnlich dem bekannten miniDSP, der 
mir aber zu unflexibel ist).

Meine hauptsächliche Einstiegshürde ist, dass ich nicht durchblicke, 
welche Schnittstellen hier gängig sind. Da scheint es bei den DACs und 
ADCs ja verschiedenste zu geben:

I2S (Klassiker, nur für Stereo?)
Left-Justified
Right-Justified
PCM
DSP
TDM
SAI (Serial Audio Interface?)
AC'97

Ich blick nicht durch. Was ist nun zu was kompatibel. Welche 
Schnittstellen muss dann der DSP haben? Warum gibt es überhaupt so viele 
Schnittstellen für ein und den selben Anwendungszweck?

I2S scheint ja der Klassiker zu sein. Jedoch brauche ich pro 24-Bit 
Stereo eine I2S-Schnittstelle, in meinem Fall (1in 2out) also 3? Warum 
haben so viele DSPs nur 1 oder 2 I2S-Schnittstellen wo doch sicher sehr 
oft mal eben 6...8 und noch mehr gefragt wären?

Bekommen die DACs ihren Takt direkt vom Prozessor? Muss der Prozessor 
für 48kHz Samplingrate also seine Daten mit x*48kHz Bittakt rausshiften? 
Oder haben die DACs ihren eigenen Buffer und ihre eigene Takterzeugung?

Ich werde das Gefühl nicht los etwas grundlegend nicht verstanden zu 
haben. Was nützt mir hohe Rechenleistung ohne kompatible Schnittstellen?

Und noch eine Frage an die erfahrenen Audio DSPler oben drauf: Nach wie 
viel MHz sollte ich mich bei den genannten Anforderungen umgucken?

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Warum gibt es überhaupt so viele
> Schnittstellen für ein und den selben Anwendungszweck?

Hat sich halt so entwickelt. Zumal die DSP zu Anfang ja mit Mühe einen 
Kanal bedienen konnten.

> Bekommen die DACs ihren Takt direkt vom Prozessor?

Das hängt von deiner Konfiguration ab. :-) Üblicherweise kommt der Takt 
vom Controller, aber es kann auch anders rum sein.

> Bekommen die DACs ihren Takt direkt vom Prozessor? Muss der Prozessor
> für 48kHz Samplingrate also seine Daten mit x*48kHz Bittakt rausshiften?

Yep, und das ist natuerlich auch ein Grund warum unter Umständen 
getrennte Schnittstellen für mehrere Codecs sinnvoll sind.

Aber mit AC97 hast du ja eine Schnittstelle genannt wo mehre (7?) Kanäle 
in einer Schnittstelle liegen. Ich weiss aber nicht ob das ausserhalb 
von Mainboards eingesetzt wurde.

Olaf

von Soundbastler (Gast)


Lesenswert?

Paul Hamacher schrieb:

> haben so viele DSPs nur 1 oder 2 I2S-Schnittstellen wo doch sicher sehr
> oft mal eben 6...8 und noch mehr gefragt wären?
Du kannst doch mehrere an einen Bus hängen, wo ist das Problem?


> Bekommen die DACs ihren Takt direkt vom Prozessor?
Bei bedarf ja.

> Muss der Prozessor
> für 48kHz Samplingrate also seine Daten mit x*48kHz Bittakt rausshiften?
Ja, muss er.

> Oder haben die DACs ihren eigenen Buffer und ihre eigene Takterzeugung?
Ja und nein, Du musst die Daten passend zu den 48kHz des DACs 
rausschieben.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Paul Hamacher schrieb:
> PCM

Pulse Code Modulation, das bezeichnet ganz simpel die lineare Zuordnung 
von digitalen Datenworten zu analogen Werten, was im Audiobereich 
überall gemacht wird.

> I2S (Klassiker, nur für Stereo?)
> Left-Justified
> Right-Justified
> DSP
> SAI (Serial Audio Interface?)

Ist alles auf 2 Kanäle (Stereo) pro Datenleitung beschränkt, und 
insofern sehr ähnlich dass es überall Worttakt (L-R-Clock), Bittakt und 
Datenleitung gibt. Wenn ein DSP "I2S" unterstützt, dann kann man i.d.R. 
zwischen den diversen Varianten umschalten.

> TDM

Unterstützt bis zu 8 (16? theoretisch unendlich viele) Kanäle pro 
Datenleitung.

Paul Hamacher schrieb:
> Bekommen die DACs ihren Takt direkt vom Prozessor?

Wenn der DSP der I2S Master ist, ja. Er kann aber auch Slave sein und 
Bittakt und Worttakt vom DAC beziehen.

> Muss der Prozessor für 48kHz Samplingrate also seine Daten
> mit x*48kHz Bittakt rausshiften?
Genau.

> Oder haben die DACs ihren eigenen Buffer

Nein.

> und ihre eigene Takterzeugung?

Manche DACs können auch als I2S Master arbeiten.

: Bearbeitet durch Admin
von Paul H. (powl)


Lesenswert?

OK, also sind die ganzen genannten Interfaces prinzipiell alles serielle 
Audiointerfaces, die sich in ihrem Kommunikationsprotoll zueinander 
leicht unterscheiden bzw. auch mal Teilmengen voneinander sein können.

Wie gehe ich nun vor wenn ich mir ein passendes DSP-System 
zusammenstellen möchte?

Viele DACs, ADCs oder Codecs und viele DSP-Prozessoren raussuchen, mir 
Tabellen erstellen und dabei eintragen, welche Schnittstellen vorhanden 
sind und gucken, wo sich passende Kombinationen ergeben? (und die dann 
nach weiteren weichen Kriterien wie Verfügbarkeit, Preis, 
Energieverbrauch bewerten)


Gibt es irgendwo Literatur oder Quellen im Internet in denen sich mit 
dem praktischen Umgang von DSP-Systemen befasst wird? Überall ist alles 
voller Theorie aber wie man das ganze dann in der Praxis umsetzt, 
darüber habe ich noch keine Tipps gefunden. Sicher ist das auch kein 
Thema mit dem sich ganze Menschenmassen beschäftigen aber umsomehr bin 
ich für jede Einstiegserleichertung dankbar ;-)

: Bearbeitet durch User
von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Paul,
ich habe hier noch ein ADSP-21262 EZ-Kit Lite liegen, das ich nicht mehr 
benötige. Damit kannst Du eigentlich alle Deine Anforderungen abdecken. 
Da der ADSP-21262 Floetingpoint rechnet, entfallen alle Fallstricke mit 
Integeralgorithmen. Ich habe mit dem Board meine ersten Schritte in die 
DSP-Technik gemacht, bis hin zu einem eigenen Produkt mit dem 
ADSP-21261. Alter zu dem Zeitpunkt 65 Jahre :-), echtes Wissen über 
digitale Filter... nahe null :-).
Den Compiler gab es als Testversion für 3 Monate kostenlos und auf 
Wunsch auch verlängert :-). Einfach mal bei Analog Devices nachfragen. 
Der Support von Analog Devices in deren Foren ist unglaublich gut.
Schau Dir das Board mal bei Analog Devices an.
Bei Interesse PM.
Grüße, Kurt

von Frank K. (fchk)


Lesenswert?

Paul Hamacher schrieb:

> Meine hauptsächliche Einstiegshürde ist, dass ich nicht durchblicke,
> welche Schnittstellen hier gängig sind. Da scheint es bei den DACs und
> ADCs ja verschiedenste zu geben:
>
> I2S (Klassiker, nur für Stereo?)
> Left-Justified
> Right-Justified
> PCM
> DSP
> TDM
> SAI (Serial Audio Interface?)
> AC'97

AC97 ist auf den PC-Sektor beschränkt und dort inzwischen durch HD-Audio 
abgelöst (wegen internen Kopierschutzdingens aka Protected Media Path 
etc).

TDM ist der allgemeine Oberbegriff: die Übertragung von n Kanälen in 
separaten Zeitschlitzen. I2S, LJ und RJ sind Spezialisierungen davon für 
zwei Kanäle. Meist kannst Du die Formate umschalten.

> I2S scheint ja der Klassiker zu sein. Jedoch brauche ich pro 24-Bit
> Stereo eine I2S-Schnittstelle, in meinem Fall (1in 2out) also 3? Warum
> haben so viele DSPs nur 1 oder 2 I2S-Schnittstellen wo doch sicher sehr
> oft mal eben 6...8 und noch mehr gefragt wären?

Das hängt vom Anwendungsfall ab. Für Audio wird immer noch gerne die 
Motorola/Freescale DSP56k-Familie verwendet. Damit habe ich vor 20 
Jahren schon gearbeitet. Inzwischen hat man sich von 33 MHz auf 250 MHz 
Dual Core hochgearbeitet. Such mal nach dem DSP56724. Der hat 4 Enhanced 
Serial Audio Interfaces plus ein S/PDIF Transceiver Module. Dürfte für 
Dich reichen.

> Bekommen die DACs ihren Takt direkt vom Prozessor? Muss der Prozessor
> für 48kHz Samplingrate also seine Daten mit x*48kHz Bittakt rausshiften?
> Oder haben die DACs ihren eigenen Buffer und ihre eigene Takterzeugung?

Üblicherweise hast Du einen MCLK, einen Master Clock, aus dem alles 
andere generiert wird, einen Shift Clock (SCLK), mit dem die Bits 
rausgetaktet werden, und einen Frame Clock FCLK, der den Anfang oder das 
Ende eines Frames markiert. Das ganze nennt sich dann auch "Framed SPI" 
(zB bei Microchip bei den dsPIC33 und PIC24/32), weil es quasi SPI mit 
zusätzlichem Frame Sync ist.

Für den MCLK hast Du meist einen Quarzoszillator auf dem Board, und 
irgendein Baustein ist dann quasi SPI Master, d.h. er erzeugt aus dem 
MCLK die anderen Clocks. Wer das ist, ist konfigurierbar. Hier sollte es 
eher der DSP sein.

fchk

von Der Michel (Gast)


Lesenswert?

Frank K. schrieb:
> Für Audio wird immer noch gerne die
> Motorola/Freescale DSP56k-Familie verwendet. Damit habe ich vor 20
> Jahren schon gearbeitet. Inzwischen hat man sich von 33 MHz auf 250 MHz
> Dual Core hochgearbeitet.
Gibt es da eine freie tool chain für?

von Frank K. (fchk)


Lesenswert?

Der Michel schrieb:
> Frank K. schrieb:
>> Für Audio wird immer noch gerne die
>> Motorola/Freescale DSP56k-Familie verwendet. Damit habe ich vor 20
>> Jahren schon gearbeitet. Inzwischen hat man sich von 33 MHz auf 250 MHz
>> Dual Core hochgearbeitet.
> Gibt es da eine freie tool chain für?

Frei nicht, aber kostenlos. Registrierung erforderlich.

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=SYMPH_STUDIO&parentCode=DSP56724&fpsp=1

fchk

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Paul Hamacher schrieb:
> Wie gehe ich nun vor wenn ich mir ein passendes DSP-System
> zusammenstellen möchte?

Wandler gibt es wie Sand am Meer, wenn du nicht all zu spezielle 
Anforderungen hast. Also such dir lieber erst mal einen DSP aus, denn da 
gibt es die größten Unterschiede.

von Olaf (Gast)


Lesenswert?

> Gibt es da eine freie tool chain für?

Wenn du privater Bastler bist dann wuerde ich dir empfehlen mal einen 
Blick
auf die Renesas SH7262 oder die neuen RZ zu werfen.

http://am.renesas.com/press/news/2013/news20130620.jsp

Auch wenn beiden Controllern nicht offiziell DSP auf die Stirn 
taetowiert wurde, die Rechenleistung sollte ja eigentlich reichen. Und 
sie haben fuer Bastler zwei grosse Vorteile:

1. Fuer beide Familien gibt es einen gcc.

2. Beide Controller haben ein sehr grosses internes Ram. Sie booten aus 
einem externen seriellen Flashbaustein.

Letzteres hat den Vorteil das man extern keine fetten schnellen 
parallelen Busse braucht wenn man mit 1MByte oder 10MByte auskommt. Dann 
schafft man es sogar so ein Monster auf einer doppelseitigen Platinen 
ans laufen zu bekommen. Und wenn man 16Bit AD/DA Wandler nutzen moechte 
dann sollte man es auch zu schaetzen wissen wenn auf der Platine keine 
50Leitungen rumklappern und mit EMV den Analogkram verseuchen. Ist doch 
schoen wenn bereits das erste Layout funktioniert und nicht erst das 
fuenfte oder?

Oh..und die Gratisversion der Renesasumgebung fuer den SH2 ist auf 
128kByte beschraenkt. Das reicht auch aus wenn man das Datenram ueber 
einen Zeiger anspricht. .-)

Olaf

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Der Michel schrieb:
>> Frank K. schrieb:
>>> Für Audio wird immer noch gerne die
>>> Motorola/Freescale DSP56k-Familie verwendet. Damit habe ich vor 20
>> Gibt es da eine freie tool chain für?
>
> Frei nicht, aber kostenlos. Registrierung erforderlich.
Entwickelt ihr da noch etwas damit?
Ich habe vor Jahren mal was damit gemacht:
http://www.96khz.org/htm/chameleonsynth.htm

Leider gibt es die HArdware nicht mehr und auch nichts, was vergleichbar 
wäre.

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Jürgen,
wenn ich mir meinen ADSP-21262-EZ-KIT anschaue, sieht das sehr ähnlich 
aus. Was konnte denn dieses System?
Grüße, Kurt

von Audio Hans (Gast)


Lesenswert?

Interessanter Thread!

Ich hätte einige Fragen zu den hier gelinkten Produkten und hoffe, das 
gros der Schreiber liest noch mit:

1) Lassen sich mit der Symphony Software auf die alten 56301 DSPs noch 
programmieren? Welche Hardware benötige ich, um an ein solchen Prozessor 
heranzukommen? Ich habe einige Studiogeräte, die damit arbeiten. Ich 
nehme an, es braucht irgend eine Form von JTAG-Ausstattung?

2) Zu dem Chameleon-Gerät von Jürgen: Mit welcher Software wurde das 
programmiert?

3) Zu der Plattform von Kurt: Ist Dein ADSP-Kit aktuell? Sind die 
Prozessorfamilien vergleichbar?

4) Hat jemand der Nutzer Erfahrungen in der Erstellung von 
Audio-Algorithmen mit Visual-DSP++?  Mir liegt eine geerbte Version 3.6 
vor mitsamt Lizenzen und allem pipapo und ich frage mich, ob ich etwas 
damit anfangen könnte?

5) Allgemein: Mit welchen aktuellen DSP-Systemen arbeiten moderne 
Audiogeräte? Vielfach lese ich Shark, scheint aber outdated zu sein.

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Audio Hans schrieb:
> 3) Zu der Plattform von Kurt: Ist Dein ADSP-Kit aktuell? Sind die
> Prozessorfamilien vergleichbar?
>
Der ADSP2126x ist nicht total neu, aber immer noch aktuell. Die 
ADSP213xx und ADSP214xx haben zusätzliche Features, sind aber auch 
deutlich teurer. Für Audioanwendungen ist der ADSP2126x eine gute Wahl. 
Ausserdem hat er internen RAM, so dass nur ein externer Taktgenerator 
und ein EEPROM benötigt werden. Auf dem EVAL-Board ist das alles mit 
guter Audio-Hardware zusammengefasst.
> ...
>
> 5) Allgemein: Mit welchen aktuellen DSP-Systemen arbeiten moderne
> Audiogeräte? Vielfach lese ich Shark, scheint aber outdated zu sein.
Die Sharc-Familie ist ist immer noch eine gute Prozessorfamilie mit 
einer großen Anzahl verschiedener Prozessoren. Und der Support von AD 
ist vorbildlich, auch bei kleinen Projekten.
Grüße, Kurt

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Audio Hans schrieb:
> 2) Zu dem Chameleon-Gerät von Jürgen: Mit welcher Software wurde das
> programmiert?
In C oder Coldfire Assembler. Es gab eine beigelegte Software "Suite 56" 
von Motorola, wie sie damals noch hiessen.

Kurt Harders schrieb:
> Hallo Jürgen,
> wenn ich mir meinen ADSP-21262-EZ-KIT anschaue, sieht das sehr ähnlich
> aus. Was konnte denn dieses System?
> Grüße, Kurt

http://www.chameleon.synth.net/english/index.shtml

Wahnsinnig schade, dass das gestorben ist. Man hatte sozusagen ein eval 
board im 19 Zoll Rack Standard mit Tastern, Display und Audio-DACs sowie 
MIDI!

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.