PCM 1802 und USB-Controller

Gast #390660
Lesenswert?
• ▲
▼
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
Gast #390662
Lesenswert?
• ▲
▼
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 :)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.