Hallo, hat evtl von Euch schon jemand Erfahrungen mit dem TI TUSB3200A USB Audio Controller gemacht? Ich würde den gerne zum bau eines USB-Soundmoduls nutzen. Habe die Sample-Firmware schon recht gründlich angesehen und denke das ist machbar. Würde sie nur auf SDCC portieren, da ich keinen Keil Compiler habe. Leider scheint es für den Chip keine Eval-Boards mehr zu geben, daher wäre es natürlich um so spannender falls jemand schon Erfahrungen mit dem Ding hat und weiß worauf man achten sollte? Oder gar jemand der selbst schon mal eine Firmware für das Teil geschrieben hat? Gruß, Julian
>Habe die Sample-Firmware schon recht gründlich angesehen und denke das >ist machbar. vergiss die Orginal Software. Die ist nicht besonders gut, und an einigen Stellen sogar falsch. >Würde sie nur auf SDCC portieren, da ich keinen Keil Compiler habe. kann man machen. Bringt aber eine Fehlerquelle mehr. Das Eval Board war noch nie in DE lieferbar. Ich hatte mir deshalb ein eigenes Board gebaut. - TUSB im Extern mode - 80c52 Controller mit Keil Monitor - Codec Interface auf ner Stiftleiste. >Oder gar jemand der selbst schon mal eine Firmware für das Teil >geschrieben hat? ja habe ich sowohl für den TUSB3200A als auf für den TAS 1020. Beide Teile waren kommerziell erfolgreich. Ein 3. Design blieb nur Studie. Die TI Chips waren mit Abstand die besten Teile für USB Audio. Ab der Rev A haben Sie auch ganz gut funktioniert. Thomas
Hallo Thomas, danke für den Input. Das die TI-Software nicht das gelbe vom Ei ist war mir schon klar. Aber zumindest als Grundlage hätte ich sie herangezogen. Insbesondere da das Datenblatt an vielen Stellen ja sehr oberflächlich ist. Hast Du mal eine Firmware gebaut die den Asynchronen USB-Modus beherrscht? - Für wirklich guten klang ist das imho unerlässlich. Viele Grüße, Julian
Was meinst du mit Asynchron? Falls du Audio über bulk machen willst: vergiss es. Es sei denn du willst einen kompletten Audio Treiber schreiben. Ich habe sowohl rate adaptiv als auch synchron gemacht. USB Audio geht zumindest unter Win nur gut wenn du die ISO pipes sychron machst. Bei rate adaptiv wird das nicht bitgenau. Das Hauptproblem bei mir war eigendlich immer der mangelnde Speicherplatz. Wenn du mit dem SDCC arbeitest wirst du sehr schnell die 8k voll haben. Der Keil code ist etwa 30% kürzer. Aus reiner Neugier: wird das was komerzielles? Weil eigendlich ist usbaudio seit 2 Jahren tot. Thomas
Im Moment ist das in erster Linie ein privates Projekt. Wenn es gut wird könnte es auch irgendwann mal Kommerziell werden. Wieso meinst du das USB Audio tot ist? - Insbesondere im High-End Bereich gibt es sehr viele USB-DACs. (z.B. http://www.wavelengthaudio.com/) Ich möchte selber einen recht hochwertigen DAC mit AK4396 DACs bauen... USB erschien mir dafür bisher die geeignetste Lösung. Oder hast du einen besseren Vorschlag? Im asynchronen Modus benutzt man einen zusätzlichen Endpoint um dem PC zu signalisieren wieviel Daten gerade benötigt werden. So bekommt man eine reine Datenleitung und kann den I2S-Ausgang des TUSB3200A komplett unabhängig vom PC takten. Damit ist man auch das USB-Jitter Problem los. Das Datenblatt beschränkt sich zum Thema Asynchron allerdings auf den Hinweis, dass es unterstützt wird. Ein bisschen googlen bringt einen aber z.B. dahin, dass wavelengthaudio eine Firmware mit asynchroner USB Unterstützung implementiert hat. Unter Windows sollte das seit Vista auch ordentlich funktionieren. Ich interessiere mich aber ohnehin in erster Linie für Linux-Systeme. Da schreckt es mich auch nicht ab ggfls. an den Treibern etwas Hand anzulegen. Viele Grüße, Julian
Ah du meinst die Feedback pipe. Ja habe ich implementiert. Die Ergebnisse waren mangelhaft. Ehrlicherweise war es aber so dass meine HW ab Win98SE und Mac OS9 funktionieren musste. Selbst das habe ich nicht mit einer FW hinbekommen. USB audio ist tot weil es nie eine vernünftige 2.0 Implementierung der Spec gegeben hat. Vista hab ich nie probiert wohl aber Linux. Dort musst du sehr viel selber machen. Der Codec Clock ist doch sowieso frei programmierbar und nicht an die 12 MHz gebunden. http://www.heise.de/preisvergleich/a69811.html ist übrigens meine Kiste inzwischen fast 6 Jahre alt Thomas
Das ist ja interessant, dass du das Terratec-Teil gebaut hast (c: Die USB 1.1 Audio Spec ist ja für alles was nicht 192khz ist durchaus gut geeignet. Insofern sehe ich auch nicht was dagegen sprechen sollte sie zu verwenden. Ja, man kann zwar eine andere Taktung benutzen die wird dann aber von der PLL im TUSB3200A generiert, die soweit ich weiß an den USB-Takt gebunden ist, damit wäre wieder das Jitter-Problem da. Eine funktionierende Implementierung des asynchronen Modus soll wohl nicht ganz unproblematishc sein, aber durchaus machbar. In Sachen Linux sind die USB-Audio Treiber im ALSA soweit ich weiß recht gut funktionsfähig. Aber da ggfls. noch was zu erweitern sollte wie gesagt kein Problem sein. Habe bereits für diverse Audiotrak PCI-Karten die ALSA-Treiber gebaut. Die Binarygröße beim SDCC könnte natürlich wirklich zum Problem werden... Naja, notfalls muss dann doch der Keil her. Ich sehe auf jeden Fall keine große Alternative zu USB... PCI(e) ist mir zu aufwändig, Firewire scheint auch nicht gerade einfacher zu sein als USB. Viel mehr bleibt dann ja nicht übrig. Viele Grüße, Julian
nur mal als Anhaltspunkt: meine firmware war mit allen Optionen eingeschaltet fast 16k groß. Weil ich relativ große Deskriptor Tabellen hatte, habe ich die dann gepackt abgelegt. Für eine gut funktionierende Minimalversion habe ich etwa 6k benötigt. Mit dem SDCC wirst du keine Freude haben, da er z. B. Funktionsparameter über den Stack übergibt. Das hat zwangsläufig mehr code zur Folge. Wenn man die PLL im Sof Interrupt korrekt nachführt ist der Jitter übrigens minimal. Genau da funktioniert übrigens der Beispiel code nicht. Am wichtigsten ist, dass du den Enum code möglicht kompakt gestaltest. Dort ist sehr viel Optimierungspotential drin. Mit etwas Erfahrung kann man den auf 0x800 Bytes drücken. Thomas
16k ist natürlich eine Menge. Wenn ich mir die Kiste so angucke hatte die allerdings auch ein paar mehr Funktionen. Ich möchte lediglich 2-Kanal Line Ausgabe und evtl noch einen 2-Kanal Line-In machen. Das macht es also schonmal überschaubarer. Wenn sich durch die Feedback-Pipe der USB-Jitter tatsächlich komplett eliminieren lässt ist es mir das den Aufwand wert... Ich denke mal ich werde die Original-Firmware als Referenz verwenden und dann selbst neu implementieren. Alternative Referenzen scheint es ja nicht zu geben. Habe zwar ein paar Seiten gefunden, die auf OpenSource-Firmware für die Chips verweisen, aber die Seiten scheinen alle tot zu sein... Würde mich auf jeden Fall freuen, falls du mir mit dem einen oder anderen Tipp zur Seite stehst wenn es bei mir haken sollte (c: Viele Grüße, Julian
Eine Frage noch zu deinem selbstgebauten Eval-Board: Warum hast du nen exteren 8052 genommen? - Hattest du das generell vor für die Projekete oder macht es das nur zum testen einfacher? Viele Grüße, Julian
nun das hatte mehrere Gründe: 1. für std x51 Kerne habe ich einen Emulator. Das heist ich konnte direkt auf der Zielhardware debuggen. Der TUSB Chip wird dann einfach wie ein std Preipherie Device in den Addressraum gemapped. 2. Beim ursprünglichen Entwurf hatte ich auch noch vor extra DSP Einheiten in den Signalweg einzuschleifen. Das Memory Interface hätte ich dann sowieso gebraucht. 3. Später habe ich dann auf dem exteren Controller einfach den Mon51 von Keil installiert. Damit kunnte ich problemlos über die ser. Schnittstelle debugen. 4. Ich bin was die sonstige Peripherie angeht deutlich flexibler. (2. ser Schnittstelle, SPI Interface, Timer 2) Wenn du das Bild genauer ansiehst wirst du 2 nicht bestückte Stiftleisten finden. Eines war das Codec Interface das andere ein Addressbuss. Da ich swieso einen Prototypen für die Software brauchte und das Eval Board nicht lieferbar war, habe ich halt selbst was gebaut. Wir waren übrigens ende 2001 die ersten die Rev A Sampels in DE hatten. Thomas
Das ist ja interessant, dass die Stiftleisten auf der Serien-Platine vorgesehen sind. Hat das Board auch 'nen JTAG-Interface o.ä. zum Programmieren? - Dann wäre das durchaus eine Alternative zum selbsgebauten Eval-Board... 150EUR würde das eh allemal kosten. Das würde mich wirklich interessieren... Auf dem Board ist aber kein externer 52er mehr drauf, oder? - Kann das auf dem kleinen Bild so schlecht sehen... Viele Grüße, Julian
nein JTAG gibts nicht so oft bei den 51er. Die Kiste als EVAL Board zu nehmen bringt dir leider nichts (auser du hast einen EMU). Für Monitor Betrieb fehlt das von Neumann RAM. Der 51er ist aber noch drauf. (Atmel 89C51RB2 manchmal auch der RD2) Ich wolte nicht das Risiko eingehen, dass mir der Speicher während der Entwicklung ausgeht. Später hat sich dann rausgestellt dass die 8k knapp gereicht hätten. Allerdings sind mir zwischezeitlich die Portpins ausgegangen. Ein Redesign wollten wir aus Zeitgründen nicht mehr machen. Die Mehrkosten für den ext. Controller waren gerade mal 5 USD. Obwohl auf die Stückzahl umgerechnet wäre das ein netter Daimler geworden. Theoretisch kann man das Board mit dem Keil Flashmon betreiben dann muss halt an eine Stiftleiste ein Max232 als Pegelwandler. Probiert habe ich das allerdings nie. Thomas
Das ist natürlich schade... Um Zugang zu den Keil-Tools habe ich mich aber schon gekümmert. Habe einen bekannten der die verwendet. Dort kann ich mich austoben. Hast Du noch einen Schaltplan für Dein Eval-Board, den Du mir möglicherweise zukommen lassen könntest? - Da wüsste ich dann schonmal, dass es funktioniert. Viele Grüße, Julian
Kein Problem. Wenn du es noch findest wäre es cool, wenn du es hier postest. Oder per Mail geht natürlich auch (c: Viele Grüße, Julian
Hallo Thomas, wollte den Thread noch mal aktivieren, in der Hoffnung, dass dir der Schaltplan noch mal über den Weg gelaufen ist? Gruß, Julian
Ja das ist schon ok. ich war fast 3 Wochen in China. Von dort aus kann man mit Gastzugang nicht schreiben. Da ist wohl eine IP Sperre eingebaut. Schaltplan kommt morgen abend. Thomas
Hallo, ich bin auch gerade am Knobeln, ob ich da ein Projekt draus mache... Als Endstufe hatte ich mir den TAS5706A voergenommen, zusammen mit einem Notebook-Netzteil. Ich frage mich nur, ob vielleicht der PCM2706/07 nicht einfacher einzusetzen ist? Die Takterzeugung sieht auch moderner aus... Viele Grüße Wolfgang
Hallo Wolfgang, der PCM2706/07 ist deutlich einfacher einzusetzen, da keine Firmware-Entwicklung nötig wird. Aber er ist dadurch natürlich auch in den möglichen Funktionen und vor allem auch Qualitativ (durch die Erzwingung des adaptiven USB-Modus) eingeschränkt. Daher ist der TUSB3200A zumindest für mich die bessere Alternative. Viele Grüße, Julian
Hallo Thomas, meinst du, du findest den Plan noch wieder? (c: Gruß, Julian
Hallo Wo finde ich den Teil des Codes von 0x000 bis 0x800 für die Soundkarte "Phase 26" Danke Mr.P
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.