This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SRC4392:为 MCLK = 24.576 MHz、LRCLK = 96KHz 修改代码

Guru**** 2448180 points
Other Parts Discussed in Thread: SRC4392

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1354466/src4392-modify-code-for-mclk-24-576-mhz-lrclk-96-khz

器件型号:SRC4392

您好!

客户将 SRC4392用作 SPDIF 接收器来连接 SPDIF 转 I2S 从器件。

SRC4392_原理图:

e2e.ti.com/.../SRC4392_5F00_schematics.pdf

SRC4392初始代码如下所示、

   I2C_E0 Write_Data (0xE0、0x03、0x21);
   I2C_EVM Write_Data (0xE0、0x07、0x00);
   I2C_EVM Write_Data (0xE0、0x0D、0x08);
   I2C_EVM Write_Data (0xE0、0x0E、0x07);
   I2C_EVM Write_Data (0xE0、0x0F、0x12);
   I2C_AFE0 Write_Data (0xE0、0x01、0x3F);

SPDIF 输入-> SRC4392_RX1 (引脚1)-> SRC4392_SDOUTA (引脚40)

当 MCLK = 12.288 MHz、LRCLK = 48KHz 时、无论 SPDIF = 48KHz 或96KHz、他们都可以在引脚 SDOUTA 处看到输出信号。

但 MCLK = 24.576 MHz、LRCLK = 96KHz、无论 SPDIF = 48KHz 或96KHz、它们都不会在引脚 SDOUTA 处看到输出信号。

您能否告知代码如何修改? 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Henry:

    根据您显示的代码 ,我怀疑 PLL1设置需要修改,即 J、D 和 P 系数。 请参阅下表

    表4. 针对公共参考时钟速率的 PLL1寄存器值;这些系数在寄存器0F、10和11中(上面只显示了0F)。  

    从 上面的脚本中可以看出、寄存器0F 中的 P=1 以及针对 CLK=24.576的表4中、 需要将 P 设置为2 (而不更改其他 J 和 D 寄存器。)

    如果他们仍然有问题、请告诉我。  

    此致、

    阿拉什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    问题已解决。

    感谢您的友好帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢更新。

    此致、

    阿拉什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    抱歉、我的客户针对条件"MCLK = 11.28MHz、RCLK = 44.1KHz"进行了另一个测试、他们在引脚 SDOUTA 上看不到输出信号。

    他们希望获得可支持 MCLK = 11.28MHz、12.28MHz 和24.576MHz 的寄存器设置。

    如何设置寄存器? 请告知。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如前所述、表4。  是公共参考时钟速率的 PLL1寄存器值、这些系数位于寄存器0F、10和11中

    我将再显示一个针对11.2896KHz 的示例计算、并且 它们应该能够 为其它频率本身进行此计算。 从表4中可以看到:

    CLK=11.2896KHz   P=1  、J=8     、 D=7075   

    现在我们必须使用寄存器0F、10和11将这些十进制值转换为二进制值(如果是数据表、请参阅第63页)  

    (参考 寄存器 0F、10和11,我们看到 P 是4位,J 是6位,D 是14位。)

     P 是4位  、因此   P=1  表示0001、     p3 p2 p1 p0

     J 是6位,因此    J=8  表示   001000  ,     J5 J4 J3 J2 J1 J0

    D 为14位    、因此 D=7075  表示 01 1011 1010 0011 、    D13 D12 D11 D10、、、、、D3 D2 D1 D0

    寄存器0F 由 8个位组成:    P3 P2 P1 P0 J5 J4 J3 J2    因此,使用上述位,寄存器0F 变成0001 0010  。

    因此、寄存器0F 应写入 00010010 二进制的。   在十进制中、它 是18、在十六进制中、它是12

    因此、它们必须将 hex12的值写入寄存器0F 中、  

     看起来像:   

    0xE0、0x0F、0x12。

    使用  我为 J 和 D 提供的上述二进制代码,同样的过程应该用于寄存器10和11。

    此致、

    阿拉什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的分享。

    只需要确认一下、当基准时钟被改变后、SRC4392它不能支持自动调整自身寄存器设置、对吧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Henry:

    Arash 今天不在办公室、明天会再来回答您的问题。

    感谢您的耐心等待、
    J·麦克弗森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Henry;

    输入-输出采样率由 SRC 速率估算电路自动确定、数字重新采样器参数将实时更新、无需编程。 内插和抽取滤波器延迟是用户可选的。  因此、  可通过状态寄存器实现输入/输出采样比读回。   

    SRC 包括两个状态寄存器、它们包含由 SRC 速率估算器电路得出的输入到输出采样率的整数和分数部分。 只要 RDY 输出为低电平、就可以读回这些寄存器。 当输入或输出采样率已知时、可以使用这些状态寄存器的内容计算未知采样率。 (数据表第35页)  

    您可以在数据表第33页、尤其是最后一段中详细了解 SRC 的运行信息。

    此致、

    阿拉什