mikrocontroller.net

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


Autor: Lars (Gast)
Datum:

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

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat da keiner ne Idee?

Autor: Gast (Gast)
Datum:

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

Autor: HansG (Gast)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck mal hier: Beitrag "SD-Karten-Wave-Recorder"

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

Autor: HansG (Gast)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Arc Net (arc)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Lars (Gast)
Datum:
Angehängte Dateien:

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

Autor: dummy (Gast)
Datum:

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

Bahnhof?

Autor: Lars (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:
Angehängte Dateien:

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

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.