Forum: Mikrocontroller und Digitale Elektronik Audio Delay für S/PDIF: suche Bauteile und Tipps


von Thomas A. (punisher)


Lesenswert?

Hallo zusammen!

Ich habe folgendes vor: S/PDIF von einer Quelle -> Verzögerung -> S/PDIF 
raus zum Verstärker.

Gedacht ist das Ganze, um die Asynchronität zwischen Bild und Ton 
auszugleichen, die entsteht, wenn ein aktueller LCD-Fernseher verwendet 
wird und der Ton direkt vom DVB-S-Receiver (oder DVD-Player) zum 
Verstärker geleitet wird. Das Bild wird durch den Fernseher spürbar 
verzögert; der Ton durch die Direkt-Verbindung Receiver->Verstärker 
nicht.

Ein Mikrocontroller scheint mir für diese Aufgabe zu langsam zu sein, da 
S/PDIF dank Biphase-Mark-Code bis zu ca. 6 MBaud/s erreichen kann 
(korrekt?).


Folgende ICs scheinen mir auf den ersten Blick geeignet:

Verzögerung: MAD4868A oder TPA5050, arbeiten mit I2S-Daten
S/PDIF nach I2S: CS8427 (einer reicht für S/PDIF->I2S und I2S->S/PDIF)
Steuerung: ATMega32 o.ä. (habe ich schon erste Erfahrungen mit)

Mein größtes Problem ist die Beschaffung der ICs. Den MAD4868A finde ich 
gar nicht, den TPA5050 bei Farnell (kostet aber 20€ Aufpreis für den 
Versand aus den USA, das ist mir eigentlich zu teuer), den CS8427 
ebenfalls nur bei Farnell. An Studenten liefern die ja anscheinend, das 
würde also prinzipiell funktionieren.

Weitere Probleme sind dann das Schaltungsdesign und die Fehlersuche im 
Fehlerfall, da ich kein Oszilloskop habe. Kann ich ICs dieser Art 
"einfach so" irgendwie verdrahten, oder sind die auf sauber geplante, 
geätzte Platinen angewiesen (parasitäre Induktivitäten/Kapazitäten, 
evtl. Laufzeiten, usw.)? Anders gefragt: kann mir jemand mit Erfahrung 
sagen, ob das was werden könnte? :-)


Grüße,
Thomas

von Olaf (Gast)


Lesenswert?

> "einfach so" irgendwie verdrahten, oder sind die auf sauber geplante,
> geätzte Platinen angewiesen (parasitäre Induktivitäten/Kapazitäten,
> evtl. Laufzeiten, usw.)?

Es bedarf sicher eines ordentlichen Aufbaus, also z.B 
Abblockkondensatoren, und etwas Erfahrung hier und da, aber machbar waer 
das wohl.


Es waere vermutlich sinnvoller das mit einem FPGA zu machen.

Rechne dir mal aus wieviel Speicher du brauchst. Ich koennte mir 
vorstellen das sich alles in ein einziges FPGA implementieren laesst 
wenn du
einen groesseren nimmst. Notfalls braucht es halt noch externes Ram.


Olaf

von Thomas A. (punisher)


Lesenswert?

Erfahrung habe ich kaum, aber ich kann mich durch die Datenblätter 
wühlen. Was dort an Kondensatoren u.ä. in den Beispiel-Schaltungen 
auftaucht, würde ich berücksichtigen. Aber ich kann z.B. nicht mit einer 
geätzten SMD-Platine dienen, wo die Kondensatoren 1mm entfernt von den 
IC-Anschlüssen sitzen. Ist die Frage, wie wichtig das wäre.

Von FPGAs habe ich bisher überhaupt keine Ahnung, und da es für dieses 
Einsatzgebiet ja fertige ICs gibt, würde ich die auch durchaus benutzen, 
wenn ich sie denn (für bezahlbare Preise) bekomme.

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Sowas gibts fertig zu kaufen für 'nen schmalen Taler.

Wenn du es unbedingt selber machen willst dann mit entsprechend viel 
Speicher und einen halbwegs schnellen Controller. SPDIF 
Receiver/Transmitter/Transceiver gibts z.B. von Texas Instruments: 
DIR9001 etc. kann man prima (kostenlos) als Samples beschaffen.

von Thomas A. (punisher)


Lesenswert?

T. H. wrote:
> Sowas gibts fertig zu kaufen für 'nen schmalen Taler.
>
> Wenn du es unbedingt selber machen willst

Äh, nein, will ich nicht!
Wenn Du eine bezahlbare Lösung hast, immer her damit. :-)
Alle Varianten, die ich bisher gefunden habe, waren sehr teuer (mehrere 
100€).

Mein Ziel ist es, möglichst günstig und möglichst einfach ein 
S/PDIF-Signal zu verzögern (AC3-kompatibel).

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Thomas A. wrote:
> T. H. wrote:
>> Sowas gibts fertig zu kaufen für 'nen schmalen Taler.
>>
>> Wenn du es unbedingt selber machen willst
>
> Äh, nein, will ich nicht!
> Wenn Du eine bezahlbare Lösung hast, immer her damit. :-)
> Alle Varianten, die ich bisher gefunden habe, waren sehr teuer (mehrere
> 100€).

"Schmaler Taler" war eher ironisch gemeint. Bevor man selber rmfummelt 
ist es IMHO cleverer wenn man sich einen anständigen A/V-Amp kauft - die 
haben meist Lipsync bis 200ms und andere schöne Sachen.

> Mein Ziel ist es, möglichst günstig und möglichst einfach ein
> S/PDIF-Signal zu verzögern (AC3-kompatibel).

Wenn man nur die (digitalen) Worte verzögert ergibt sich die 
AC3-Kompatibilität von alleine - und das macht man zwangsläufig so.

Nunja, wenn du's selber und billig machen willst dann musst du mal 
nachgucken welcher kleine Controller I²S-Schnittstellen und evtl. ein 
schnelles Interface für ext. Speicher hat (je nachdem ob es nötig 
ist/wie sehr du verzögern möchtest). Man kann das auch mit einem 
FPGA/CPLD erschlagen, aber da scheinst du ja kein Freund von zu sein - 
verständlich.

von Thomas A. (punisher)


Lesenswert?

T. H. wrote:
> Bevor man selber rmfummelt
> ist es IMHO cleverer wenn man sich einen anständigen A/V-Amp kauft - die
> haben meist Lipsync bis 200ms und andere schöne Sachen.

Nun, die ganze Anlage gehört meinem Vater, der Verstärker ist noch sehr 
neu, kann aber eben leider kein Lipsync (keinerlei Verzögerung möglich).
Ein neuer Verstärker kommt nicht in Frage. ;-)

> Nunja, wenn du's selber und billig machen willst dann musst du mal
> nachgucken welcher kleine Controller I²S-Schnittstellen und evtl. ein
> schnelles Interface für ext. Speicher hat (je nachdem ob es nötig
> ist/wie sehr du verzögern möchtest).

Es würde ja schon reichen, wenn mir jemand Quellen für die o.g. ICs 
nennen kann. Damit würde es ziemlich sicher funktionieren, soweit habe 
ich die Dokus schon gelesen. Denn möglicherweise gibt es ja Quellen, die 
ich über Google bisher nicht gefunden habe.

- Ein µController, welcher mindestens 6 MHz an den Eingängen verkraftet 
(flankengesteuert), und dann auch noch genügend Power hat, um die Daten 
zumindest in einen Speicher zu schreiben und verzögert wieder 
auszugeben, gibt es sowas? Der müßte doch jenseits von 50 MHz haben, 
grob geschätzt, eher mehr? Und dann ist der garantiert nicht mehr 
günstiger als die o.g. ICs.

von Jörg S. (joerg-s)


Angehängte Dateien:

Lesenswert?

Es gibt da ein schönes Delay-IC von Micronas (MAD4868), da dürfte man 
aber wohl auch nicht so gut ran kommen...

von Falk B. (falk)


Lesenswert?

@  Thomas A. (punisher)

>- Ein µController, welcher mindestens 6 MHz an den Eingängen verkraftet
>(flankengesteuert), und dann auch noch genügend Power hat, um die Daten
>zumindest in einen Speicher zu schreiben und verzögert wieder
>auszugeben, gibt es sowas? Der müßte doch jenseits von 50 MHz haben,

Für sowas nimmt man ein FPGA oder CPLD. FPAG hat schon internen 
Speicher, allerdings braucht S/PDIF bei 3 MBit/s = 375kB/s. Selbst für 
nur 100ms braucht es 37,5kB, das ist schon ein recht grosses FPGA. Also 
dann doch lieber CPLD + kleiner SRAM.

Allerdings muss man sich schon ziemlich gut in der Materie auskennen, um 
das "mal schnell" zu machen.

Der CS8427 scheint mir oprimal. Der erledigt die "Drecksarbeit" der 
Dekodierung und Encodierung. I2S ist primitiv, das kann man leicht per 
CPLD empfangen, parallelisieren und in einen SRAM schreiben. 
Gleichzeitig verzögert wieder auslesen und ausgeben.

>grob geschätzt, eher mehr? Und dann ist der garantiert nicht mehr
>günstiger als die o.g. ICs.

MFG
Falk

von Thomas A. (punisher)


Lesenswert?

Jörg S. wrote:
> Es gibt da ein schönes Delay-IC von Micronas (MAD4868), da dürfte man
> aber wohl auch nicht so gut ran kommen...

Weiß ich, siehe mein erstes Posting. :-)

Falk Brunner wrote:
>
> Der CS8427 scheint mir oprimal. Der erledigt die "Drecksarbeit" der
> Dekodierung und Encodierung. I2S ist primitiv, das kann man leicht per
> CPLD empfangen, parallelisieren und in einen SRAM schreiben.
> Gleichzeitig verzögert wieder auslesen und ausgeben.

Ok, dann werde ich mir diese Lösung mal überlegen...
"Mal schnell" wird dann wirklich nichts, ich muß erstmal nachsehen, was 
überhaupt ein CPLD ist. :D
Der CS8427 ist aber auch nicht wirklich gut zu bekommen, außer Farnell 
habe ich keine einzige Quelle gefunden.

Hat niemand gute Quellen für etwas "exotischere" ICs (siehe 1. Posting)? 
:-)


Vielen Dank soweit!

von Thomas A. (punisher)


Lesenswert?

Was wäre denn eigentlich mit dem AT91SAM7X512?
Der hat 128KB RAM und einen Synchronous Serial Controller (SSC), der I2S 
versteht und ein- und ausgeben kann. - Und noch 10000 weitere, 
unbenötigte Funktionen. :D


Auf den AT91SAM7X512 kam ich durch dieses Projekt:

http://www.mikrocontroller.net/articles/ARM_MP3/AAC_Player

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Thomas A. wrote:
> Was wäre denn eigentlich mit dem AT91SAM7X512?

Sieht doch chic aus. Aber sowas macht man mit einem CPLD oder gar FPGA - 
wenn man zuviel Geld hat. Das scheint ein ungeschriebenes Gesetz zu 
sein. Hat sich eh erledigt: siehe unten.

> Hat niemand gute Quellen für etwas "exotischere" ICs (siehe 1. Posting)?

Samples! Oder willst du eine Serie auflegen? Ist unkompliziert bei TI.

  DIX 4192 - Transceiver
  DIR 9001 - Receiver
  DIT 4096 - Transmitter
  DIT 4192 - Transmitter

> TPA5050

Ist ja ein klasse Teil! Gibts auch als Sample bei TI. Dann noch ein 
kleiner µC mit TWI/I²C zum konfigurieren dran und fertig ist die Laube.

von Thomas A. (punisher)


Lesenswert?

Danke!

Die TI-ICs sehen ganz brauchbar aus, ein ATMega zur Steuerung (+Tasten, 
7-Segment-Display, etc.)...
So langsam erscheint mir das Ganze realisierbar. :-)

Das Schwierigste wird für mich der Anschluß dieser ganzen fies kleinen 
SMD-ICs werden, bzw. das Auflöten; hab dazu aber auch schon einiges hier 
gelesen.
Mit sowas hier sollte das doch eigentlich klappen:

http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=C94;GROUPID=3374;ARTICLE=34778;START=0;SORT=preis;OFFSET=1000

Oder besser eins mit Thermal Pad, das will der TPA5050 nämlich haben.

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Thomas A. wrote:
> Das Schwierigste wird für mich der Anschluß dieser ganzen fies kleinen
> SMD-ICs werden, bzw. das Auflöten; hab dazu aber auch schon einiges hier
> gelesen.
> Mit sowas hier sollte das doch eigentlich klappen:
>
> 
http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=C94;GROUPID=3374;ARTICLE=34778;START=0;SORT=preis;OFFSET=1000

Gibts auch einzeln. Zum Beispiel bei Segor (ein beliebiges Beispiel: 
"QFP 48-DIP48/Platine"). Die TSSOP-IC's sind gut zu löten.

> Oder besser eins mit Thermal Pad, das will der TPA5050 nämlich haben.

QFN habe ich noch nicht verbaut. Wegen des Pads würde ich mir keine 
großen Gedanken machen (du machst wahrscheinlich max. 9mW, 2.5W ist max. 
value) - evtl. als "dead bug" löten und auf das Pad ein Kupferstück 
löten. Manche machen ein großes Via unter das Pad und lassen es mit Zinn 
volllaufen.

von JojoS (Gast)


Lesenswert?

@Thomas A.: beim TV meiner Eltern ist mir die Asynchronität auch gerade 
aufgefallen. Dort habe ich dann das Audiokabel vom Receiver an das 
Display umgesteckt. Am Philips Cineo gibts dafür extra einen 
Display-Synchronen Ausgang. War jetzt nur analog, ob der auch einen 
verzögerten digitalen Ausgang hat weiss ich nicht, aber vielleicht hat 
dein Fernseher da Einstellungen oder Ausgänge dafür? Ich habe einen Pace 
Receiver, da kann man das Delay im Receiver einstellen. Das Problem ist 
bei den digitalen Geräten ja nicht neu.

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


Lesenswert?

Das Ganze würde auch komplett mit AVRs funktionieren. Etwas ähnliches 
habe ich gerade mit einem XMega laufen, der auf eine SD-Karte Audiodaten 
mit 48kHz/16Bit schreibt. Der XMega kann 16MByte SRAM und bzw. 128MByte 
SDRAM verwalten. Mit mehreren SRAM-ICs, als Bänke aufgeteilt, würde dies 
auch mit einem Mega128 oder anderem AVR mit Speicherinterface 
funktionieren. Der Trick: als Aufbereiter eines von einem A/D kommenden 
I2S-Streams habe ich einen Tiny2313 hergenommen, der aus den seriellen 
Daten 4x 8Bit parallel pro Sample ausgibt, die nur alle 48kHz dem 
Hauptcontroller übermittelt werden. Im Gegenzug werden 4x 8Bit durch 
einen zweiten Tiny2313 in einen I2S-Stream gewandelt, der an einen DAC 
bzw. einen SPDIF-Transmitter angekoppelt ist. Sämtliche Spezial-ICs sind 
von Cirrus (CS8401/8416, CS5343, CS4344) und erhältlich bei 
CSD-electronics - auf Anfrage.

von Thomas A. (punisher)


Lesenswert?

T. H. wrote:
> Gibts auch einzeln. Zum Beispiel bei Segor (ein beliebiges Beispiel:
> "QFP 48-DIP48/Platine").

Das sieht doch super aus. Danke!

> evtl. als "dead bug" löten und auf das Pad ein Kupferstück
> löten.

Du meinst quasi umgedreht, auf den Rücken? Gute Idee!

JojoS wrote:
> War jetzt nur analog, ob der auch einen
> verzögerten digitalen Ausgang hat weiss ich nicht, aber vielleicht hat
> dein Fernseher da Einstellungen oder Ausgänge dafür?

Der Philips 42PFL7423D/12 hat zwar einen verzögerten Digitalausgang, 
aber keinerlei digitale Ton-Eingänge, die Verzögerung wäre also nur für 
DVB-T benutzbar, was aber uninteressant ist; die externen DVB-S-Receiver 
und der DVD-Player sind die Quellen.

@Travel Rec.: ich werde es mir überlegen. ;-) Die speziellen 
Verzögerungs-ICs sind mir allerdings lieber.

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Travel Rec. wrote:
> Das Ganze würde auch komplett mit AVRs funktionieren.

Warum einfach wenns auch kompliziert geht?  ;^)


Thomas A. wrote:
> Du meinst quasi umgedreht, auf den Rücken? Gute Idee!

Das hat sich mal jemand anderes ausgedacht...

von DukeFelix (Gast)


Lesenswert?

Behringer Shark Audiodelay

Kostet um die 80 Euro.
http://www.musik-schmidt.de/Behringer-Shark-DSP-110.html?refID=1

von Thomas A. (punisher)


Lesenswert?

Kann kein S/PDIF, und darum ging es ja, insbesondere eben auch AC3-Ton 
usw...

von TI Fan (Gast)


Lesenswert?

Von TI gibts solche Bausteine. Die werden wohl in zahlreichen TV-Geräten 
eingesetz.

TPA5050 -> http://focus.ti.com/docs/prod/folders/print/tpa5050.html
TPA5051 -> http://focus.ti.com/docs/prod/folders/print/tpa5051.html
TPA5052 -> http://focus.ti.com/docs/prod/folders/print/tpa5052.html

Viel Erfolg damit

von Thomas A. (punisher)


Lesenswert?

Jo, so einen habe ich verwendet, zusammen mit einem DIX4192. In ca. 1 
von 10 Mal Spannung anstellen funktioniert die Schaltung auch 
einwandfrei, auch für 30 Minuten und länger am Stück, nur die anderen 9x 
nicht so ganz. ;-)
Aufgrund von Zeitmangel ist das Projekt eh auf Eis, und wirklich 
notwendig ist es inzwischen auch nicht mehr...

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.