Hallo zusammen,
ich stelle mir gerade die Komponenten für einem Kopfhörerverstärker mit
DAC zusammen und möchte/muss zwei I2S-Datenströme multiplexen. Gibt es
dafür optimierte ICs? Aus dem Analog Switches Selection Guide von TI bin
ich nicht wirklich schlau geworden und ein mechanisches Relais möchte
ich eigentlich vermeiden. Vielen Dank im Voraus!
Rüdiger
I2S ist ziemlich schnell. Ich kenne momentan keinen IC, der das von
Hause aus kann. Mit einem DSP oder FPGA sollte dies ohne Weiteres
möglich sein. Ein Beispiel, in dem ein Controller (naja, mehrere ;-))
ein I2S-Signal digital weiterverarbeitet und wieder ausgibt, ist hier zu
finden:
Beitrag "SD-Karten-Wave-Recorder"
Danke für deine Antwort, das hatte ich befürchtet. Ich werde nochmal
eine Anfrage an TI diesbezüglich machen, und wenn's da nichts gibt, wird
es eben doch ein Relais.
Gruß, Rüdiger
@ Travel Rec. (travelrec) Benutzerseite
>I2S ist ziemlich schnell.
Naja, die paar Mbit/s sind heute eher Schneckentempo.
> Ich kenne momentan keinen IC, der das von>Hause aus kann.
Was nicht heisst, dass es keinen gibt. ABer I2S ist sehr einfach
aufgebaut, das bekommt man fix mit einem kleine CPLD gebacken.
Vielleicht soagr mit ein paar TTL-ICs!
MFg
Falk
Spricht was gegen Bustreiber mit Trisate Ausgängen? Wenn du nur zwischen
deinen I2S umschalten wilst ist das wohl das kostengünstigste und
einfachste.
Cheers,
Ritchie
Hallo Falk,
CPLDs sind (noch) nicht in meinem Skill-Portfolio. Da ich sie bisher
noch nicht gebraucht habe und Hobbyzeit priorisiert werden muss, kann
ich sie daher leider nicht verwenden.
Gruß, Rüdiger
Hallo Ritchie,
verstehe ich dich richtig: Ich nehme zwei 74HC126 und lege deren
Ausgänge zusammen an den Eingang des DACs. Durch die Ansteuerung der
Controleingänge muss ich halt sicherstellen, dass ich keinen Kurzschluss
erzeuge, indem ich beim Umschalten immer die Ausgänge beider ICs zuerst
hochohmig schalte (Control auf Low) und dann erst die Control-Pins des
durchzuschaltenden Pfades auf High lege. Klingt super, jedoch bin ich
unschlüssig, ob die angegebenen "propagation delay times" von typisch 12
ns mir nicht das Signal ruinieren könnten. Sobald diese Verzögerungen
zwischen den einzelnen Pfaden im Chip unterschiedlich sind, ist das
I2S-Signal hinüber. Hat das jemand schon mal gemessen?
Gruß, Rüdiger
Hallo Rüdiger,
da du die Treiber bei all den 3 Singnale (BCK, LRCK, Data) deines I2S
hast spielen die "propagation delay times" fast keine Rolle mehr. Die
ganze I2S Verarbeitung läuft ja synchron, du hast also immer eine halbe
BCK Clock time zur Verfügung (ca 30ns).
Des weiteren sind die "propagation delay times" innerhlab eines 74xx126
ziemlich konstant. Auch gibt es schneller Bausteine als dein HC126, Der
LV126 sit mit typisch 9ns spezigiziert. Es gibt sicher noch schnellere.
Pullups/downs an den Eingänge des DA-Wandlers vorsehen, es kann ja sein
das alle deine HC126 Tri-State sind.
Eventuell musst du dir Gedanken über das Layout deiner BCK, LRCK machen.
Dies vor allem zwischen den Treiber und den DA Eingänge, da du dort
nicht mehr Punkt-Punkt Verbindungen hast.
Wie hoch wird dein BCK bzw. deine fs?
Gruss,
Ritchie
Viele DACs und Codecs haben auch eine Mute-Funktion.
Du könntest beide gleichzeitig am Bus hängen haben und den jeweils nicht
benötigten per Software muten.
"HC" ist evtl. zu langsam. Hatte schon einmal Probleme damit bei 12 MHz.
SN74ALVC126 würde ich mal versuchen.
- oder eben die bereits vorgeschlagene Lösung mit Muten des nicht
benötigten DACs...
@ROFL
Aber der OP will mehrere I2S Quellen (ADCs) an einen DAC anschliessen.
Bei den ADCs die ich kenne ist das "Mute" sein Softwarefunktion, die
Bausteine treiben immer noch die Signale an ihren I2S Pins.
Hast du ein Beispiel eines ADCs der wie von dir beschrieben sein I2S auf
Tristate scaltet?
Das HC ev. zu langsam ist und besser LV verwendet werden soll stand
schon in meine Posting oben.
Cheers,
Ritchie
Ich habe sehr gute Erfahrungen mit dem Analogschalter CD74HC4316M in
genau diesem Anwenungsfall gemacht. Grundsätzlich kannst du den bis
mehrere 10MHz verwenden ohne dass das Übersprechen ein Problem
darstellt.
Alternativ fällt mir noch der SRC4382 als MUX mit integriertem SRC ein.
Erstmal besten Dank an alle, ihr habt mir sehr weitergeholfen!
@Kernighan:
fs soll 96 kHz betragen, einen Audio Processor wie den TAS3108 wollte
ich explizit nicht verwenden. Ich werde mal den 74LV126 mit dem
CD74HC4316 vergleichen.
@programinator:
Das MUXen möchte ich gerne hinter dem SRC machen, da ich lediglich
nach dem SPDIF-Receiver upsampeln muss, während ich beim USB-Receiver
direkt die gewünschte Sample-Frequenz als Output erhalte.
Den Aufbau des DACs werde ich dann entsprechend des Blockschaltbildes in
meinem ersten Posting angehen, der gestrichelte Teil (als Option
gedacht) für die USB-Verarbeitung entfällt damit. Als Zwischenschritt
auf dem Weg zum DAC realisiere ich zunächst einen analogen HPA auf
Eaton-Basis, wobei ich die Netzteile (ich werde eigene
Spannungsversorgungen für +/-15V, +5V und +3,3V auf Basis der sigmas 11
und 22 vorsehen) und die Steuerung (es sind zwei optogekoppelte ATmegas
vorgesehen - einer mit "schmutziger" Spannungsversorgung für die
Bedienelemente und das Soft-Power-On, einer mit "sauberer"
Spannungsversorgung für die Überwachung der Netzteilspannugnen und der
Kommunikation mit den Audio-ICs) in diesem Projekt qualifiziere und
später im DAC weiterverwenden werde.
Die Netzteilplatinen sind Dienstag gekommen, den analogen Eaton-Amp
werde ich heute testen, die Schaltpläne für die Steuerung sind fertig
und mit der Controller-Software fange ich in der nächsten Woche an. Ich
halte euch auf dem Laufenden!
Gruß, Rüdiger