Forum: Mikrocontroller und Digitale Elektronik Allgemeine Fragen zu Audio-DACs und ADCs


von Paul H. (powl)


Lesenswert?

Hi,

für eine Audio-Anwendung würde ich gerne ein umgerechnetes Stereo-Signal 
auf mehrere Ausgänge verteilen. Da ich mich noch nie damit beschäftigt 
habe hätte ich da ein paar Fragen zu DACs:

viele DACs werden ja sicher per SPI angesteuert. Die Ausgabesamplingrate 
soll ganz normal bei 44,1kHz liegen. Wenn ich nun mehrere DACs an ein 
SPI-Interface dranhängen will muss die Ausgabefrequenz ja wesentlich 
höher sein, bei 4-Kanälen wohl mindestens 176,4kHz. Haben die DACs 
generell einen Puffer der ein paar Samples zwischenpuffern kann? Haben 
sie einen eigenen (quarzgesteuerten) Taktgenerator oder wie hält man die 
genaue Ausgabefrequenz von 44,1kHz dann ein? Wie viele DACs könnte man 
dann an ein SPI-Interface dranhängen bzw. Wodurch wird das dann 
begrenzt?

lg PoWl

von Olaf (Gast)


Lesenswert?

> viele DACs werden ja sicher per SPI angesteuert.

Nein. Im Audiobereich verwendet man I2S.

Wenn du aber einen Controller hast der potent genug ist um was an einem
Audiosignal zu rechnen dann solltest du diese Schnittstelle aber doch 
schonmal im DAtenblatt gesehen haben?

> Haben die DACs generell einen Puffer der ein paar Samples zwischenpuffern
> kann?

Der Controller der in der Lage ist solche Signale zu verarbeiten hat 
sicher auch mehrere DMAs.

>  Haben sie einen eigenen (quarzgesteuerten) Taktgenerator oder
> wie hält man die genaue Ausgabefrequenz von 44,1kHz dann ein?

Die I2S Schnittstelle liefert normalerweise den Takt und liefert den an 
die Codecs. Es kann aber auch umgekehrt gemacht werden, also so das man 
wirklich einen externen Takt am Codec hat und er seine Signal 
raustaktet.

> Wie viele DACs könnte man dann an ein SPI-Interface dranhängen
> bzw. Wodurch wird das dann begrenzt?

Durch die maximale Taktrate.


Es gibt im uebrigen noch eine weitere verbreitete digitale Schnittstelle 
fuer mehrere Kanaele von Audiodaten. Das ist das was die Codec auf 
Mainboards oder Soundkarten benutzen. Allerdings wuesste ich jetzt auch 
keinen Microcontroller der das bedienen kann. Es ist aber relativ 
einfach sowas von einem FPGA aus anzusteuern.

Olaf

von MaWin (Gast)


Lesenswert?

Die üblichen Audio-DAC haben ein festes Verhältnis zwischen digitalem 
Takt und Samplerate. Da gibt es keine Puffer. Du kommst also mit einem 
SPI Interface nicht aus. Und für Software-SPI sind die Signale meist zu 
schnell. Also verwenden die Leute entweder FPGAs oder Digital Mixer z.B. 
AD1940.

von Paul H. (powl)


Lesenswert?

Ja I2S ist mir bekannt, aber ich wusste nicht dass das ein "muss" ist im 
Audio-Bereich. Vor allem weil diese Schnittstelle ja nur für 
Stereo-Sound konzipiert wurde und ich brauche eben 4-Kanal oder sogar 
5-Kanal Sound. D.h. ich brauche mindestens schonmal 2 I2S-Schnittstellen 
bzw. 4, falls ich für jeden DAC eine benötige, die ich mit Daten 
beliefern kann. Eigentlich bräuchte ich nur einen Baustein, dem ich 
immer ein Sample-Paket für alle 4 Kanäle per SPI oder so zusende, und 
der verteilt das dann auf die einzelnen I2S-Kanäle für die DACs. Wie 
komm ich da am geschicktesten hin?

von Jobst M. (jobstens-de)


Lesenswert?

Klar gibt es Wandler mit SPI - die haben dann nur einen Kanal. Trotzdem 
ist dort kein Buffer vorhanden. z.B. PCM1704 (24Bit) oder PCM56(16Bit 
und alt)

Für mehr als 2 Kanäle benutzt man TDM wie z.B. der PCM4104


Gruß

Jobst

von Jörg H. (idc-dragon)


Lesenswert?

Oder einfach mehrere Datenleitungen, solange bis es reicht.

Jörg

von Jan H. (jan_h74) Flattr this


Lesenswert?

Ein schones Beispiel ist das STM32 F4 Discovery Board. Hat eine Audio 
DAC (2 Kanale, I2S), und ist eher billig. Hat auch eine USB, ideal um 
selbst eine MP3 Spieler zu basteln !

von Paul H. (powl)


Lesenswert?

Ich bin leider immernoch nicht wirklich schlauer.
Alle 2-Kanal Lösungen bringen mir leider überhaupt garnix. Ich brauche 4 
oder mehr Kanäle!

Also ich habe also die optionen um mehrere I2S zu bekommen:
- Digital Mixer (was ist das eigentlich ganz allgemein genau?)
- FPGA

oder alternativen zu I2S:
- TDM (was ist das, wo kriege ich infos darüber)
- Reine SPI-DACs

Warum gibt es keinen DSP mit mehreren I2S Schnittstellen Onboard? Ist 
doch bescheuert wenn man sich sobald man mehrere Kanäle haben will 
gleich nen Arm ausreißen muss.

Wie wird das in professionellen Audio-DSPs gemacht?
FPGA/CPLD programmieren mag kein Hexenwerk sein, gehört aber noch nicht 
zu meinem Skill-Portfolio, da ich damit noch nie etwas gemacht habe.

lg PoWl

von Frank K. (fchk)


Lesenswert?

Paul Hamacher schrieb:

> oder alternativen zu I2S:
> - TDM (was ist das, wo kriege ich infos darüber)

I2S ist ein Spezialfall von Framed SPI, wo Du neben MOSI und MISO und 
SCK auch noch einen Frame Clock hast. Bei I2S signalisiert dieser Frame 
Clock den Kanal (0 für links, 1 für rechts, oder umgekehrt, müsste ich 
nachschauen). Andere Verfahren nutzen den Frame Clock so, wie er 
eigentlich gedacht ist: Am Anfang oder am Ende eines Frames kommt auf 
dem FCK/FS (Frame Sync) ein Puls, dass der nächste Frame anfängt, und 
dann kommen n Bytes an Daten. Wie diese Daten zu interpretieren sind, 
ist dann Sache des Codecs.

Schau Dir mal z.B. das Datenblatt zum CS4398 an. Der kann I2S, Left 
Justified und Right Justified und hat verschiedene Einstellungen für den 
Frame Clock. TDM oder Framed SPI ist der Oberbegriff, I2S bezeichnet nur 
einen von Philips definierten Spezialfall.

Die meisten dsPICs und die PIC32MX5xx/6xx/7xx können ihre SPI-Ports im 
übrigen auch als Framed SPI betreiben. !SS wird dann zum Frame Clock.

fchk

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Dann guck mal ins Datenblatt des CS4398.
Da Steht wie das mit mehreren Kanälen gemacht wird (Isn 8 Kanal ADC).

von Jobst M. (jobstens-de)


Lesenswert?

Paul Hamacher schrieb:
> oder alternativen zu I2S:
> - TDM (was ist das, wo kriege ich infos darüber)

z.B. bei TI in deren Datenblättern zu dem von mir bereits genannten IC, 
welches Du Dir offensichtlich nicht angesehen hast!


> Warum gibt es keinen DSP mit mehreren I2S Schnittstellen Onboard?

Hast Du überhaupt schonmal geguckt? Ich habe auf anhieb mehrere mit 24 
I²S-Ports gefunden ...


Gruß

Jobst

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.