Forum: Digitale Signalverarbeitung / DSP / Machine Learning USB oder FW Interface chip mit AES/SPDIF in,out


von Dimitri B. (dimashek)


Lesenswert?

Hallo Leute

Ich bin auf der Suche nach einem Chip, der die Kommunikation zwischen 
einem ADC mit AES oder SPDIF Ausgang und dem PC übernimmt.(Quasi eine 
digitale Soundkarte) Also mit USB oder FW interface.

Gibt es dafür fertige Chips? (Dass man dufür die Driver selbst schreiben 
müsste, ist mir durchaus bewusst)

Soll 24Bit 96kHz fähig sein - wenn Multichannel, umso besser.

Bis jetzt habe ich nur den TI PCM2906 gefunden, der ist aber limitiert 
auf 16Bit 48kHz(richtig?) und hat eingebaute AD/DA, die ich nicht 
brauche.

Wäre für jede Hilfe dankbar.
Gruß

Dimok

von Olaf (Gast)


Lesenswert?

> Wäre für jede Hilfe dankbar.

Dann suche mal auch der Homepage von TI. Die hatten verschiedene
solcher USB-Soundkarten und da waren auch welche mit SPDIF drin.

Ich haette jetzt aber nicht gedacht das SPDIF 24Bit/96khz kann.

Olaf

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich würde mal in den Treibern des Linux-Kernel nachsehen welche Chips 
unterstützt werden und ob man diese auch einzeln kaufen kann.

von Dimitri B. (dimashek)


Lesenswert?

Habe etwas gefunden, TAS1020b
Ist zwar nicht AES zu USB, man kann aber die AES-Daten erst zu PCM 
(I^2S) umwandeln und dann in den 1020b geben.

Kenn jemand gute Lektüre, bezüglich USB Audio, wie es übertragen wird, 
wie verarbeitet?

Gruß
Dimok

von sepp (Gast)


Lesenswert?

Such einfach nach USB Audio Device Class. Bin mir aber nicht sicher ob 
diese 24Bit 96kHz unterstützt.

von Thomas Rudloff (Gast)


Lesenswert?

Hi,

ich habe einen USB nach SPDIF Out mit einem Cypress EZ USB CY7C68013A 
gebaut, der unter XP, Mac OS und Linux mit generischen Treibern läuft.* 
Die SPDIF Wandlung passiert über ein XC9536XL. Ja der reicht!

Im Augenblick bin ich dabei den SPDIF Eingang an den Start zu bringen. 
Version 1 hatte einen ungünstig verschalteten SRC4392 drauf**, so daß 
ich erst in der zweiten Version gemerkt habe, welche Problem dessen PLL 
hat. Trifft auch auf den DIX zu. Finger weg!

Die Version drei hat einen CS8422 drauf. Allerdings hat der erste Proto 
wohl einen Lötfehler. Der CPLD holt keine Daten vom EZ ab. Da weiß ich 
aber noch nichts genaues, da die Platine gerade erst fertig geworden 
ist.


* Unter NT6 noch nicht. Ich habe die Diskriptoren ziemlich vergewaltigen 
müssen um die Fehler von XP zu umschiffen.

** Wenn man den auf Adresse 0 einstellt hängt er den I2C Bus auf und der 
Cypress konfiguriert nicht mehr.

von Thomas R. (thomas-rudloff)


Lesenswert?

Nochmal eingelogt, damit ich eine eMail bekomme.

von Harald (Gast)


Lesenswert?

Hallo Thomas,

ich plane ebenfalls ein USB Audio Interface mit dem Cypress FX2 alias 
CY7C68013A zu bauen, um PCM Daten via I2S auszugeben.

Arbeitest du mit der USB Audio Device Class? Falls ja, hast du evtl. 
Links zu Code Samples zur Audio-Ausgabe für den FX2 gefunden? Ich konnte 
bisher nichts finden, was keinen speziellen USB Treiber erfordern würde.

von Thomas R. (thomas-rudloff)


Angehängte Dateien:

Lesenswert?

Hallo Harald,

ich habe ausgehend von einem Read/Write Example den Code angepaßt. Und 
zwar auf synchron isochron und auf Slave DMA. Das Timing macht das CPLD 
zusammen mit einem CDCE913 VCXO mit PLL. Einen VCXO sollte man schon 
nehmen, da man in der Bastelstube anders keine PLL hinbekommt, die bei 
8kHz bzw. 1kHz Referenz nicht leiert.

Full-Speed sollte generell ohne Treiber bei Windows gehen. High Speed 
geht unter XP wenn man die zwei Bugs im USB Audio Subsystem umschift. 
Damit ist das Teil aber nicht mehr 100% USB Spec konform. Ich vermute, 
daß es deshalb unter 7/Vista so nicht geht. Da ich selbst mit allen 
Computern noch unter XP Prof. arbeite bin ich noch nicht dazu gekommen 
das zu untersuchen. USB Sniffer besitze ich als Hardware. Ich kann also 
direkt sehen, was über die Leitung geht. Software auch, so daß ich sehen 
kann, was Windows an das USB Subsystem schickt.

Beispiele zu Full Speed gibt es zum Beispiel in "USB by Exaymple". Das 
Buch ist IIRC frei als PDF erhältlich, da Intel dieses bezahlt hat. 
Einfach mal suchen. Andere Hersteller haben auch Beispiele zu FS.

Den CS8422 habe ich allerdings bisher nicht zum laufen bekommen. Der 
hängt mir den Xilinx auf. Ich weiß nicht wie das gehen kann. 
Wahrscheinlich ein Lötfehler oder ein ganz übler Fehler in meiner 
Leiterplatte. Der Cypress konfiguriert jedenfalls.

Allerdings weiß ich nicht, ob ich das weiter verfolgen soll, da ich mir 
ein Atmel SAM3U-EK besorgt habe. Da bekomme ich später für €3.60 einen 
ARM, der genügend Power hat noch Bytes zu sortieren oder die SPDIF 
Kodierung in Software zu machen. I2S Ausgang hat der auch schon. Den 
würde ich gerne noch später noch mit einem DSPB56725 von Freescale 
kombinieren. Der hat einen SPDIF Eingang/Ausgang und SRC für bis zu fünf 
Kanälen für kleines Geld schon drin.

Derzeit arbeite ich mich in diesen auf Basis des Dual CDC Examples ein. 
Das Teil über ein Hyperterminal zu konfigurieren, falls nötig, hätte 
schon Charme.

Kannst Dich ja mal melden, falls Du Interesse an einer Zusammenarbeit 
hast. Platinen Design und Löten ist bei mir kein Problem. Eine günstige 
Quelle für PCBs habe ich auch.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Hallo Thomas,

ich wuerde fuer VLF Experimente gerne ein preiswertes 192 kHz faehiges 
USB Device bauen. Allerdings fehlt mir noch einiges an Verstaendniss zu 
USB Audio, I2S und aehnlichen. Fuer mich ist es immer am einfachsten, 
ein (einigermassen )funktionierendes Projekt abzuaendern. Ich wuerde 
mich freuen, wenn ich zum Abschaetzen, ob Dein Projekt fuer mich 
sinnvoll ist, mal einen Blick in Deine Projektquelle werfen koennte.

Ausserdem wuerde ich statt Atmel SAM3U plus DSPB56725 einen Cortex M4 
wie den STM32F4 ins Gespraech bringen wollen.

von Thomas R. (thomas-rudloff)


Lesenswert?

Hallo Uwe,

den STM32F4 hatte ich auch in der engeren Wahl, habe ihn aber wieder 
verworfen (ich habe zwei Eval-Boards hier), da er für High Speed einen 
externen Phy braucht. Da ein DSPB56725 günstiger als ein SPDIF Empfänger 
mit Sample Rate Converter ist, habe ich diesen für die Endausbaustufe 
vorgesehen.

Willst Du mit dem Teil senden oder empfangen oder beides? Unter Windows 
oder unter Linux? Wieviele Kanäle? Wegen der XP Bugs braucht man einiges 
an USB Buffer. Unter Linux oder MacOS sollte das kein Problem sein. Ich 
meine das schon unter Linux getestet zu haben bevor ich die XP Fixes 
eingebaut habe.

Das Gehäuse ist übrigens dieses hier:

http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-50-ME/index.html?;ACTION=3;LA=446;ARTICLE=73285;GROUPID=5195;artnr=AKG+55+24+50+ME

Die gibt es auch länger:

http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-80-ME/index.html?;ACTION=3;LA=446;ARTICLE=73286;GROUPID=5195;artnr=AKG+55+24+80+ME
http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-100-ME/index.html?;ACTION=3;LA=446;ARTICLE=73287;GROUPID=5195;artnr=AKG+55+24+100+ME

Da könntest Du eine meiner Platinen einbauen und über geschätzte fünf 
Drähte (plus zwei, falls Du I2C brauchst) Deinen Teil adaptieren, falls 
Du dafür keine eigene Platine machen willst.

Kannst Du den FX2 im QFN Gehäuse löten (lassen)? Ist ein bischen 
schwierig ohne Mikroskop. USB Mikroskop Kamera geht zur Not auch. Ich 
könnte Dir dann eine oder zwei Platinen schicken. Ich habe hier sowieso 
noch einige liegen, da mein Hersteller immer eine Mindestfläche 
verlangt, die dann immer noch günstiger als PCB Pool ist. Ich habe aber 
auch noch Platinen für TSSOP Gehäuse. Allerdings sind diese nicht auf 
dem letzten Stand, so daß ich jetzt nicht weiß, welche Limitierungen die 
haben. Auf alle Fälle fehlt ein Draht am FX2. Jedenfalls sollte das ein 
Job für einen Nachmittag sein eine I2S Schnittstelle in den CPLD zu 
hacken. Ärgerlich ist nur, daß man die little endian Daten des PCs auf 
big endian bringen muß. Das braucht Flip Flops. Geschrieben ist das CPLD 
in VHDL.

Kannst Du mit dem Keil Projektfile etwas anfangen, oder machst Du das 
Open Source?

Hast Du Xilinx ISE am Start? Ich habe hier Version 11 in Betrieb.

Grüße
Thomas Rudloff

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Thomas Rudloff schrieb:
> Hallo Uwe,
>
> den STM32F4 hatte ich auch in der engeren Wahl, habe ihn aber wieder
> verworfen (ich habe zwei Eval-Boards hier), da er für High Speed einen
> externen Phy braucht. Da ein DSPB56725 günstiger als ein SPDIF Empfänger
> mit Sample Rate Converter ist, habe ich diesen für die Endausbaustufe
> vorgesehen.
>
> Willst Du mit dem Teil senden oder empfangen oder beides?

Empfangen.

> Unter Windows
> oder unter Linux?

Meine primaere Platform ist Linux, allerdinsg arbeiten Kollegen oder 
Studenten auch mit Windows.

> Wieviele Kanäle?
Mindestens einer, mehrere waeren aaber auch gut, um z.B. GPS 
Sekundenimpulse oder Signale  andere Antennen auch damit zu empfangen

> Wegen der XP Bugs braucht man einiges
> an USB Buffer. Unter Linux oder MacOS sollte das kein Problem sein. Ich
> meine das schon unter Linux getestet zu haben bevor ich die XP Fixes
> eingebaut habe.
>
> Das Gehäuse ist übrigens dieses hier:
>
> 
http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-50-ME/index.html?;ACTION=3;LA=446;ARTICLE=73285;GROUPID=5195;artnr=AKG+55+24+50+ME
>
> Die gibt es auch länger:
>
> 
http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-80-ME/index.html?;ACTION=3;LA=446;ARTICLE=73286;GROUPID=5195;artnr=AKG+55+24+80+ME
> 
http://www.reichelt.de/Fischer-AKG-Geraetebausaetze/AKG-55-24-100-ME/index.html?;ACTION=3;LA=446;ARTICLE=73287;GROUPID=5195;artnr=AKG+55+24+100+ME
>
> Da könntest Du eine meiner Platinen einbauen und über geschätzte fünf
> Drähte (plus zwei, falls Du I2C brauchst) Deinen Teil adaptieren, falls
> Du dafür keine eigene Platine machen willst.
>
> Kannst Du den FX2 im QFN Gehäuse löten (lassen)?
Zur Not schon, aber QFP ist besser zu kontrollieren.
>  Ist ein bischen schwierig ohne Mikroskop.

Mikroskop ist vorhanden.

> USB Mikroskop Kamera geht zur Not auch. Ich
> könnte Dir dann eine oder zwei Platinen schicken. Ich habe hier sowieso
> noch einige liegen, da mein Hersteller immer eine Mindestfläche
> verlangt, die dann immer noch günstiger als PCB Pool ist. Ich habe aber
> auch noch Platinen für TSSOP Gehäuse. Allerdings sind diese nicht auf
> dem letzten Stand, so daß ich jetzt nicht weiß, welche Limitierungen die
> haben. Auf alle Fälle fehlt ein Draht am FX2. Jedenfalls sollte das ein
> Job für einen Nachmittag sein eine I2S Schnittstelle in den CPLD zu
> hacken.

Das ist dann aber nicht das funktionierene Projekt, dass ich dann  nach 
den geaenderten Anfordeungen erweitere. Ich wuerde gerne die Anzahl 
offener Enden klein halten

> Ärgerlich ist nur, daß man die little endian Daten des PCs auf
> big endian bringen muß. Das braucht Flip Flops. Geschrieben ist das CPLD
> in VHDL.

Ich bevorzuge da einen XC3S50AN, Der hat deutlich mehr Flipflops bei 
vertretbaren Preis und Verilog ;-)

> Kannst Du mit dem Keil Projektfile etwas anfangen, oder machst Du das
> Open Source?

Mit Open Source lassen sich Projekte viel besser in Source Revision 
Systemen verwalten. Ein Makefile ist einfacher zu lesen als ein 
propriaetaeres Projekt.

>
> Hast Du Xilinx ISE am Start? Ich habe hier Version 11 in Betrieb.

13.4

>
> Grüße
> Thomas Rudloff

von Thomas R. (thomas-rudloff)


Lesenswert?

Uwe Bonnes schrieb:
> Thomas Rudloff schrieb:
>>
>> Willst Du mit dem Teil senden oder empfangen oder beides?
>
> Empfangen.
>
>> Unter Windows
>> oder unter Linux?
>
> Meine primaere Platform ist Linux, allerdinsg arbeiten Kollegen oder
> Studenten auch mit Windows.
>
>> Wieviele Kanäle?
> Mindestens einer, mehrere waeren aaber auch gut, um z.B. GPS
> Sekundenimpulse oder Signale  andere Antennen auch damit zu empfangen
>
Mit zwei Kanälen kommt man mit den 4k Endpoint Buffern gut hin. Da 
braucht man sich nicht das Gehirn zermartern.
>
> Das ist dann aber nicht das funktionierene Projekt, dass ich dann  nach
> den geaenderten Anfordeungen erweitere. Ich wuerde gerne die Anzahl
> offener Enden klein halten
>
Doch! Die Rev.1 (TSSOP mit Reworks) und die Rev.2 (QFN) laufen. Die 
Rev.3 (QFN mit Crystal SRC) läuft noch nicht. Da gehe ich aber davon 
aus, daß ich die auch zumindest ohne Crystal SRC zum laufen bekomme. 
Entweder ist der Crystal falsch verdrahtet oder die Platine hat einen 
Fehler. Bei dem abstrusen Fehlerbild würde ich aber auf letzteres 
tippen.

>> Ärgerlich ist nur, daß man die little endian Daten des PCs auf
>> big endian bringen muß. Das braucht Flip Flops. Geschrieben ist das CPLD
>> in VHDL.
>
> Ich bevorzuge da einen XC3S50AN, Der hat deutlich mehr Flipflops bei
> vertretbaren Preis und Verilog ;-)
>
Der XC9572XL ist vollkommen ausreichend um einen FIFO zu bedienen. Den 
Spartan würde ich nehmen, wenn ich einen eigenen USB Media Access 
Controller schreiben würde. Ist zwar mit ULPI kein Ding, aber die 
Baustelle wollte ich nicht auch noch aufreisen.

>> Kannst Du mit dem Keil Projektfile etwas anfangen, oder machst Du das
>> Open Source?
>
> Mit Open Source lassen sich Projekte viel besser in Source Revision
> Systemen verwalten. Ein Makefile ist einfacher zu lesen als ein
> propriaetaeres Projekt.
>
Klar, wenn man es erstmal am laufen hat......
Läuft Dein Setup auch unter Windows? Mit Cygwin?
>>
>> Hast Du Xilinx ISE am Start? Ich habe hier Version 11 in Betrieb.
>
> 13.4
>
OK, die fünf Zeilen, die man für die I2S Schnittstelle braucht sind auch 
in zwei Versionen leicht gepflegt. Den Phasenvergleicher habe ich 
sowieso in den FX2 verlagert. Der hat sonst nichts zu tun.

Die Chips auf dem Foto von oben nach unten und links nach rechts:

CY7C68013A
CDCE913
I2C EEPROM
CS8422
XC9572XL

Früher(tm) konnte man die auch mal auf den Chips lesen. Vielleicht war 
die Farbe nicht umweltverträglich.

von Thomas R. (thomas-rudloff)


Angehängte Dateien:

Lesenswert?

Hier der Schaltplan.

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.