www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP PCM 1802 und USB-Controller


Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre eigentlich mit PCM2900 bis PCM2906 von TI. Da musst du
eigentlich nurnoch die Platine dazu entwerfen :)

Autor: Timo Birnschein (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.