Hallo zusammen,
für ein kleines DSP Projekt suche ich nach einer Möglichkeit 4 I2S
Signale (SDA, BCK, LRCK und evtl. MCK) auf den DSP zu multiplexen.
Am liebsten würde ich auf einen fertigen IC zurückgreifen, also einen
quad 4:1 multiplexer. So einen konnte ich nicht finden, weshalb ich auch
auf zwei quad 2:1 Multiplexer zurückgreifen würde, deren Ausgänge ich
parallelschalte. Leider konnte ich ebenfalls keinen solchen Multiplexer
mit Tri-State Ausgängen finden. Kennt jemand etwas brauchbares in dem
Bereich?
Alternativ habe ich auch an Reed-Relais gedacht, nur bräuchte ich mind.
12 Stück davon (4 * 3 Signale). Sind solche Relais überhaupt für
digitale Signale (~6MHz BCK) geeignet?
Bevor ich es vergesse: Mein DSP arbeitet mit 3,3V Logik.
Habt ihr noch andere Vorschläge?
mfG MR. X
Nimm doch einen Controller und sammle die Signale zu Fuß ein. Habe sowas
Ähnliches mal mit 'nem Tiny2313 gemacht. Heute würde ich sicher einen
XMega nehmen, der von der Peripherie her mehr unter der Haube hat und
schneller ist. Mittels Timer/UART und Event-Sytem mit DMA sollte die
Aufgabe zu schaffen sein. In ASM, versteht sich ;-).
Hi,
ich habe ganz vergessen zu erwähnen, dass ich die Signale alle über
einen Sample Rate Konverter (CS8421) in den DSP einspeise, welcher auch
die 96KHz Sample Rate für den Sample Rate Konverter zur Verfügung
stellt. Die Signale müssen natürlich VOR dem Sample Rate Konverter
multiplext werden, sie sind alle asynchron/unabhängig voneinander und
haben keine bestimme Sample Rate.
Dieser ist einfach notwendig, da mein DSP mit festen 96KHz Sample Rate
rechnen soll, ich dennoch jede Quelle daran anschließen können will.
An meinem Problem einen passenden Multiplexer zu finden ändert diese
Tatsache leider nichts.
Der Kollege braucht 4x4 Multiplexer, die sind nicht so häufig
anzutreffen. Alternativ kann man natürlich auch 4 Quad-Tristate-Puffer
nehmen. Die Ausgänge werden parallel geschaltet und die Enable-Eingänge
an einen Dezimalzähler gehängt. So kann man die Puffer nacheinander
sequenziell aktivieren und die einzelnen Signalgruppen auf den SRC
geben.
Abend,
danke zuerst einmal für die Antworten.
@Rosses: TTL passt mir wegen der 3,3V Pegel leider nicht. Wegen der
Analog-Schalter war ich mir bis jetzt noch unschlüssig, aber auch weil
ich keine passenden ICs finden konnte. Als Notlösung müsste ich auf 3
(bzw. 4 mit MCK Signal) analog-Schalter, jeweils für eine Signalleitung,
zurückgreifen. Außerdem habe ich noch keine Erfahrung mit den
Analogschalter und deren Verhalten in Digitalschaltungen gemacht.
@Joe F.: Ich werde es mal mit 74HC125 ICs probieren, welche ich über
einen einfachen Atmega ansteuere. Jeweils ein IC soll eine Signalleitung
schalten.
@Knut: genau so einen Multiplexer würde ich am liebsten einsetzen. Nur
konnte ich noch keinen finden. Ich denke/hoffe aber auch, dass
Bustreiber mit Tri-State Ausgängen für mich ausreichen.
AnddnA schrieb:> Ich werde es mal mit 74HC125 ICs probieren
Nimm lieber die HCT Serie (schneller).
74HCT241 könnte auch interessant sein. Der schaltet gleich 4 Signale mit
1 OE Leitung. Ein OE Eingang ist invertiert, muss man berücksichtigen...
Warum kein Sample Rate Converter von TI? Der SRC4192 hat einen
eingebauten 2:1 Multiplexer und es können bis zu 8 IC's kaskadiert
werden so das man maximal 16 Kanäle multiplexen kann. Die Ausgabe
erfolgt dann mittels TDM Signal in den DSP. DIe Audio DSP's die ich
kenne können alle mit TDM Signalen umgehen. Welchen DSP willst du
verwenden?
Abend,
ich verwende einen ADAU1701 (FreeDSP... sehr interessantes Projekt), der
auch TDM unterstützt. Den SRC4129 schaue ich mir auch noch genauer an.
Allerdings habe ich noch nicht mit TDM Streams gearbeitet.
Muss ich im Falle von TDM im DSP dann den richtigen Stream auswählen,
oder wie funktioniert das im Detail?
@Joe F.
Unterstützt die HCT Serie nicht nur 5V Logik? Ich arbeite ausschließlich
mit 3,3V Logik.
Steht TDM nicht allgemein für Time Devision Multiplexing, ist also nur
ein Überbegriff bzw. Synonym für Zeitmultiplexing, was wiederum die
Grundlage jeder seriellen Datenkommunikation, insbesondere von z.B. I2S
ist? Oder handelt es sich hier im Audiobereich übliches Format?
Nachtrag:
Ich bestelle zusätzlich noch ein paar 74HC244 und schalte pro IC zwei
I2S Signale. Das erleichtert mit das Layout und ich muss nur halb so
viele ICs im Gegensatz zu den 74HC125 verbauen.
Danke nochmal für den Tipp!
AnddnA schrieb:> Unterstützt die HCT Serie nicht nur 5V Logik? Ich arbeite ausschließlich> mit 3,3V Logik.
Aargh, sorry du hast Recht.
Ich meinte die AHC Serie.
Vorsicht bei den AHCs: die sauen bei unsauberem Layout höllisch rum! Gut
abblocken und wenn möglich 4 Lagen verwenden. Getrennte
Spannungsversorgung für Analog und Digital aufbauen.
Knut B. schrieb:> Vorsicht bei den AHCs: die sauen bei unsauberem Layout höllisch rum!
War das nicht AC?
TI sagt:
> The HCMOS family has very low switching noise, which is achieved> primarily through a low slew rate, typically, 0.9 V/ns and the low> drive capability of ±8 mA, resulting in low current spikes during> switching. Though the speed of AHC/AHCT has been increased, the slew> rate of AHC/AHCT is even lower than HCMOS. The ground bounce of AHC> devices attributed to simultaneous switching is better than that of> the standard HCMOS family.
Ich kann mich an einen AHC Bustreiber an einem RAM erinnern, der mal
Schwierigkeiten bei einer Labormessung gemacht hat. Wurde dann gegen
einen HC ersetzt, der noch schnell genug war und bei der EMV deutlich
besser abschnitt. Anders als die Aussage des o.g. Datenblatts... Muss
man im Einzelfall testen. Die verschiedenen Hersteller unterscheiden
sich da dann auch gern noch mal.
Joe F. schrieb:> Nimm lieber die HCT Serie (schneller).
Für 6MHz braucht es keine "schnelle" Baureihe, das macht jede
Standardbaureihe locker.
@TO
Nimm 2x74HC(T)4052 (Dual 1 auf 4 Analogmultiplexer/-demultiplexer). Ich
benutze den 74HC4051 in einem Projekt um Digital- und Analogsignale auf
einen Messausgang durchzuschalten. Bis 8Mhz (Rechtecksignal)
funktioniert das problemlos. Selbst 24MHz werden durchgeschalten,
allerdings wird der Rechteck dann eher ein Sinus und die Amplitude geht
etwas in die Kniee. Wenn's auf Flankensteilheit ankommt, könnte man ja
noch ein Schmitttriggergatter (z.B. 74HC14) nachschalten.
Zeno
Zeno schrieb:> Wenn's auf Flankensteilheit ankommt, könnte man ja> noch ein Schmitttriggergatter (z.B. 74HC14) nachschalten.
Ja klasse!
Aber darauf achten die bidirektionale Version (74HC14bi)
zu verwenden!
Kopfschuettler schrieb:> Aber darauf achten die bidirektionale Version (74HC14bi)> zu verwenden!
Na dann lese mal hier https://de.wikipedia.org/wiki/I²S unter
Eigenschaften nach. Was steht da zu bidirektionaler Kommunikation?
Der TO sprach von I2S und nicht von I2C - das ist ein Unterschied
AnddnA schrieb:> Die Signale müssen natürlich VOR dem Sample Rate Konverter> multiplext werden, sie sind alle asynchron/unabhängig voneinander und> haben keine bestimme Sample Rate.
Die max. Samplerate der Eingangssignal ist aber entscheidend.
Solange du auf eine Masterclock komplett verzichtest, und nur BCLK,
LRCLK und DATA umschaltest, und die max. Eingangssamplerate 96 KHz ist,
kommst du mit ~6.1 MHz Bauteilen aus.
Anders sieht es aus, wenn dein Eingangssignal z.B. auch 192 KHz haben
kann. Dann ist die BCLK und DATA ~12.3 MHz...
Wenn es da schon passende Sample Rate Converter gibt die man kaskadieren
kann und das fertige TDM Multiplexsignal kommt heraus, die dazu auch
noch quasi Industriestandard sind, dann würde ich mir das mit den Logik
IC nicht antun. Die Inputs sind gebuffert, du mußt keine Clocks splitten
und extra buffern (außer MCLK um den DSP und SRC zu füttern). Denke
nicht das es da eine einfachere Lösung gibt, auch vor allem auf das PCB
Layout bezogen.
Du mußt eben nur noch überprüfen ob der TDM Stream des SRC mit dem
ADAU1701 Format paßt. Der Stream selbst ist im ADAU1701 einfach zu
verwerten, du nimmst die Inputs 2 bis 9 in SIGMA Studio, was den TDM
Kanälen 1 bis 8 entspricht. Hier ist das nochmal beschrieben:
https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/io/input?rev=1344368352#adau1701_serial_input_port_routing