Hallo Leute, ich habe im Rahmen einer Studienarbeit die Aufgabe eine USB-Soundkarte zu entwerfen. Dabei stehe ich vor diversen Problemen, die ich teilweise (arbeite schon gut drei Monate daran) gelöst habe - oder zumindest Ansätze existieren. Ein wichtiger Punkt ist die Synchronisation zweier dieser Soundkarten. Dazu habe ich bereits einen Plan, jedoch noch nicht für das folgende Problem: Ich möchte zur AD-Wandlung gerne den PCM1802 verwenden. Dieser verlangt jedoch eine Synchronisation zwischen der LRCK (rechts-links-Clock) und SCKI (System-Clock), die nicht weiter als 6 BCK (Bit-Clock)s pro Frame differieren darf, da sonst der Wandler einfach abschaltet. Mir stellen sich dadurch folgende Fragen: 1. Wie kann ich ein 25Mhz+ Signal auf SCKI mit einem halbwegs gewöhnlichen und stromsparenden Prozessor mit einer LRCK, die viel langsamer läuft, synchronisieren? Kaum machbar ohne externe Hardware, oder gibts da Möglichkeiten? 2. Mit hilfe welcher Maßnahmen stellt der AD-Wandler fest, dass ich das Fenster nicht einhalte? Er müsste dazu eine Art mittelwert geben, da kein(!) festes Verhältnis zwischen SCKI und LRCK vorgegeben ist. Das nächste Problem ist die Auswahl der USB-Bausteine. Ich hätte gerne - aus Platz-, Strom- und Firmware-Gründen - einen USB-Chip, mit integriertem Controller wie z.B. der Cypress USB 2.0-CY7C68013 oder -14A. Dieser müsste jetzt nurnoch schnell genug sein, um zwei AD-Wandler und einen DA-Wandler auszulesen und mit Daten zu versorgen. Leider ist der eingebette 8051 offenbar nicht schnell genug, da er er bei 48Mhz nur 12 MIPS schafft, ich aber selbst assembliert mindestens 15-20 MIPS benötige um Daten über den USB zu holen und in den FIFO des jeweiligen Endpunktes des USB-Devices zu schreiben (hier zum Glück in HW gelöst), die Daten mittels Controller aus dem FIFO in den DA-Wandler (PCM1748) zu shiften (Steuerleitungen wie BCK ect. müssen dazu mehrfach getriggert werden) UND zusätzlich noch aus zwei AD-Wandlern seriell Daten abzuholen und in jeweils einen FIFO schreiben, der dann in HW vom HW-USB-Teil des Controllers abgeholt wird. Das tolle am Cypress ist, dass er zum einen einfach zu programmieren ist, zum andere alle USB-Seitigen Probleme in HW löst, man also nurnoch ein paar Device-Beschreibungen anlegen muss und schon kann man anfangen damit zu arbeiten. Leider ist der Controller (so meine bisherige Vermutung) nicht schnell genug. Wenn mir jemand ein paar Tipps und Anregungen geben könnte, wäre ich wirklich sehr Dankbar, da die Suche nach passenden Controllern und Bausteinen ohne Namen alleine immer sehr mühsam ist und merkwürdigerweise von Chipherstellern auch nicht unbedingt gefördert wird. Mit freundlichen Grüßen Timo Birnschein
Wie wäre eigentlich mit PCM2900 bis PCM2906 von TI. Da musst du eigentlich nurnoch die Platine dazu entwerfen :)
Hm, die Idee ist nicht schlecht, allerdings ein kurzer Blick auf das Datenblatt verrät mir, dass das nicht geht. Punkt eins: Ich brauche 48Khz bei 24 Bit Auflösung. Ich brauche ca. 105db SNR, 10ns maximalen Jitter und andere tolle Werte bei denen man sich an den Kopf fassen muss. z.B. dass die Karte eigentlich 3 Eingänge und einen Ausgang haben soll, aber das ist ne andere Geschichte. Aber die Idee war schonmal sehr gut :)
TI ist doch schon mal gar nicht so schlecht, da gibts auch USB-Controller mit integriertem I2S Interface für Codecs http://focus.ti.com/docs/prod/folders/print/tusb3200.html http://focus.ti.com/docs/prod/folders/print/tusb3200a.html
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.