Forum: Mikrocontroller und Digitale Elektronik I2S Audio Bitclock umschalten, Frage wegen Delay


von Borsty B. (mantabernd)


Lesenswert?

Guten Abend,

ich frage mich grad wie man am besten I2S Quellen umschaltet, sprich ich 
habe eine Schaltung die einen festen Masterclock (12.288MHz) und 
Wordclock (192kHz) hat.

Nun soll der DSP Chip entweder das Signal vom AD Wandler bekommen oder 
das Signal eines ASRC Samplingrate Converters.

Mein Gedanke war es mit dem DSP Chip als Master den Wordclock zu 
generieren und alle anderen Geräte am I2S Bus als Slave laufen zu 
lassen.

Die Bitclockleitung wollte ich mit einem  SN74LVC1G125 umschalten, 
sprich immer den aktiven enablen.

Nun frage ich mich allerdings ob ich damit das komplette Timing 
durcheinander bring und ob es nicht vielleicht sinnvoller ist entweder 
den AD Chip oder den ASRC Chip komplett abzuschalten?

Der SN74LVC1G125 hat ein Delay von 0,6 - 3,7 nS bei 3,3V und eine 
t(enable) und t(disable) von 5,3 nS bzw. 5,0 nS.

Hat damit schon jemand Erfahrung? Klappt das oder bau ich mir damit nur 
Fehlerquellen in die Schaltung?

Gruß
Bernhard

von Stefan (Gast)


Lesenswert?

Mir ist noch nicht ganz klar was du machen willst.
Wieso willst du die Bitclock schalten wenn es um eine Quellenauswahl 
geht?. Wenn es nur einen Master gibt, genügt es die Datenleitung zu 
schalten.

Damit wir nicht aneinander vorbei reden:
SDATA
LRCK
SCLK
MCLK

Was schaltest du?

Ich mache so etwas mit einem Analogschalter in der Datenleitung. Aktuell 
mit dem TS5A3357 um zwischen drei Quellen auszuwählen.

von Borsty B. (mantabernd)


Angehängte Dateien:

Lesenswert?

Stefan schrieb:
> Mir ist noch nicht ganz klar was du machen willst.
> Wieso willst du die Bitclock schalten wenn es um eine Quellenauswahl
> geht?. Wenn es nur einen Master gibt, genügt es die Datenleitung zu
> schalten.

Ja … richtig… mein Fehler ich will natürlich die Datenleitung schalten. 
LRCK, SCLK, MCLK sind natürlich fix.

> Damit wir nicht aneinander vorbei reden:
> SDATA
> LRCK
> SCLK
> MCLK
>
> Was schaltest du?

SDATA

>
> Ich mache so etwas mit einem Analogschalter in der Datenleitung. Aktuell
> mit dem TS5A3357 um zwischen drei Quellen auszuwählen.

Ok und das funktioniert ohne Stress? Im I2S Standard steht was von einem 
max. Delay von 20ns SCLK -> SDATA. Hab halt Angst davor das nicht mehr 
einhalten zu können wenn ich den SDATA mit ca. 5ns verzögere.

von Stefan (Gast)


Lesenswert?

Ja das geht ohne Probleme. Ich hatte zuerst auch meine Bedenken. 
Zumindest hatte ich ein übles Knacken befürchtet wenn man zu einem 
beliebigen Zeitpunkt die Datenleitungen umschaltet. Aber der passiert 
nichts.
Nüchtern betrachtet ist das auch keine Überraschung. Die Taktleitungen 
sind ja synchron. Die Anforderungen bezügl. SDATA zu SCK erfüllen die 
Slaves mit grosszügiger Reserve. Wäre ja schlimm wenn ein 5ns Delay im 
Signalweg alles durcheinander bringen würde.

Neben dem 3-fach Analogschalter (die verzögern nicht) habe ich in einem 
anderen Gerät auch ein 74LVC1G157 im Einsatz für zwei Quellen. Der 
Prototyp ist sogar nur mit einem 74AHC1G157 bestückt. Die Bitclock läuft 
da allerdings nur mit 3MHz. Du hast vermutlich 6MHz. Ich erwarte aber 
keine Probleme.

von Borsty B. (mantabernd)


Angehängte Dateien:

Lesenswert?

Alles klar dann brauch ich mir ja keine Sorgen zu machen. Danke für die 
Info.

Habs jetzt übrigens wie im Anhang mit zwei Bus Buffer und zwei XOR 
Gatter gelöst. Somit kann ich mit nur einem Jumper oder einer µC Leitung 
"SRC_SEL" zwischen den Inputs umschalten.

Gruß
Bernhard

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.