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.

[参考译文] PCM1865:可变采样率12kHz - 48kHz

Guru**** 2445440 points
Other Parts Discussed in Thread: PCM1865

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/718760/pcm1865-variable-sampling-rate-12khz---48khz

器件型号:PCM1865

你(们)好。

我很难尝试在 PCM1865上进行时钟配置。

要求是将器件配置为低至12kHz 的各种采样率。

我们将 PCM1865配置为主模式、并使用24.576MHz 晶体

通过设置 CLK_DIV_SCK_bck 寄存器0x26、该器件在96kHz 至32kHz 范围内工作得非常完美、也就是说、这些都可以:

PCM1865_setreg (0x26、0x00);// 0x00 = 96kHz LRCK

PCM1865_setreg (0x26、0x01);// 0x01 = 48kHz LRCK

PCM1865_setreg (0x26、0x02);// 0x02 = 32kHz LRCK

然而、将一个分频器设定为大于2会导致 ADC 生成全部零。

再次浏览数据表、我发现这一点、第42页:"自动检测和 PLL 系统支持低至32kHz 的频率。"

表10显示了多种采样率和时钟设置、但 SCK=24.576MHz 未列为16kHz 工作时支持的速率、而12kHz 根本未列出。

我的问题是:

1) 1)我们能否使用24.576MHz 晶体实现16kHz 采样率?

2) 2)器件是否支持12kHz 采样率?

如果一个或两个问题的答案都是肯定的、那么  

3) 3)除数据表外、是否有计算器或记录方法来计算 PLL 和分频器寄存器?

任何帮助都将不胜感激!

Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仔细研究了数据表后、我认为我可以部分回答我自己的问题。
    第42页的注释是指我认为此处不适用的 BCK 输入从 PLL 模式。

    由于 SCK (24.576MHz)与 BCK (<32kHz)的比率大于768、ADC 将产生0值输出。
    一种解决方案是减小晶体值、但为了支持12kHz、我们需要6.144MHz、这样就只能达到48kHz 的最大 SR。

    另一种解决方案可能是将 PLL 用作 SCK 源。 该模式似乎旨在倍增慢时钟、而不是像我们可能需要的那样、对较低的 SR 进行分频。 手动配置 PLL 和分频器看起来... 令人生畏。 这里有人对此有经验吗?

    再次感谢您的任何建议、意见或帮助!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Martin:

    请参阅以下配置、使用 PCM186x 通过24.576MHz 时钟实现16kHz 采样率。 该配置允许使用4通道输入并将其中一个 GPIO 配置为 DOUT2。 但是、如果您只有2通道、您将在 DOUT 上看到输出。 希望这能帮助您解决这个问题-

    0x94 0x00 0x00 //更改为第0页
    0x94 0x01 0x40 // PGA CH1_L 更改为32dB
    0x94 0x02 0x40 // PGA CH1_R 更改为32dB
    0x94 0x03 0x40 // PGA CH2_L 更改为32dB
    0x94 0x04 0x40 // PGA CH2_R 更改为32dB
    0x94 0x05 0x86 //启用平滑 PGA 更改;独立链接 PGA;
    0x94 0x06 0x41 //极性:正常、通道:VINL1[SE]
    0x94 0x07 0x41 //极性:正常、通道:VINR1[SE]
    0x94 0x08 0x44 //极性:正常、通道:VINL3[SE]
    0x94 0x09 0x44 //极性:正常、通道:VINR3[SE]
    0x94 0x0A 0x00 //次要 ADC 输入:无选择
    0x94 0x0B 0x44 // RX WLEN:24位;TX WLEN:24位;FMT:I2S 格式
    0x94 0x10 0x03 // GPIO0_FUNC - SCK 输出;GPIO0_POL -正常
    0x94 0x11 0x50 // GPIO3_FUNC - DOUT2;GPIO3_POL -正常
    0x94 0x12 0x04 // GPIO0_DIR - GPIO0 -输出
    0x94 0x13 0x40 // GPIO3_DIR–GPIO3 -输出
    0x94 0x20 0x11 // MST_MODE:主机;CLKDET_EN:禁用

    此致、
    Ravi

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

    因此、您建议如果我禁用 CLKDET_EN 并依赖 PLL 和分频器的默认值、那么该器件将通过24.576MHz 晶体配置为16kHz?

    0x94 0x20 0x11 // MST_MODE:主机;CLKDET_EN:禁用
    
    

    这会将 CLKDET_EN 位0设置为启用、而不是禁用。

    我已经尝试过将寄存器0x20同时用作0x11和0x10的配置、但不幸的是、它对我不起作用。

    在这两种情况下、我都得到零输出、状态寄存器0x72至0x78如下所示:

    0x72状态= 0b001等待时钟稳定
    0x73 INFO = 0b011 32kHz 至48kHz
    0x74 SCK_Ratio = 0b110超出范围(H)
    0x74 bck_Ratio = 0b100 256
    0x75 SCKERR=0b1错误
    0x75 BCKERR = 0b0无错误
    0x75 LRCKERR = 0b0无错误
    0x75 SCKHTL=0b0无错误
    0x75 BCKHTL=0b0无错误
    0x75 LRCKHTL = 0b0无错误
    0x78 LDO = 0xb1正常
    0x78 AVDD = 0xb1正常
    0x78 DVDD = 0xb1正常

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在32kHz 模式下运行、我获得有效输出和
    0x74 SCK_RA比= 0b101 768

    0x75 SCKERR=0b0无错误