Wie entscheidet man über den Master- oder Slave-Modus in I²S (I2S)?

Teilnehmer an I²S können sich im Master- oder Slave-Modus befinden. Der Master muss die Uhr bereitstellen und der Slave muss die Uhr annehmen.

Ich würde gerne wissen, wie unter welchen Gesichtspunkten diese Entscheidung getroffen wird.

Ich denke, Sie haben Ihre eigene Frage beantwortet: Der Meister muss die Uhr bereitstellen und der Sklave muss die Uhr annehmen.

Antworten (3)

Normalerweise hängt die Entscheidung einfach von den Fähigkeiten der Komponenten ab, die Sie zusammenstellen möchten: Nicht alle Komponenten können ein Master sein.

Genauer gesagt: In einem I2S-System finden Sie meistens drei Arten von Komponenten: DACs, ADCs und MCUs (oder SoCs). Die meisten DACs, die ich gesehen habe, können sich nicht als Master verhalten. MCUs sind normalerweise vielseitig und in der Lage, sich als beides zu verhalten. ADCs sind auch sehr oft in der Lage, sich als beides zu verhalten.

Der Grund ist folgender: Wenn Sie einen SoC und einen DAC benötigen (viele Anwendungen), verfügt der SoC normalerweise über ein komplexes Taktsystem (mit vollständig konfigurierbaren PLLs und so weiter), wodurch er sich gut als Master eignet . Der DAC muss daher nicht als Master fungieren können. Bei Anwendungen mit SoC und ADC möchten Sie aus demselben Grund auch, dass der SoC der Master ist. In einigen anderen Anwendungen möchten Sie jedoch möglicherweise ADCs haben, die direkt mit DACs verbunden sind (kein SoC dazwischen). Aus diesem Grund können sich ADCs typischerweise auch als Master verhalten (aber in diesem Fall sind die Taktoptionen normalerweise weniger flexibel als bei einem SoC).

Um Ihre Frage zu beantworten: Für eine typische Anwendung, die einen SoC verwendet, ist der SoC der Master. Wenn Sie keinen I2S-SoC haben (Sie haben nur ADC + DAC), muss der ADC sicherlich der Master sein.

Hinweis: Natürlich sind ADC/DAC/SoC nicht die einzige Art von Geräten, die Sie in einem I2S-System finden können. Aber für die andere Art von Geräten kann die gleiche Begründung oft angewendet werden. Zum Beispiel: S/PDIF-Sender sind oft nur Slaves, während Empfänger normalerweise sowohl als Master als auch als Slave fungieren können.

Wählen Sie für die beste Audioqualität das Gerät als Master aus, das am jitterfreisten ist MCLK, BCLK, und LRCLK. Verwenden Sie idealerweise einen externen Oszillator für MCLK. Eine MCU ist möglicherweise nicht in der Lage, die erforderlichen Taktraten ohne Jitter abzuleiten [1]. Zum Beispiel, wenn die MCU auch USB verarbeitet. Wenn der Codec über ungewöhnliche Audioschnittstellenmodi verfügt, ist es oft einfacher, die MCU so zu konfigurieren, dass sie diese unterstützt.

[1] https://community.nxp.com/thread/108968#comment-109440

Ich glaube, in I2S gibt es Sender und Empfänger. Und der Meister ist derjenige, der die Uhr erzeugt. In einem Szenario mit mehreren Sendern und Empfängern wird es etwas unklar. Hier ist, was die hier gefundene I2S-Spezifikation sagt:

... der Sender als Master Bittakt, Wortauswahlsignal und Daten erzeugen muss. In komplexen Systemen können jedoch mehrere Sender und Empfänger vorhanden sein, was die Bestimmung des Masters erschwert. In solchen Systemen gibt es normalerweise einen Systemmaster, der den digitalen Audiodatenfluss zwischen den verschiedenen ICs steuert. Sender müssen dann Daten unter der Steuerung eines externen Taktgebers erzeugen und somit als Slave fungieren.