Audio DAC für LPC2378

Gast #1140626
Lesenswert?

Hallo,

ich möchte meinen LPC2378 mit einem Audio-Dac versehen. 16 Bit Mono bei 
32 oder 48 kHz würden schon genügen. Der LPC2378 besitzt zwar eine I2S 
Schnittstelle, doch leider hat die nur 3 Pins (SCK, WS und SD), während 
die DAC's 4 Signale benötigen. WS schein LRCLK zu enstprechen, aber es 
fehlt der MCLK -Ausgang. Eventuell kann man den Takt durch den Timer des 
LPC2378 erzeugen, do wie bekomme ich dann die Ausgänge synchronisiert?
Kennt jemand einen DAC, der mit dem LPC2378 kompatibel ist?

Gruss
Mike
Gast #1141898
Lesenswert?

Die "krummen" Werte als Prozessortakt kann ich leider nicht verwenden, 
da ich auf ein Vielfaches von 12MHz für den USB angewiesen bin. Es 
scheint so, als ob das I2S Interface von NXP wenig brauchbar ist - wozu 
ist es dann da? Ich werde daher versuchen, den DAC statt mit 12.288 MHz 
mit 12 MHz zu betreiben. Dann beträgt die Datenrate zwar nur 46,875 kHz, 
was in etwa 0.4 Halbtönen tiefer entspricht und kaum hörbar sein sollte.

Gruss
Mike
Gast #1143098
Lesenswert?

0,4 Halbtöne tiefer sind deutlich hörbar und wären für jeden halbwegs 
musikalischen Menschen eine Zumutung. Diese Lösung solltest du m.E. 
abhaken.

Audio-DACs sind eigentlich nicht zum Anschluß an µCs gemacht. Der 
Masterclock muß synchron zum Rest sein, deshalb ginge es auch mit einem 
separat erzeugten Takt nicht.

Schau dich mal unter dem Stichwort "AC97-Codec" um, da gibt es einige 
bei den üblichen Verdächtigen (Cirrus, TI, ...). Diese brauchen, wenn 
ich mich richtig erinnere, nur einen Bitclock und sind für solche 
Anwendungen besser geeignet.
(Firma: TravelRec.) Persönliche Seite #1143244
Lesenswert?

AC97 ist ja noch komplizierter. Ich würde den Mastertakt einfach extern 
mit einem Quarz und Teilern erzeugen und sowohl DAC als auch 
Controller-I2S als Bit-Takt-Slaves laufen lassen. Falls der Controller 
da mitkommt. Ach und herkömmliche I2S-DACs können mit dem notwendigen 
Aufwand sehr wohl an µController angeschlossen werden. Siehe hier: 
Beitrag "SD-Karten-Wave-Recorder"
#2183230
Lesenswert?

Hallo!

Mir ist klar, dass dieser Thread schon zwei Jahre alt ist, aber es gibt 
sicherlich Leute, die ihn durch die Suche finden (so wie ich zum 
Beispiel :-)). Deshalb möchte ich gern kurz eine Lösung vorstellen, die 
ich selbst probiert habe:

Es gibt externe Clock-Generatoren für I2S. TI hat welche im Angebot 
(nach Audio Clock Generator suchen), ich selbst habe einen von MAX 
benutzt, den MAX9485. Der braucht einen 27MHz-Quarz als Eingang und 
erzeugt eine entsprechende I2S-Master-Clock. Die Samplerate und der 
Skalierungsfaktor (256x, 384x) lassen sich entweder durch einfache 
Pin-Beschaltung auf High/Low oder per I2C konfigurieren. Der LPC2378 
muss dann als I2S-Slave konfiguriert werden, d.h. man braucht einen 
Wandler, der Master-fähig ist. Der erhält die MCLK und generiert daraus 
SCLK und LRCLK. Die wiederum werden vom LPC2378 empfangen. Das 
funktioniert wunderbar und problemlos!

Für alle, die den LPC2378 gern als I2S-Master benutzen wollen, gibt es 
von NXP ein (gut verstecktes) PDF, das eine Möglichkeit dafür aufzeigt. 
Das befindet sich im folgenden ZIP-Archiv: 
http://www.standardics.nxp.com/support/documents/microcontrollers/zip/i2s.usb.audio.demo.zip. 
Ich habe dieses PDF auch hier mal angehängt. Ab Seite 18 wird erklärt, 
wie man die Clocks erzeugt. Diese Möglichkeit habe ich selbst nicht 
ausprobiert, aber da sie direkt von NXP kommt, wird sie wohl sicherlich 
auch funktionieren.

Hoffe, dass ich mit diesem Beitrag noch einigen Leuten helfen konnte!

Viele Grüße,
Tim
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren