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
MCLK ist in der Regel WS*256 oder WS*512, je nach Betriebsart des DAC. Eventuell kannst Du 12,288MHz oder 24,576MHz als Takt für den LPC und gleichzeitig für den DAC nutzen, dann kannst Du jeden beliebigen Stereo I2S-DAC benutzen (48kHz 16...24Bit).
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
Eine aufwendige Lösung: Sample-Rate-Converter zwischen Prozessor und DAC. (Kostet etwa 5 - 10 €, gibt es bei TI). Dann dürfen Prozessor- und DAC-Takt unterschiedlich sein.
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.
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"
2 Möglichkeiten: - DAC verwenden der mit 12 MHz klar kommt - DAC mit eigenem Quarz als I2S-Master (Controller als Slave) Beides geht mit dem von Martin erwähnten TLV320AIC23B.
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
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.