¿Cómo decidir sobre el modo maestro o esclavo en I²S (I2S)?

Los participantes en I²S pueden estar en modo maestro o esclavo. El maestro debe proporcionar el reloj y el esclavo debe aceptar el reloj.

Quisiera saber bajo qué consideraciones se toma esta decisión.

Creo que respondiste tu propia pregunta: el maestro debe proporcionar el reloj y el esclavo debe aceptar el reloj.

Respuestas (3)

Por lo general, la decisión se basa simplemente en las capacidades de los componentes que está tratando de ensamblar: todos los componentes no pueden ser maestros.

Más específicamente: en un sistema I2S, con mayor frecuencia, encontrará tres tipos de componentes: DAC, ADC y MCU (o SoC). La mayoría de los DAC que he visto no pueden comportarse como maestros. Los MCU suelen ser versátiles y pueden comportarse como ambos. Los ADC también son, muy a menudo, capaces de comportarse como ambos.

El motivo es el siguiente: si necesita un SoC y un DAC (muchas aplicaciones), el SoC normalmente tendrá un sistema de reloj complejo disponible (con PLL y demás totalmente configurables), lo que lo convierte en una buena opción para ser el maestro. . Por lo tanto, el DAC no necesita poder actuar como maestro. Para aplicaciones con SoC y ADC, también querrá que el SoC sea el maestro por la misma razón. Sin embargo, en algunas otras aplicaciones, es posible que desee tener ADC que estén conectados directamente a los DAC (sin SoC en el medio). Esta es la razón por la que, por lo general, los ADC también pueden comportarse como maestros (pero en ese caso, las opciones de sincronización suelen ser menos flexibles que con un SoC).

Entonces, para responder a su pregunta, para una aplicación típica que usa un SoC, el SoC será el maestro. Si no tiene un SoC I2S (solo tiene ADC + DAC), el ADC sin duda tendrá que ser el maestro.

Nota: Por supuesto, ADC/DAC/SoC no son el único tipo de dispositivos que puede encontrar en un sistema I2S. Pero para el otro tipo de dispositivos, a menudo se puede aplicar la misma lógica. Por ejemplo: los transmisores S/PDIF suelen ser solo esclavos, mientras que los receptores normalmente pueden actuar como maestros o esclavos.

Para obtener la mejor calidad de audio, seleccione como maestro el dispositivo que proporcione la menor fluctuación MCLK, BCLKy LRCLK. Lo ideal es utilizar un oscilador externo para MCLK. Es posible que una MCU no pueda obtener las frecuencias de reloj requeridas sin fluctuaciones [1]. Por ejemplo, si la MCU también maneja USB. Si el códec tiene modos de interfaz de audio extraños, a menudo es más fácil configurar la MCU para admitirlos.

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

Creo que en I2S hay Transmisores y Receptores. Y el Maestro es cualquiera que esté generando el reloj. En un escenario de múltiples transmisores y receptores, se vuelve un poco confuso. Esto es lo que dice la especificación I2S que se encuentra aquí :

... el transmisor como maestro, tiene que generar el reloj de bits, la señal de selección de palabras y los datos. Sin embargo, en sistemas complejos, puede haber varios transmisores y receptores, lo que dificulta la definición del maestro. En tales sistemas, generalmente hay un maestro del sistema que controla el flujo de datos de audio digital entre los diversos circuitos integrados. Entonces, los transmisores tienen que generar datos bajo el control de un reloj externo y, por lo tanto, actúan como esclavos.