¿Cómo sabe este ADC de audio a qué velocidad muestrear el audio?

La parte en cuestión es PCM1808 . Este dispositivo necesita un reloj de sistema externo en el pin SCKI. Desde el dispositivo maestro necesitará LRCK, BCK y DOUT. El LRCK elige los canales izquierdo/derecho. BCK es la señal de reloj enviada al ADC para expulsar los bits DOUT. El componente tiene una resolución de 24 bits.

Ahora suponga que tengo un cristal de 16.384 MHz. De acuerdo con la Tabla 1, esto podría significar una frecuencia de muestreo de 32 KHz o 64 KHz. La hoja de datos dice que "El PCM1808 tiene un circuito de detección de reloj del sistema que detecta automáticamente si el reloj del sistema está funcionando a 256 fS, 384 fS o 512 fS en modo esclavo". Estoy perdido, ¿cómo sabe el dispositivo si quiero muestrear a 32 KHz o 64 KHz, automáticamente? Esto me parece ambiguo, casi como magia.

Entonces, ¿el dispositivo maestro necesita leer el ADC continuamente? Quiero decir, habrá ocasiones en las que no será necesario leer muestras. ¿Qué sucede si no estoy leyendo el ADC en absoluto? ¿Necesito enviar algún comando para que se duerma y se despierte?

El dispositivo maestro es alimentado por el mismo reloj de 16.384 MHz. Sin embargo, obviamente no envía la señal BCK a la misma velocidad de 16.384 MHz. Si uno usa el formato de datos I2S, ¿a qué velocidad lee el ADC el dispositivo maestro para obtener todas las muestras enviando BCK y leyendo datos en DOUT y cómo se asegura esto? ¿Es mediante el uso de interrupciones de temporizador o hardware integrado especial para transferencias de datos I2S?

Con I2S, el maestro controla la frecuencia de muestreo controlando el reloj de bits. El número de bits por palabra y el número de canales son fijos o preprogramados por el maestro. en.wikipedia.org/wiki/I%C2%B2S
Considere la relación entre LRCK y la frecuencia de muestreo.
Esto también puede ser útil para comprender I2S. Es una pregunta que tuve hace un tiempo: electronics.stackexchange.com/questions/102588/…

Respuestas (1)

Si observa la Tabla 2, verá que los pines MD0 y MD1 controlan cómo el maestro utiliza la entrada de reloj (ya sea 256, 384 o 512 * fs). Una vez que seleccione una de estas opciones, puede usar su frecuencia de cristal para indicarle la frecuencia de muestreo.

Una vez que conozca la frecuencia de muestreo, puede usar la resolución para obtener la tasa BCK. Esta parte en particular tiene una resolución de 24 bits. Cada "fotograma" de audio consta de dos canales, izquierdo y derecho. Cada canal tiene un valor de 24 bits. Por lo tanto, cada muestra es de 24 bits de datos. Si, por ejemplo, está utilizando una frecuencia de muestreo de 64 KHz (seleccionando 256fs usando los pines MD0 y MD1), puede obtener la frecuencia BCK:

24 bits/muestra * 64 000 muestras/seg = 1 536 000 bits/seg

Por lo tanto, su frecuencia BCK es 1.536 MHz. Su reloj L/R será 24 veces más lento que esto, ya que oscila cuando cambia el canal, que es cada 24 bits.