Hallo! Eine Frage an die I2S-Spezialisten hier im Forum: Ich würde gern an einen LPC2378 einen Audio DAC (PCM1781) und einen Audio ADC (PCM1803A) per I2S anschließen. Nun brauche ich dafür ja eine externe Master-Clock. Die würde ich mir über eine PLL generieren und die beiden Wandler damit speisen. Da die I2S-clock synchron zur Master-Clock sein muss, kommt es nicht in Frage, dass der LPC2378 als I2S-Master agiert, der muss auf jeden Fall Slave sein. Den ADC kann man als Master betreiben, das wäre also kein Problem. Der DAC kann allerdings nur als Slave betrieben werden. Wenn ich die I2S-Schnittstelle richtig verstehe, kann aber auch ein externes Gerät als Master fungieren. Wäre es also möglich, dass ich den ADC als Master für die Verbindung LPC2378 <-> DAC benutze? Der Master ist ja nur dafür da, die I2S-Bitclock und die Wordclock zur Verfügung zu stellen, oder? Ich hätte dann also zwei I2S-Signalpfade: Input: ADC ---- Clock ---> LPC2378 (Master) ---- Data ----> (Slave) Output: ADC (Master) || DAC <--- Clock ---> LPC2378 (Slave) <--- Data ----- (Slave) Ist das so möglich? Danke vorweg! Viele Grüße, Tim
Tim schrieb: > Da die I2S-clock synchron zur Master-Clock sein muss, kommt es nicht in > Frage, dass der LPC2378 als I2S-Master agiert, der muss auf jeden Fall > Slave sein. Kann der LPC nicht einfach mit 2-, 3- oder 4-facher Frequenz der MasterClock laufen und seine Interfaces damit synchronisieren und die MCLK wiederum über einen Timer herunterteilen und ausgeben? Bei einem XMEGA habe ich das schon so gemacht. Der XMEGA ist I2S-Master und generiert alle Clocks. Teils über Timer und teils über das als Master-SPI geschaltete UART. Einmal angestossen laufen alle Clocks über die interne Taktbindung bis zum Abschalten synchron. Tim schrieb: > Der DAC kann allerdings nur als Slave betrieben werden. Wenn ich die > I2S-Schnittstelle richtig verstehe, kann aber auch ein externes Gerät > als Master fungieren. Wäre es also möglich, dass ich den ADC als Master > für die Verbindung LPC2378 <-> DAC benutze? Der Master ist ja nur dafür > da, die I2S-Bitclock und die Wordclock zur Verfügung zu stellen, oder? Grundsätzlich geht das, aber ein Controller als I2S-Slave braucht mehr Rechenpower, als ein I2S-Master, da im letzteren Fall der Controller das Timing kennt. Als Slave muss er immer zu Stelle sein, wenn draußen einer ruft.
Hey Knut, danke für deine Antwort! Dass der LPC mit der gleichen Clock läuft, ist leider in meinem Anwendungsfall nicht möglich, da ich noch zwischen zwei verschiedenen Sampling-Frequenzen umschalten möchte (44,1 kHz / 48 kHz). Das würde ja bedeuten, dass auch die Taktfrequenz des LPC mit umgeschaltet werden würde. Aber gut zu wissen, dass meine Idee auch funktionieren müsste. Danke auch für den Tipp mit der erhöhten Rechenleistung. Aber muss ich da ernsthaft mit Performance-Einbußungen rechnen? Der ganze Kram spielt sich ja eigentlich nur in der State Machine vom I2S-Controller des LPC ab. Möglich, dass die dann mehr Strom verbraucht, aber der Prozessor sollte doch nicht stärker ausgelastet sein, oder? 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.