Hallo Leute, ich bin auf der Suche nach eine einfachen Schaltung mit einem 16-Bit Audio DAC, die mir einen Ausgangspegel liefert, an den ich ein Kopfhörer anschließen könnte, also wie beim Line-Out vom PC. Der DAC sollte seriell ansprechbar sein! Hat da jemand ne Schaltung da, die er schon verwendet hat, oder zumindestens einen guten Audio-DAC, den man ausgangsseitig entsprechend beschalten kann? Gruß Lars
Ist nur so eine Idee, aber ich würde bei google "16 Bit Audio DAC" eintippen und auf Suchen klicken.
Wenn es nur zum Experimentieren sein soll, kannst Du einen TDA 1543 nehmen (wird zwar nicht mehr hergestellt, ist aber in älteren CD-Spielern drin, und kann auch noch bei Segor bestellt werden). Einen kleinen Kopfhörerverstärker brauchst Du in jedem Fall.
Hmm, es sollte schone eine Lösung sein, di auch in 3-4 Jahren noch verfügbar ist. Allerdings sieht der schonmal sehr interessant aus!
>Gibt es denn für den TDA1543 eine erprobte und etblierte >Verstärkerschaltung? Nimm einfach einen TDA 7053 (2x 1W), das ist eine "erprobte und etablierte Verstärkerschaltung" ;-)
Ok, das hört sich ja schonmal alles super an... Allerdings wäre mir ein DAC, der noch länger sicher erhältlich ist um einiges lieber! Wie egsagt, am besten I²C oder noch besser SPI und 16Bit.
Schau dich mal bei TI um, die haben einige die sowohl SPI als auch I²C können. Allerdings sind das dann echte Codecs die einen Takt in Höhe der 256/384/512/768 fachen Samplerate brauchen. Dumme 16bit DACs gibt es afaik für Audio nicht mehr.
Bei Audio ADCs/DACs hat sich I2S als Dateninterface durchgesetzt. SPI oder I2C stirbt dabei eher aus oder wird lediglich zusätzlich für die Steuerung mittels eines Controllers genutzt.
Ähm ja, ich meine auch I²S, Lars vermutlich auch. I²C wäre für Audio nämlich etwas zu langsam. Wobei in letzter Zeit auch AC97 und andere Sachen sich stark verbreitet haben.
Habe grade den CS4334 von cirrus gefunden. Ist zwar ein 24bit DAC, aber das sollte nicht das Problem sein. Er ist jedoch sehr klein und scheint auch mit nur wenigen externen bauelementen auszukommen. Würde dieser mit einem TDA1308 als Kopfhörerverstärker verschaltet funktionieren. Wie aufwendig ist die Kommunikation mit dem CS4334?
Lars wrote: > Wie aufwendig ist die Kommunikation mit dem CS4334? Identisch mit der vom TDA1543, nur dass MCLK noch gebraucht wird, und der muss 128,192,256,384 oder 512x LRCK sein.
Ok, das sollt nicht das Probelm sein, da die Ansteuerung mit einen FPGA gemacht werden soll...Kann denn der Kopfhörerverstärker die Qualität des CS4334 überhaupt umsetzen?
Andere Vorschläge: MAX9850 Line-In/Line-Out + Kopfhörerverstärker, CS43L21, CS44L11 mit integriertem (Kopfhörer-)Verstärker, oder XE3005/3006
>Habe grade den CS4334 von cirrus gefunden. Was für ein Zufall ;-) Wobei der CS4344 besser ist. >Er ist jedoch sehr klein Das ist bei 24Bit DACs eher ein Vorteil. Der CS4344 ist noch kleiner. >und scheint auch mit nur wenigen externen bauelementen auszukommen. So ist es, da alle benötigten Filterkomponenten intern sind. Lediglich ein Ausgangstiefpaß und einige Blockkondensatoren werden benötigt. >Würde dieser mit >einem TDA1308 als Kopfhörerverstärker verschaltet funktionieren. Ja sicher. Wie Du siehst. >Kann denn der Kopfhörerverstärker die Qualität des >CS4334 überhaupt umsetzen? Nie und nimmer, aber das kann keine externe analoge Komponente, wenn man es genau betrachtet. Der TDA1308 hat einen Dynamikumfang von >90 und akzeptable Verzerrungswerte. Soundkarten der Marke "Creative Live!" hatten diesen Chip seinerzeit eingebaut. In meinem SD-Karten-Rekorder leistet er ebenfalls gute Dienste.
Gut, du hast mich von dem CS4344 überzeugt;) Kann ich die Beschaltung komplett aus deinem SD-Recorder übernehmen? Sehe ich das richtig, dass ich garkeinen Kopfhörerverstärker oder ähnliches brauche, wenn ich die Ausgänge an eine Anlage mit Vorverstärker anschließe, da der CS4344 Line-Level-Pegel ausgibt?
>Kann ich die Beschaltung >komplett aus deinem SD-Recorder übernehmen? Von mir aus ;-) >Sehe ich das richtig, dass >ich garkeinen Kopfhörerverstärker oder ähnliches brauche, wenn ich die >Ausgänge an eine Anlage mit Vorverstärker anschließe, da der CS4344 >Line-Level-Pegel ausgibt? Richtig. Aber gucke mal, was ich bei Cirrus gerade gefunden habe: http://www.cirrus.com/en/products/pro/detail/P1200.html
Hört sich auch interessant an, aber ich habe mich für den CS4344 entschlossen und hoffe, ich bereue die Wahl nicht;) Werde auch die Beschaltung soweit von dir übernehmen. Den Kopfhörerverstärker bruahce ich eigentlich nicht wirklich, deshalb scheint der CS4344 die kompakteste und beste Lösung...außerdem ist der anderen im PFN package und das macht die Bastelei irgendwie schon wieder zu fummelig...Ich hoffe einfach mal, dass der CS4344 gut funktionieren wird und auch die Ansteuerung kein Problem darstellt...
Die Ansteuerung des CS4344 ist reines I2S. Wenn Du ihm das lieferst, wird er den Spezifikationen entsprechend funktionieren. Die Samplerate kannst Du über die Master-Clock (geteilt durch den eingestellten SCLK Faktor) in Grenzen von 8kHz bis 200kHz frei bestimmen. Was ist denn eigentlich Deine digitale Signalquelle?
Meine digitale Signalquelle wird ein FPGA sein, der ein Sound ausgibt, welcher entweder in einem RAM oder auf einer SD-Karte abgelegt ist. Nur mal so zum Testen: Wenn ich dem CS4344 einmal einen Wert schicke und nicht kontinuierlich neue, behält er diesen dann gewandelt am Ausgang, bis ich ihm den nächsten schicke?
Ich vermute, daß der Ausgang auf dem Level verharrt, weiß es aber nicht genau. Die Timings der Schnittstelle findest Du im Datenblatt. Diese müssen genau innerhalb ihrer Toleranzgrenzen liegen, sonst gibt es unschöne Verzerrungen von feinem Knistern bis zu fiesem Krachen.
Hmm, naja, das werde ich ja sehen. Wie sieht es denn mit der Genauigkeit des MCLK aus? ich denke es wird sehr schwierig sein mit dem FPGA genau einen CLK von beispielsweise 18,432MHz zu erzeugen...
Könnte man nich für den MCLK auch einen Quarzoszillator nehmen? Oder müssen die Flanken von MCLK und SCLK immer genu synchron sein?
>ich denke es wird sehr schwierig sein mit dem FPGA genau >einen CLK von beispielsweise 18,432MHz zu erzeugen... Dann pappe doch einen entsprechenden Quarz(oszillator) an einen Takteingang des FPGA und über dessen intern impementierte Teiler stellst Du die restlichen Taktsignale für das Interface zusammen. MCLK und SCLK müssen nicht phasen-/flankengenau, aber synchron sein.
@Travel Rec. Erstmal vielen Dank für deine vielen Tips! Ich habe jetzt die Ansteuerung mittels I2S auf dem FPGA realisiert und es scheint auch soweit zu laufen. Allerdings verstehe ich die Zuordnung von übertragendem 16bit Wert und dem Ausgangssignal nicht. Im Datenblatt ist das sehr merkwürdig beschireben. Könntest du mir kurz erläutern, welche 16bit Werte welcher Ausgangsspannung entsprechen? In welchem Ausgangspannungsbereich arbeitet denn der DAC eigentlich genau? Danke nochmals, Lars
Die 16-Bir Daten liegen im 2-er Komplement vor, das heißt, das MSB stellt das Vorzeichen dar. Ist es gelöscht, werden Werte über VCC/2 ausgegeben, ist es gesetzt, werden Werte unter VCC/2 ausgegeben. $0000 ergibt genau VCC/2 am Ausgang des DAC. Über den Koppelkondensator am Ausgang werden die Gleichspannungsanteile entfernt, so daß $0000 in dem Fall in 0VAC resultiert und von $0000-$7FFF wird die positive und von $8000-$FFFF die negative Halbwelle abgebildet.
Nochmal @ Travel Rec. Irgendwie scheint die Ansteuerung doch nich so richtig zu laufen. Ich benutze einen MCLK von 12,288 MHz und einen LRCLK von 48kHz. Die Ansteuerung sieht im Moment wie in der angehängten Simulation aus. Die beiden Datenwörter entsprechen 1110000111100001 und 0111111111111111. Das ganze wird immer wieder hintereinander durchgeführt, sodass die beiden Ausgänge des CS4344 definierte Spannungswerte annehmen müssten. Beide bleiben jedoch konstant be Ub/2 also ca. 1.65V. Müssen etwa immer 24bit gesendet werden, auch wenn nur 24 verwendet werden? Oder wo steckt mein Fehler. mclk und clk sind synchron und stimmen auch von der Taktfrequenz her. Gruß Lars
>Müssen etwa immer >24bit gesendet werden, auch wenn nur 24 verwendet werden? Bahnhof?
ich meinte, wenn nur 16Bit Auflösung verwendet werden. Sorry, war nen harter Tag;)
Hallo Lars, es sieht so aus, als hättest Du Dir das I2S-Protokoll noch gar nicht angesehen. Jeder Frame beginnt erstmal mit der fallenden Flanke der WordClock (LRCK), dann folgt eine steigende Flanke und eine fallende Flanke der BitClock (SCLK) bei der keine Daten übergeben werden bzw. die Datenleitung Low ist. Vor der nächsten steigenden Flanke wird das MSB für den linken Kanal aufgelegt. Dann wird SCLK getoggelt. Die zu übertragenden Bits werden ausgegeben und es wird nach dem LSB auf 32 SCLK-Zyklen bei Daten = Low aufgefüllt. Dann wird WordClock High ausgegeben und das Ganze für den rechten Kanal wiederholt. Ein kompletter Frame (Sample) ist also 64 SCLK-Zyklen lang und die MasterClock MCLK muß SCLK x 256 oder 512 sein, wobei der Frame meinethalben 48.000 pro Sekunde ausgegeben wird. Siehe Anhang.
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.