Forum: Mikrocontroller und Digitale Elektronik I2S Multiplexer Realisierung


von AnddnA (Gast)


Lesenswert?

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

von Joe F. (easylife)


Lesenswert?

sind die quellen denn alle asynchron, oder warum willst du auch die 
clocks multiplexen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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 ;-).

von AnddnA (Gast)


Lesenswert?

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.

von Rosses (Gast)


Lesenswert?

Tut es kein TTL- oder Analog-Multiplexer?

von Joe F. (easylife)


Lesenswert?

schnelle clock buffer (hct) mit output enable eingang sollten es tun. 
bei bedarf decoder für die enable signale dazu.

: Bearbeitet durch User
von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch User
von AnddnA (Gast)


Lesenswert?

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.

von Joe F. (easylife)


Lesenswert?

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...

von Thomas F. (tf1973)


Lesenswert?

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?

von AnddnA (Gast)


Lesenswert?

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.

von Paul H. (powl)


Lesenswert?

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?

von AnddnA (Gast)


Lesenswert?

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!

von Joe F. (easylife)


Lesenswert?

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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Clemens L. (c_l)


Angehängte Dateien:

Lesenswert?

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.

: Bearbeitet durch User
von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Joe F. (easylife)


Lesenswert?

HC ist aber glaube ich echt zu langsam für MCLK (geht ja vermutlich über 
12MHz hinaus).

Hat jemand Erfahrung mit "LVT" (z.B. 74LVT244)?

https://www.fairchildsemi.com/datasheets/74/74LVT244.pdf

: Bearbeitet durch User
von Zeno (Gast)


Lesenswert?

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

von Kopfschuettler (Gast)


Lesenswert?

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!

von Zeno (Gast)


Lesenswert?

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

von Joe F. (easylife)


Lesenswert?

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...

: Bearbeitet durch User
von Thomas F. (tf1973)


Lesenswert?

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

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.