Digitale Schaltung

Hallo!

Also ich habe 4 CS8414 u.ä. SPDIF-Receiver. Diese liefern u.a. ein Bitclock-Signal = 128xfs und ein Wordclock = fs Signal. Wenn die Master sind syncen sie sich auf SPDIFin und die Clock-Signale sind outputs. Sind sie Slave dann syncen sie auf die Clock-Signale, die Pins sind Inputs.

Erste Frage: Kann ich die Clock-Signal-Pins einfach verbinden? Ich gewährleiste das immer nur ein Master da ist. Ws passiert beim Umschalten, wenn der Master wechselt?

Zweite Frage: Die ICs liefern ein Errorbit falls SPDIF nicht gültig ist. Diese Errorbit will ich hernehmen und damit den Master schalten nach der folgenden Wahrheitstabelle: Ex == Errorbit X Sx == Slave/Master bit 1 == Slave, 0 == Master (wie rum weiss ich grad nicht)

E1 E2 E3 E4 S1 S2 S3 S4

0 - - - 0 1 1 1 1 0 - - 1 0 1 1 1 1 0 - 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1

Die letzte Zeile sollte doch einen definiterten Anfang gewährleisten, oder? Das Errorbit wird gesetzt wenn kein gültiges Signal anliegt (valid bit gesetzt, ein Fehler auftritt) SPDIFin und Sync nicht syncron sind. D.h. das Errobit hängt vom Status Master/Slave und den Clock-Signalen ab.

Jetzt die Frage, das kann sich doch jetzt so aufschaukeln, dass kein Reciever mehr das Signal erkennt?

SPDIF1 liegt nicht an, aber Reciever1 ist Master -> E1 wird gesetzt. SPDIF2 liegt an, aber Reciever2 ist noch Slave -> E2 wird auch gesetzt, noch bevor Reciever2 dazu kommt Master zu werden.

Wie vermeide ich solche unfiniterten Zustände am besten? Ich möchte beliebig SPDIF-Signal ein- und ausstöpseln.

Mein alter Entwurf funktioniert, aber da habe ich Reciever1 hart auf Master geklemmt. Wenn nichts an R1 ankommt: Pech... Aber auch da zickt die Schaltung manchmal (sehr selten) rum, und nur ein reset (an/aus) hilft da. Was übrigens nicht geht, ist alle 4 Reciever unabhängig voneinander als Master laufen zu lassen. Selbst wenn die reinkommenden SPDIFs gesynct sind. Im ADAT Signal ist dann genau das Signal zu hören von welchem Reciever das Wordclocksignal für den ADAT-Chip gewonnen wird. Die anderen Signale sind dann schönes digitales 0dBfs Rauschen...(Toleranz 20ns und das ist wohl nicht gegeben)

Ach ja, die 4 SPDIFs werden zu einem ADAT verwurschtelt.

Reply to
ThomasT
Loading thread data ...

ThomasT schrieb:

Da gibt's einiges, was mir dubios vorkommt.

Zum ersten, die Umschaltung vom Mastertakt, wenn nicht sorgfältig gelöst, kann fast beliebig kurze Taktimpulse im Umschaltzeitpunkt erzeugen, die jenseits der Spezifikation der beteiligten Chips liegt. Vielleicht ist das der Grund für Deine Rumzick-Probleme.

Dann würde ich die Chips alle immer im Slave-Modus lassen und die Taktsignale durch eine State-Machine erzeugen. Der MCK-Ausgang bleibt ja auch im Slave-Modus aktiv. Vielleicht kann ja der ADAT-Teil diese Signale selber erzeugen. Das vermeidet Probleme, die durch die Umschaltung der Receiver-Modi entstehen könnten.

Von der Anwendersicht her bin ich auch nicht überzeugt ob ich so eine Taktautomatik würde haben wollen. In einem Digitalaudiosystem finde ich es ätzend wenn nolens volens ohne mein Zutun die Taktquelle wechselt. Es gibt zum Beispiel etliche CD-Spieler, die kein kontinuierliches Digitalsignal ausgeben wenn man z.B. auf Stop drückt. Dein Dingsbums würde da womöglich jedesmal kurzzeitig den Takt ändern und das am ADAT-Signal angeschlossene Gerät macht einen Bocksprung.

--
Cheers
Stefan
Reply to
Stefan Heinzmann

Mir auch, deswegen wollte ich es mal zur Diskussion stellen.

Bitte nicht verwechseln. Die alte Schaltung schaltet nicht um. Nur manchmal und ganz selten (und daher noch nicht nachvollzogen) empfängt sie Soundkarte nichts auf diesem ADAT-in. Und da hilft kurzes ein- und ausschalten.

Selber erzeugen geht nicht, da das Teil nicht Master sein darf. Aber den Wordclock /Frameclock könnte man auch vom ADAT Empfänger entnehmen. Der Rückweg ADAT->4xSPDIF ist auf der selben Platine. Und der Teil ist trivial und funktioniert tadellos. Also mal Jumper/Schalter vorsehen. Gute Idee. Damit ist dann sichergestellt, dass falls ein SPDIF Geraät ausser Sync läuft (kann ja schnell passieren) alles ausser sync gerät.

Es soll eigl. Lediglich vor dem Problem schützen, dass man immer in Input 1 ein gültiges SPDIF-Signal haben muss. Und alle Geräte liefern konstantes Signal. Das Signal wird nirgends unterbrochen. Die digital outs der Effektgeräte und Wandler sind _immer_ aktiv. Selbst wenn das Gerät nicht in sync ist.

Reply to
ThomasT

ThomasT schrieb:

Hm, ich dachte die Taktquelle *wird* umgeschaltet! Mag sein daß das Rumzicken nicht damit zusammehängt, aber beim Umschalten von Takten muß man immer aufpassen.

Da hast Du mich mißverstanden. Ich wollte andeuten, daß der MCK von einem der SPDIF-Empfänger kommt, daß aber der ADAT-Transmitter diesen Takt auf Bit- und Worttakt herunterteilt, und diese dann zurück an die SPDIF-Empfänger gegeben werden, wozu diese im Slave-Modus arbeiten müssen.

Es läuft drauf hinaus, das man sich klar werden muß, wer im System eigentlich der Taktmaster sein soll. Ich habe schon X Diskussionen mit Leuten gehabt, die glauben daß man das irgendwie automatisch vom System selber festlegen lassen soll, nicht zuletzt weil man den Anwender für zu blöd hält das selber sinnvoll festzulegen. Aber wieder und wieder geht sowas schief. Meine Moral der Geschichte ist, daß jemand, der Digital-Audio betreibt, sich mit der Taktverteilung beschäftigen muß, wohl oder übel. Die Video-Leute wissen das schon seit jeher, bloß den Audio-Leuten versucht man immer wieder weiszumachen daß man Digital-Audio genauso zusammenstöpseln kann, wie Analog-Audio. Das geht, wenn überhaupt, nur wenn man überall Abtastratenkonverter einbaut.

Hm, Du bist also sicher, daß der Kunde nur die "richtigen" Geräte anschließt. Mag sein, aber ich werde da immer etwas nervös. Vielleicht ist das übertrieben.

--
Cheers
Stefan
Reply to
Stefan Heinzmann

Stefan Heinzmann wrote

Deswegen das ganze Posting.

Zu kompliziert. Die CS84* Receiver (und Transmitter) brauchen und liefern Wordclock == fs Bitclock == 64 * fs und "Masterclock" == 256 * fs

Der ADAT Transmitter braucht nur WC. Er hat keine anderen Eingänge. Der ADAT Reciever ist aber so freundlich, dass er für die SPDIF-Transmitter alle 3 Clocksignal zur Verfügung stellt. Ist eigl. alles recht einfach. Nur das Audioformat (left align, I2S etc., Phasenlage von Clocksignalen) ist etwas tricky, weil nicht alle mit allem können.

Zur Predigt: ich bin da durchaus im Bilde.

Ganz sicher. Denn es gibt genau einen Kunden. Maximal zwei.

Es gibt dafür eigl. professionelle Lösungen z.B. eine digitale Patchbay von Friend-Chip. Selbstbau lohnt finanziell nur aus einem Grund: Musterexemplare.

Reply to
ThomasT

ThomasT schrieb:

Mal nur den Receiver CS8414 im Hardware-Modus: Masterclock ist immer der Ausgangstakt der PLL. Im Slave-Modus sind Wordclock und Bitclock Eingänge. Im Master-Modus sind sie Ausgänge.

Der ADAT-Transmitter ist wohl der AL1401A. Es stimmt, der hat nur einen Wordclock. Das Erzeugen der Bit- und Wordclock-Signale ist aber einfach mit einem synchronen 8-bit Zähler aus dem gewählten Mastertakt möglich. Du brauchst wegen der Taktumschaltung etc. sowieso etwas krause Logik, also warum nicht ein kleines GAL oder eher CPLD nehmen? Sogar das verschobene Wordclock-Signal bei I²S sollte damit kein großes Problem sein.

Ok, genehmigt ;-)

--
Cheers
Stefan
Reply to
Stefan Heinzmann

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.