Forum: Mikrocontroller und Digitale Elektronik I2S ADC/DAC an LPC2378


von Tim (Gast)


Lesenswert?

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

von Tim (Gast)


Lesenswert?

...hat davon denn wirklich keiner Ahnung? :-/

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


Lesenswert?

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.

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


Lesenswert?

Tim schrieb:
> ...hat davon denn wirklich keiner Ahnung? :-/

Siehe oben. Liest Du noch mit?!

von Tim (Gast)


Lesenswert?

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