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
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.
>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?
>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...
>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
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.