mikrocontroller.net

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


Autor: Tim (Gast)
Datum:

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

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...hat davon denn wirklich keiner Ahnung? :-/

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

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

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

Bewertung
0 lesenswert
nicht lesenswert
Tim schrieb:
> ...hat davon denn wirklich keiner Ahnung? :-/

Siehe oben. Liest Du noch mit?!

Autor: Tim (Gast)
Datum:

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

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.