comunicación I2S

Estoy diseñando un circuito amplificador de audio que consiste en un micrófono MEMS digital I2S ( INMP441 ) para captar señales de voz y un amplificador clase D I2S ( MAX98357A ) para amplificación.

Ambos circuitos integrados tienen tres líneas (datos en serie, reloj en serie, selección de palabras) para la comunicación I2S.

Tengo una duda: ¿podemos unir estos pines de comunicación de ambos circuitos integrados sin usar un microcontrolador? Quiero saber si esta combinación funcionaría o no. He adjuntado un diagrama de bloques aproximado a continuación.

¿Podrían comprobar si esta combinación funcionará o no?

ingrese la descripción de la imagen aquí

Mire los diagramas de tiempo I2S y las tablas de tiempo en las hojas de datos respectivas para averiguarlo.

Respuestas (3)

No, esto no funcionará. Ambos dispositivos son esclavos I 2 S. Eso significa que BCLK y LRCLK son entradas en ambos circuitos integrados.


ingrese la descripción de la imagen aquí


ingrese la descripción de la imagen aquí


Necesitarás algo en el medio para unir los dos. Esto se reduce a generar BCLK y LRCLK a la tasa adecuada (y niveles de voltaje) y suministrarlos a ambos circuitos integrados. Dependiendo de la aplicación y su conjunto de habilidades, la forma más fácil de hacer esto podría ser con una MCU, pero en principio también podría hacerlo con un oscilador (funcionando a una velocidad de f S * 64 para generar BCLK) y un 6+ Contador de bits IC para generar un LRCLK dividido. (Tenga en cuenta que el MAX98357x admite BCLK a 32x, 48x o 64x LRCLK [p. 6], pero INMP441 solo admite 64x [p. 11]).

Cualquier microcontrolador con un temporizador periférico (básicamente cualquiera) puede generar estos relojes. No se requiere interfaz I2S en la MCU.
@BenVoigt Buen punto, editado. Gracias.

Lamentablemente no. Al menos, no de esa manera. BCLK (o SCK) y LRCK (o WS) son entradas en ambos dispositivos (ambos son esclavos I2S). En el esquema que mostraste, no hay ningún dispositivo que maneje esas señales. No podría funcionar sin al menos un generador de reloj I2S adecuado. Necesita un reloj que impulse LRCK a la frecuencia de muestreo que desea y BCLK a 64 veces la frecuencia de muestreo que desea.

Sin embargo , podría hacer esto sin un microcontrolador: tome un oscilador que funcione a 64x la frecuencia de muestreo para controlar BCLK (hay osciladores estándar para esto), y un divisor de frecuencia que divida este reloj por 64 (simplemente podría usar un contador de 6 o más bits: por ejemplo, 74HC393) para controlar LRCK. Un microcontrolador es en realidad excesivo para generar un esquema de reloj tan simple.

De todos modos, ahora puede empezar a funcionar. Sin embargo, hay algunas cosas que cuidar:

  • INMP441 funciona solo en modo I2S (MSB primero, con un retraso de 1 clk entre el MSB de cada palabra y la transición LRCLK), con una longitud de palabra de 32 bits. Puede emitir su transmisión en el canal izquierdo o derecho dependiendo de la entrada L/R, pero eso es prácticamente todo lo que puede configurar. Conducirá la línea de salida de datos para la parte de la palabra L o R dependiendo de su configuración, pero la línea de datos no se controlará para la parte restante (por lo que puede conectar dos micrófonos en las mismas líneas para que sea estéreo). Por lo tanto, necesita un menú desplegable en la línea de datos.
  • MAX98357x funciona en varios modos (justificado a la izquierda, I2S, TDM). Quieres I2S. La elección entre TDM y los otros modos es automática porque en TDM, solo hay un pulso en la línea LRCK y el chip lo detecta. El chip no seleccionará este modo, lo cual está bien. Ahora, la elección entre I2S y justificado a la izquierda depende de la variante de chip: MAX98357A/MAX98357B. Quieres el MAX98357A.
  • MAX98357A aceptará una longitud de palabra de 32 bits. Bien.
  • MAX98357A tomará el canal izquierdo o el canal derecho como entrada dependiendo de la configuración del pin SD_MODE (tabla 5). Hágalo consistente con lo que decidió para la configuración INMP441 L/R.
  • INMP441 parece admitir cualquier frecuencia de muestreo entre ~7.8khz y 50kHz (la hoja de datos dice que SCK debe estar entre 0.5MHz y 3.2MHz). MAX98357A solo admite frecuencias de muestreo de 8kHz, 16kHz, 32kHz, 44,1kHz, 48kHz, 88,2kHz y 96kHz. Elige algo que encaje.
Gracias por tu comentario. Si tiene alguna nota de aplicación que indique cómo usar osciladores y divisores de frecuencia para este tipo de aplicación, sería realmente útil para principiantes como yo.
@Sri Traté de encontrar notas de la aplicación sobre esto, pero no pude encontrar ninguna. Hay publicaciones en varios foros que hablan de esta solución, pero no entran en más detalles que lo que escribí anteriormente. Si está perdido, siempre puede hacer otra pregunta, como: "¿Cómo genero las señales de reloj I2S requeridas para que esos dos esclavos se comuniquen?".
@Sri - Hola, ahora que ha hecho la pregunta de seguimiento sugerida en el comentario anterior, le recomiendo que vote a favor de todas las respuestas útiles (si aún no lo hizo) y acepte la respuesta más útil para cerrar efectivamente esta pregunta Causa confusión si tiene varias preguntas "abiertas" sobre el mismo tema, por lo que su próxima pregunta debe indicarse claramente como una pregunta de seguimiento posterior, para evitar que se vea como una pregunta paralela duplicada. Gracias.

Si desea este tipo de interfaz entre un micrófono digital y un amplificador de clase D (o cualquier otro tipo), entonces necesita una interfaz de comunicaciones digital completamente diferente. Es posible que desee considerar algo como un amplificador de potencia de audio estéreo de clase D de entrada PDM MAX98358 (o algo similar con entrada PDM), y conectarlo a dos micrófonos digitales de salida PDM con preamplificador incorporado (se requiere una fuente de reloj adecuada comunes a ambos dispositivos). Puede haber opciones mono a considerar, pero esencialmente es un micrófono de salida PDM a un amplificador de entrada PDM, sin microcontrolador que se interponga en el camino. Echa un vistazo a los preamplificadores de micrófono digital FAN3852 con salidas PDM o similares. buena suerte !