¿Es 'normal' usar los temporizadores internos de un DSP para generar señales de reloj de menor velocidad para el muestreo de códec de audio?

2

Actualmente estoy trabajando en un proyecto que cuenta con un procesador Blackfin BF592 ( hoja de datos ).

Estoy intentando conectar este DSP con un códec de audio estéreo ( hoja de datos ).

Originalmente, asumí que este códec de audio tendría una señal de reloj de alta frecuencia (es decir, una frecuencia mucho más alta que la frecuencia de muestreo) que probablemente se alimentaría desde algún circuito del oscilador. Creía que este reloj de entrada se dividiría según sea necesario para obtener una señal de reloj más baja (por ejemplo, 44.1 kHz).

Sin embargo, después de revisar la hoja de datos de este códec, parece que las entradas de señal de reloj esperadas están destinadas a ser 'exactas' y de frecuencia relativamente baja (es decir, 44.1 kHz-ish). Y debido a que este chip es un códec sigma delta, en realidad espera dos frecuencias relacionadas con la frecuencia de muestreo: el reloj de frecuencia de muestreo real, y luego un multiplicador del reloj de frecuencia de muestreo para lograr un sobremuestreo adecuado.

Debido a que planeo muestrear a 44.1kHz, con una tasa de sobreexplotación de x32, necesitaré dos entradas de reloj: 44.1kHz y 1.411MHz.

Entonces, mi pregunta: ¿es una práctica estándar usar un temporizador interno de DSP para generar estas señales? ¿O sería más común que un IC dedicado genere estas dos señales?

    
pregunta Izzo

1 respuesta

2

En general, intenta evitar agregar componentes adicionales a su circuito. Es solo costo adicional, espacio adicional en la placa, más circuitos para mantener en stock, más que pueden quedar obsoletos, etc.

En su caso, definitivamente usaría los temporizadores en el DSP, si es posible. No tengo experiencia directa con él, pero parece tener tres temporizadores accesibles externamente, por lo que debería funcionar bien.

... sin embargo

No creo que haya leído sobre el tiempo, especialmente no sobre las funciones del DSP. Su DSP tiene dos puertos serie que llaman SPORT0 y SPORT1 . De acuerdo con el manual que ha vinculado, cada uno puede operar en cualquiera de estos modos:

  • Modo serie DSP estándar
  • Modo multicanal (TDM)
  • I 2 S
  • Modo I²S empaquetado
  • modo justificado a la izquierda

Si lees un poco sobre I²S, pronto te darás cuenta de que tu CODEC en realidad no tiene tantas entradas de reloj. Tiene un puerto I²S. Su DSP debería poder conectarse fácilmente sin tener que usar cualquiera de sus temporizadores. Los detalles se describen más detalladamente en referencia de hardware .

Si eres nuevo en esto, será muy confuso. No hay mucho que hacer al respecto, excepto practicar, e incluso entonces aún tienes que hacer el trabajo, solo se vuelve un poco más fácil cuanto más lo has hecho.

MCLK

Usted todavía tiene que cuidar de alimentar un MCLK válido. Como puede ver en la Tabla 1 en el manual de CODEC, no tiene un modo de sobremuestreo de 32X. Los convertidores Delta-Sigma son extraños. La página 9 indica que, independientemente de lo que alimente con MCLK, se convertirá internamente en un reloj 256fs. Como desea 44.1 kHz, la Tabla 1 le ofrece cuatro opciones igualmente válidas: ~ 11 MHz, ~ 17 MHz, ~ 23 MHz y ~ 34 MHz.

Esto te da cierta flexibilidad. Para evitar un dolor de cabeza innecesario, ejecute su DSP a un múltiplo de cualquiera de ellos, luego use uno de los temporizadores para crear uno de los relojes anteriores. Como no parece haber una diferencia de calidad entre las opciones, sugiero generar el múltiplo más bajo: 44100 x 256 = 11.2896 MHz.

Ni siquiera sé si el temporizador DSP puede emitir una señal tan alta, pero parece tener un VCO / PLL decente, lo que significa que probablemente puede alimentar al DSP y al CODEC exactamente la misma señal de reloj, y luego haga que el DSP la amplíe internamente:

Esaesunapreguntacompletade nother .

    
respondido por el pipe

Lea otras preguntas en las etiquetas