PIC32MZ: MSB de datos I2S del micrófono digital siempre es alto

1

He conectado un micrófono digital I2S al controlador PIC32MZ. Puedo leer la salida digital del micrófono a través de la transferencia I2S-DMA.

Los siguientes son los detalles de mi configuración: -

  1. Controlador: - PIC32MZ1024EFE064
  2. Sensor de audio: - SPH0645LM4H-B
  3. MPLAB Harmony Configurator (MHC) v2.0.6.0

Cuando reproduzco un tono cerca del micrófono, obtengo algo de estos valores: -

  • 0xFA8C8000
  • 0xFA8AC000
  • 0xFA6EC000
  • 0xFA6C8000
  • 0xFA600000
  • 0xFA544000
  • 0xFA6E0000
  • 0xFA6AC000

Intenté cubrir el micrófono con pegamento y cinta (para que no detecte ninguna señal de audio) y obtuve los siguientes valores: -

  • 0xF9DD0000
  • 0xF9DD0000
  • 0xF9D9C000
  • 0xF9D80000
  • 0xF9D6C000
  • 0xF9D5C000
  • 0xF9D4C000
  • 0xF9D3C000
  • 0xF9D30000
  • 0xF9D24000

En la respuesta a la publicación Micrófono digital: salida de datos I2S , se menciona que el I2S tiene un desplazamiento de un reloj bastante extraño en comparación con los otros formatos comunes, y si se equivoca, siempre verá un 1 en el MSB de la muestra recuperada, lo que hace que todo aparezca. negativo si se interpreta como un valor firmado.

En mi configuración, el MSB siempre es 1 (o 0xF), sin importar qué entrada le dé a mi micrófono. Estoy planeando usar mis datos para calcular la media, el promedio y los valores pico a pico. Entonces, el bit de signo es importante para mí.

Ahora, he usado MPLAB Harmony para configurar mi I2S.

Mis preguntas son,

  1. Si el desplazamiento de un reloj del reloj I2S hace que el MSB de mis datos sea siempre 1, ¿qué configuración / código debo modificar en MPLAB para resolver este problema?
  2. Aparte del problema del reloj I2S, ¿cuáles pueden ser los problemas que debo resolver para leer los datos correctos desde mi micrófono?

Gracias de antemano

    
pregunta Sandrocottus

1 respuesta

1

Es probable que su MSb esté configurado porque la señal eléctrica que ingresa al ADC tiene un desplazamiento de CC significativo desde el punto medio del ADC. Intente capturar puntos de datos y "ver" el gráfico de señales cuando haya períodos de silencio y períodos de altos niveles de sonido presentes. Si es necesario, capture algunos datos y véalos en Excel o algo similar que se pueda usar para ver gráficamente los datos.

Su micrófono tiene una sensibilidad de -26 dBFS por RMS pascal (94 dB SPL) a 1 kHz. Entonces, con un nivel de presión de sonido RMS de 94 dB a 1 kHz, esperaría una lectura digital de -26 dB en comparación con la escala completa. -26 dB es aproximadamente el 5% de la escala completa, por lo tanto, si espera que el micrófono produzca una gran señal de audio que podría tener un desplazamiento de CC relativamente pequeño, considere esto como poco probable; su señal de audio digital será pequeña y se "sentará" encima de un gran offset de CC digital.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas