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
> 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
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.
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?
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
Oder einfach mehrere Datenleitungen, solange bis es reicht. Jörg
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 !
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
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
Dann guck mal ins Datenblatt des CS4398. Da Steht wie das mit mehreren Kanälen gemacht wird (Isn 8 Kanal ADC).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.