Forum: Mikrocontroller und Digitale Elektronik 16 Bit Audio DAC mit Audiopegel


von Lars (Gast)


Lesenswert?

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

von Lars (Gast)


Lesenswert?

Hat da keiner ne Idee?

von Gast (Gast)


Lesenswert?

Ist nur so eine Idee, aber ich würde bei google "16 Bit Audio DAC" 
eintippen und auf Suchen klicken.

von HansG (Gast)


Lesenswert?

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.

von Lars (Gast)


Lesenswert?

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!

von Lars (Gast)


Lesenswert?

Gibt es denn für den TDA1543 eine erprobte und etblierte 
Verstärkerschaltung?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Guck mal hier: Beitrag "SD-Karten-Wave-Recorder"

Mußt Du aber ´ne kleine Lötspitze haben ;-)

von HansG (Gast)


Lesenswert?

>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" ;-)

von Lars (Gast)


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Benedikt K. (benedikt)


Lesenswert?

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

von Lars (Gast)


Lesenswert?

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?

von Benedikt K. (benedikt)


Lesenswert?

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.

von Lars (Gast)


Lesenswert?

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?

von Arc N. (arc)


Lesenswert?

Andere Vorschläge:
MAX9850 Line-In/Line-Out + Kopfhörerverstärker,
CS43L21, CS44L11 mit integriertem (Kopfhörer-)Verstärker,
oder XE3005/3006

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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

von Lars (Gast)


Lesenswert?

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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>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

von Lars (Gast)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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?

von Lars (Gast)


Lesenswert?

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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Lars (Gast)


Lesenswert?

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

von Lars (Gast)


Lesenswert?

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?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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

von Lars (Gast)


Lesenswert?

@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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Lars (Gast)


Angehängte Dateien:

Lesenswert?

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

von dummy (Gast)


Lesenswert?

>Müssen etwa immer
>24bit gesendet werden, auch wenn nur 24 verwendet werden?

Bahnhof?

von Lars (Gast)


Lesenswert?

ich meinte, wenn nur 16Bit Auflösung verwendet werden. Sorry, war nen 
harter Tag;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.