Hallöchen, ich hab hier ein kleines Projekt. Möchte meinem Mercedes-Navi einen digitalen Ausgang verpassen. Also den I²S-Datenstrom vor dem DA-Wandler abgegriffen und in einen CS8406 gesteckt. Hinten kommt auch irgendwas raus, aber SPDIF scheint es nicht zu sein. Erstmal langsam. Die MCLK vom DA-Wandler (CS4331) ist 16,934 MHz = 384x fs Ich habe einen Teiler 1:3 gebaut, um aauf 128x fs zu kommen. Am Oszi kann ich schön die Signale SData, LRClock und SClK (und MCLK) sehen. Ich sehe bei SData auch daß es sich um I²S handeln muß. Nach der LRCLK-Flanke ist erstmal ein Bit leer, bevor der Datenstrom anfängt. Am Ausgang sehe ich ein Signal mit ~2,8MHz, was ja dem SPDIF-Standard entsprechen würde. Und nach einem Übertrager mit 2x1mH und den passenden Widerständen erkenne ich auch einen Spannungshub von 800mV, was auch ungefähr dem SPDIF-Standard entsprechen müsste. Was mich noch etwas stutzig macht. Der CS8406 kann ja 16 oder 20 bit große Datenwörter verstehen. Das, was in den DA-Wandler reingeht ist aber 18bit groß. Ich habe eine CD mit einem Zero-Bit-Track eingelegt, und müsste da doch lauter Nullen sehen....(nach de Eröffnungs-Sequenzen). Das tue ich aber nicht... Im Anhang mal ein Schematics, wie ich mir das vorstelle. In meinem Probeaufbau ist der Eingangs-Wähler von SDIN (AD-Data, DA-Data, CD-Change) nicht verwendet. Sondern direkt an SDIN vom DA-Wandler angeschlossen. Die etwas tricky 1:3 Teilerschaltung funktioniert zwar, aber das Signal ist nicht 100% symmetrisch. Das Signal müsste ja 177ns lang sein. Bei mir sinds 96ns/81ns.... Und ich habe auch keine 100%ige Übereinstimmung vom LR-Signal zum Masterclock-Signal. (Wie in der Spec gefordert). Der Versatz ist ~10ns Hat irgendjemand 'ne Idee ? Viele Grüße Tobi F.
Ich antworte mir mal selbst... Es wird immer more strange.... Ich hab jetzt nochmal die Spec zum SPDIF durchgelesen. Und jetzt erst gesehen, daß da so ein "Wechselbit-Code" verwendet wird. http://de.wikipedia.org/wiki/Biphase-Mark-Code http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Bmc.png/800px-Bmc.png Also, nochmal das Radio ans Oszi geklemmt. (Mit 'nem Doppel-Inverter vor der LR-Clock) Und das ist das, was ich sehe wenn ein normaler Track läuft http://foto.arcor-online.net/palb/alben/30/1000530/400_3731373338306335.jpg rot ist die LR-Clock. grün der Datenstrom am Ausgang. Und das ist das, was ich sehe, wenn der Zero-Bit-Track läuft. http://foto.arcor-online.net/palb/alben/30/1000530/400_3234666639663065.jpg Wenn man jetzt weiß, daß das ein BMC-Code ist, dann kommen nach der Präamble nur noch Nullen. Also, eigentlich, wie erwartet... Nur die Präamble... Ist irgendwie 10 Bit lang... (oder sogar mehr, wenn am Ende Nullen kommen) Laut der Spec soll die aber nur 4 Bit lang sein. Hm. Seltsam seltsam. Das Problem könnte ja auch sein, daß ich kein einfaches Gerät habe, um SPDIF einzulesen. Vielleicht sind bei mir der Behringer oder das RFX8250 nicht gerade die idealen Test-Kandidaten. (Auch wenn ich den Behringer mal an meinem CD-Player dran hatte, und da ging er) Edit: Das amerikanische Wikipedia sacht die Präamble wär länger... http://en.wikipedia.org/wiki/S/PDIF Das, was ich soweit entziffern konnte: 00100000001... würde passen. Viele Grüße Tobi
Wenn das Timing prinzipiell stimmt, müsstest du schon mal "Lärm" hören können. Ausser du hast das V-Bit falsch oder die anderen Userstatusbits sind nicht richtig gesetzt. Einige Empfänger wollen unbedingt, dass die da signalisierte Samplerate auch mit der tatsächlichen übereinstimmt. Beim Timing muss man mit dem CS8406 etwas aufpassen. Wenn aus irgendwelchen Gründen (schlechte Signalform, kaputter Teiler, etc.) im Masterclock vs. I2S-Clock Takte auseinanderlaufen, kann das der Chip nur bis zu ein oder zwei Words per FIFO auffangen. Darüber hinaus macht er einen Reset, dann ist erstmal wieder kurz Ruhe. Das sollte man aber auf dem Oszi sehen. BTW: Die Präambel (bzw. die 3 Stück) ist eine absichtliche Verletzung des Biphase-Mark. Man kann sie gut daran erkennen, dass eine Stelle mit 3 Takten länger 1 ist also sonst, wo es max. 2 Takte ohne Wechsel gibt. Von der Gesamtlänge entspricht sie aber 4 normalen Datenbits.
Hallo, ich hab mir gestern nochmal das Datenauge von der ganzen Sache angeschaut. Es sieht wohl so aus, als ob ich da noch ein Timing-Problem am Eingang habe. Das Signal am Ausgang sieht zwar aus, wie SPDIF, aber es springt manchmal etwas hin und her. Und dann kann der Empfänger das natürlich nicht rück- schlüsseln. Die Alternative ist jetzt ein DIT4192 oder DIT4096 von TI. Der kann nämlich auch 384x fs ohne so ein Teilergedöhns. Den werde ich jetzt einfach mal probieren. Kost ja net so viel. Danke für Deine Hilfe ! Viele Grüße Tobi
> aber es springt manchmal etwas hin und her.
Jo. Dann gehen dir Takte verloren. Synce das Oszi mal auf den
I2S-Wordclock und schau dann das SPDIF an. Da müsste man deutlich sehen,
dass die Präambel durchwandert.
Bist du 1000%ig sicher, dass das durch den Teiler und nicht durch
schlechte Signalintegrität kommt? Meiner Erfahrung nach sind die
Crystals..äh... Ciruse da etwas mimosig. Mach mal 33-50R in MCLK und
SCLK, oder ganz schnell gepfuscht einige 10-100pF gegen GND. Wenn das
SPDIF sich weniger schnell gegen I2S verschiebt, ist das der richtige
Weg...
Ich hab jetzt einfach mal einen DIT4192 bestellt. Der kann nämlich 384x fs im Hardwaremode verstehen. Dann fällt das ganze Teilergedöhns weg. Jetzt ist das Ding heute gekommen.... in TSSOP !!!! Wie soll ich das den bitte löten ? (Ich hab ja noch keine passende Platine)
Heute kam der DIT4192. Verdammt in TSSOP. Wie soll ich das denn löten. Nach einer ruhigen Tasse Kaffee und der Lupe hab ich mich rangesetzt: http://foto.arcor-online.net/palb/alben/30/1000530/400_6637396430336465.jpg Hoffentlich hab ich alles richtig angeschlossen. Nach einem kleinen Hickup mit meine CD-Laufwerk. Lief nicht an, wenn ich den RST des DIT4192 mit dem D2B-Controller-RST verband) RST soll für 500ms Low sein, und danach High. Ich hab den Pin fix mit einem 10k-Widerstand gegen 5V verbunden. Und mit einem Drähtchen das Reset gegen Masse "simuliert". Konnte ich ein wunderschönes SPDIF-Signal am Ausgang sehen. Getriggert auf die LR-Clock. Wunderbare 2.8MHz. Schön stabil. Nur seh ich keinen Datenstrom. Sehe ich am Ausgang wunderbar stabil ein SPDIF-Signal. Frequenz ist okay mit 2.8Mhz. Preamble scheint auch nicht so verkehrt zu sein. Nur ändert es sich nicht. Hier und da zuckt mal ein Bit.... Aber ich müsste doch einen Datenstrom sehen... Edit: Oszibilder Eingang. Gelb: LR-Clock. Blau:Datenstrom vom Laufwerk http://foto.arcor-online.net/palb/alben/30/1000530/400_3136626362643338.jpg Ausgang Gelb: LR-Clcock Blau: Ausgang Txp http://foto.arcor-online.net/palb/alben/30/1000530/400_3131643066663833.jpg Bissi größer http://foto.arcor-online.net/palb/alben/30/1000530/400_6536653431363535.jpg Ich find, das schaut ganzs sauber aus. Wo hab ich das jetzt wieder verbockt ?
Heureka es geht !!!! Beim Stöbern im Netz nach Beschaltungsbeispielen hab ich 'ne Seite von 'nem Franzosen gefunden: http://www.premiss.org/dotclear/index.php?2008/08/14/16-etude-de-faisabilite-d-un-decodeur-dd-dts-pl-a-base-de-yss912-ou-yss918 Mit einer Schematic: http://www.premiss.org/dotclear/pdf/dit4192-sch.pdf Und siehe da, er hatte drei Pins anders beschaltet. L (für Consumer / Pro-Mode - Copyright) BLSM (für irgendso 'n Eingangs/Ausgangsbit. Blockstart) Und MDAT (ein unwichtiger Pin, für eine Mono-Anwendung) Auch wenn ich nicht vermutete, daß dies der Grund sein könnte, dachte ich, mehr als probieren kannstes net. Also nochmal vorsichtig an der Platine die Drähtchen abgelötet und dabei festgestellt, daß ein Draht nicht richtig dran war... Und zwar die SerialData-Clock. Also alles nochmal nachgelötet. Ans Oszi dran.... Und siehe da. Ein Datenstrom. Dann ans Radio RFX8250 angestöpselt. Hört hört. Da kommt was raus. freu Danke für die Tipps und Unterstützung !
Aber eine Frage hätte ich noch. Hat wer 'ne Eagle Lib für den DIT4192 ? :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.