Ideas de interfaz I2S para múltiples micrófonos MEMS

1

Planeo formar una matriz de micrófonos con 4 micrófonos MEMS y realizar el procesamiento de la señal (formación de haz) en matlab / C en mi PC.

Los micrófonos MEMS que uso tienen una interfaz I²S digital con datos de alta precisión de 24 bits ( ADMP441 ). Los tengo colocados en la PCB para que estén listos para usar.

NopuedoconectarestosmicrófonosdirectamenteamiPC,asíquenecesitounainterfazentrelosmicrófonosymiPC.Sinembargo,noquierodedicardemasiadoesfuerzoaestepasoymantenerlocomo"alto - level "como sea posible ya que soy bastante incompetente en el nivel de hardware. Actualmente puedo tener acceso a una placa FPGA (Nexys2 / spartan3E) o una frambuesa pi.

El manejo de la entrada I2S en la frambuesa pi mediante la programación en C no suena muy bien, supongo, pero no sé por dónde empezar en la placa fpga. Como en: de qué pines se obtienen las entradas o cómo ajustar la frecuencia del reloj para que pueda manejar 4 entradas I2S. Tengo conocimientos básicos de verificación y probablemente suficientes conocimientos de electrónica digital.

Si esto es manejable con el FPGA sin ningún circuito de interfaz adicional, me gustaría entrar en "cómo".

He leído preguntas similares, pero ninguna de ellas proporcionó una guía básica para mis problemas.

Gracias de antemano!

    
pregunta vasf

1 respuesta

1

Una cosa que es realmente importante es que quieres asegurarte de que los muestreen juntos, pero mantienes todos sus relojes firmes sin interrupción. Si tuviera cuatro canales i2s configurados cuidadosamente, eso funcionaría.

Me pregunto sobre un diseño de fpga que dividiría un reloj 4x de un micro, recopilaría datos de los micrófonos a esa velocidad y los pasaría a 4x. O posiblemente dos veces si los micrófonos solo llenan la mitad (probablemente la misma mitad) de una transferencia de longitud estéreo.

Un FPGA que ensambla palabras paralelas para un USB FIFO Ic podría ser otra opción.

O con una PC moderadamente rápida, simplemente podría generar relojes i2c y ejecutar el USB FIFO como un analizador lógico, obteniendo los datos en serie de cada canal en un pin / bit diferente, y decodificando i2s en el software.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas