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:配置或 PLL 问题?

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1009566/pcm1865-configuration-or-pll-issue

器件型号:PCM1865

我们遇到一个问题、即我们 PCA 上的 PCM1865在很小的一段时间内无法正确启动。 从理论上讲、抽取滤波器似乎未正确配置、因此低频(~1kHz)在输出数据中正确表示、而较高频率(~20kHz)具有显著衰减。  

PCM1865配置:

采样率:96ksps
输出格式:I2S、带2个 DOUT 引脚、用于4通道输出
总线详细信息:I2S 主机。 BCK、LRCK 都由 ADC 驱动
输入时钟:38.4MHz 高质量振荡器被连接至 SCKI

我使用串行数据记录在示波器上记录了 I2C 编程序列、下面是具有时间戳的序列和注释:

时间 地址 数据 注释
-43.04us 4带宽 00 FE 复位
34.16us 4带宽 00 PAGE=0
111.3us 4带宽 70 71. PWR=待机
188.3us 4带宽 0b 00 FMT=I2S
265.4us 4带宽 0C 00 TDM = 2通道
342.4us 4带宽 20 10. CLK=MSTR、src=SCK
419.4us 4带宽 21 01 dsp1_clk=38.4M/2
496.5us 4带宽 22 03 dsp2_clk=38.4M/4
573.5us 4带宽 230F ADC_clk=38.4M/16
650.5us 4带宽 25 03 SCK_DIV=38.4M/4
727.6us 4带宽 26 03 bck_clk=38.4M/4
804.6us 4带宽 27 3个 LR_clk=bcK/64
881.6us 4带宽 28 00 禁用 PLL
958.6us 4带宽 29 01 PLL P=1/2
1.036毫秒 4带宽 2A 00 PLL R=1
1.113毫秒 4带宽 2B 05 PLL J=5
1.190毫秒 4带宽 2C B0 PLL D = 0.12
1.267ms 4带宽 2D 04 PLL D = 0.12
1.344ms 4带宽 28 01 启用 PLL
1.421ms 4带宽 70 72. PWR=睡眠
1.498ms 4带宽 11 50. GPIO3=DOT2
1.575ms 4带宽 71 30. DSP:HPF en、IIR en
1.652ms 4带宽 06 50 多路复用器 adc1L=1diff
1.729ms 4带宽 07 50. 多路复用器 adc1R=2diff
1.806ms 4带宽 08 60. 多路复用器 adc2L=4diff
1.883ms 4带宽 09 60. 多路复用器 adc2R=3diff
1.960ms 4带宽 01 28. adc1L 增益= 20dB
2.037毫秒 4带宽 02 28. adc1R 增益= 20dB
2.115毫秒 4带宽 03 00 ADc2L 增益= 0dB
2.192ms 4带宽 04 00 adc2R 增益=0dB
2.269ms 4带宽 00 PAGE=0
2.346ms 4带宽 20 3E CLK=MSTR、src=PLL (98.304M)。 Dsp1_clk=pll_clk/2、dsp2_clk=pll_clk/4、adc_clk=pll_clk/16、bk=pll_clk/16
2.423毫秒 4带宽 70 70 PWR=运行

之后、所有寄存器的 I2C 回读具有2个可能结果中的1个。 要成功引导(大部分时间):

第0页、寄存器0x01:0x28
第0页、寄存器0x02:0x28
第0页、寄存器0x03:0x00
第0页、寄存器0x04:0x00
第0页、寄存器0x05:0x86
第0页、寄存器0x06:0x50
第0页、寄存器0x07:0x50
第0页、寄存器0x08:0x60
第0页、寄存器0x09:0x60
第0页、寄存器0x0a:0x00
第0页、寄存器0x0B:0x00
第0页、寄存器0x0c:0x00
第0页、寄存器0x0d:0x00
第0页、寄存器0x0E:0x00
第0页、寄存器0x0F:0x28
第0页、寄存器0x10:0x01
第0页、寄存器0x11:0x50
第0页、寄存器0x12:0x00
第0页、寄存器0x13:0x00
第0页、寄存器0x14:0x00
第0页、寄存器0x15:0x00
第0页、寄存器0x16:0x28
第0页、寄存器0x17:0x00
第0页、寄存器0x18:0x00
第0页、寄存器0x19:0x00
第0页、寄存器0x1a:0x00
第0页、寄存器0x1b:0x00
第0页、寄存器0x20:0x3E
第0页、寄存器0x21:0x01
第0页、寄存器0x22:0x03
第0页、寄存器0x23:0x0F
第0页、寄存器0x25:0x03
第0页、寄存器0x26:0x03
第0页、寄存器0x27:0x3F
第0页、寄存器0x28:0x01
第0页、寄存器0x29:0x01
第0页、寄存器0x2a:0x00
第0页、寄存器0x2b:0x05
第0页,寄存器0x2C:0xb0
第0页、寄存器0x2D:0x04
第0页、寄存器0x30:0x00
第0页、寄存器0x31:0x00
第0页、寄存器0x32:0x00
第0页、寄存器0x33:0x01
第0页、寄存器0x34:0x00
第0页、寄存器0x36:0x01
第0页、寄存器0x40:0x80
第0页、寄存器0x41:0x7f
第0页、寄存器0x42:0x00
第0页、寄存器0x43:0x80
第0页、寄存器0x44:0x7f
第0页、寄存器0x45:0x00
第0页、寄存器0x46:0x80
第0页、寄存器0x47:0x7f
第0页、寄存器0x48:0x00
第0页、寄存器0x49:0x80
第0页、寄存器0x4a:0x7f
第0页、寄存器0x4b:0x00
第0页、寄存器0x4c:0x80
第0页、寄存器0x4d:0x7f
第0页、寄存器0x4e:0x00
第0页、寄存器0x4f:0x80
第0页、寄存器0x50:0x7f
第0页、寄存器0x51:0x00
第0页、寄存器0x52:0x80
第0页、寄存器0x53:0x7f
第0页、寄存器0x54:0x00
第0页、寄存器0x55:0x80
第0页、寄存器0x56:0x7f
第0页、寄存器0x57:0x00
第0页、寄存器0x58:0x00
第0页、寄存器0x59:0x00
第0页、寄存器0x5a:0x00
第0页、寄存器0x60:0x01
第0页、寄存器0x61:0x00
第0页、寄存器0x62:0x10
第0页、寄存器0x70:0x70
第0页、寄存器0x71:0x30
第0页、寄存器0x72:0x0F
第0页、寄存器0x73:0x04
第0页、寄存器0x74:0x32
第0页、寄存器0x75:0x00
第0页、寄存器0x78:0x07
第1页、寄存器0x01:0x00
第1页、寄存器0x02:0x00
第1页、寄存器0x04:0x00
第1页、寄存器0x05:0x00
第1页、寄存器0x06:0x00
第1页、寄存器0x07:0x00
第1页、寄存器0x08:0x00
第1页、寄存器0x09:0x00
第1页、寄存器0x0a:0x00
第1页、寄存器0x0B:0x00
第3页、寄存器0x12:0x40
第3页、寄存器0x15:0x01
第253页、寄存器0x14:0x00

对于有缺陷的引导(时间的少数)、唯一的区别是寄存器0x14读取0x08和寄存器0x73读取0x03。 这种错误检测的采样率似乎与错误设置的抽取滤波器的症状相匹配。 不确定我们是否有任何问题? 另一个观察结果是、寄存器0x28中的 PLL LOCK 位似乎永远不会变为高电平。 这是已知问题还是配置问题?  

有什么建议吗?

谢谢!

Tim Burnet

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

    更多信息和另一个问题:

    我找到 了 https://e2e.ti.com/support/audio-group/audio/f/audio-forum/601776/pcm1865-pcm1865-pll-locking-problems 、它描述了一种通过将该位预置为1然后读回来确定 PLL 的方法。 这是否仍然是推荐的过程?  

    我还发现、在将功能块分配给 PLL 输出之前(但在启用 PLL 之后)检查锁定不会导致 PLL 甚至指示锁定。 我只能通过启用 PLL、将功能块分配给输出、然后检查锁定来验证锁定状态。 这有道理吗? 通常、在使用输出之前、我会检查 PLL 上的锁定情况。 请参见以下初始化序列:

    时间 地址 数据
    -453.4us 4带宽 00 FE 复位
    -376.2us 4带宽 00 PAGE=0
    -299.3us 4带宽 70 71. PWR=待机
    -222.2us 4带宽 0b 00 FMT=I2S
    145.2us 4带宽 0C 00 TDM = 2通道
    -68.20us 4带宽 20 10. CLK=MSTR、src=SCK
    8.883us 4带宽 21 01 dsp1_clk=38.4M/2
    85.89us 4带宽 22 03 dsp2_clk=38.4M/4
    163.0us 4带宽 230F ADC_clk=38.4M/16
    240.0us 4带宽 25 03 SCK_DIV=38.4M/4
    317.1us 4带宽 26 03 bck_clk=38.4M/4
    394.0us 4带宽 27 3个 LR_clk=bcK/64
    471.1 μ s 4带宽 28 00 禁用 PLL
    548.1us 4带宽 29 01 PLL P=1/2
    625.2us 4带宽 2A 00 PLL R=1
    702.3us 4带宽 2B 05 PLL J=6
    779.4us 4带宽 2C B0 PLL D = 0.12
    856.3us 4带宽 2D 04 PLL D = 0.12
    933.4 μ s 4带宽 28 01 启用 PLL
    1.010ms 4带宽 20 3E CLK=MSTR、src=PLL (98.304M)。 Dsp1_clk=pll_clk/2、dsp2_clk=pll_clk/4、adc_clk=pll_clk/16、bk=pll_clk/16
    1.087毫秒 4带宽 70 72. PWR=睡眠
    1.164毫秒 4带宽 11 50. GPIO3=DOT2
    1.241毫秒 4带宽 71 30. DSP:HPF en、IIR en
    1.318毫秒 4带宽 06 50 多路复用器 adc1L=1diff
    1.395ms 4带宽 07 50. 多路复用器 adc1R=2diff
    1.473毫秒 4带宽 08 60. 多路复用器 adc2L=4diff
    1.550毫秒 4带宽 09 60. 多路复用器 adc2R=3diff
    1.627ms 4带宽 01 28. adc1L 增益= 20dB
    1.704ms 4带宽 02 28. adc1R 增益= 20dB
    1.781ms 4带宽 03 00 ADc2L 增益= 0dB
    1.858毫秒 4带宽 04 00 adc2R 增益=0dB
    1.935ms 4带宽 00 PAGE=0
    2.012毫秒 4带宽 28 11. 预设 PLL 锁定位
    2.090毫秒 4带宽 28. 读回 PLL 锁定位
    2.163毫秒 4溴 11. PLL 被锁定
    2.209ms 4带宽 70 70 PWR=运行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tim、

    您可以确认 SCLK 在序列中的哪个位置处于活动状态、还是在器件初始化之前一直处于活动状态? 此外、您的振荡器的输出是3.3V CMOS 逻辑吗? 是否有任何其他连接到 XI 引脚的器件?

    您的时钟设置看起来很好、因此我不会有任何问题。 关于 PLL 锁定位、我们有其他用户报告了这方面的问题、但通常可以通过修复时钟设置中的错误来解决。 由于这里的情况并非如此、我怀疑某些条件不会触发 PLL 锁定标志、但遗憾的是、我对原因没有太多的了解。 我建议遵循您提到的帖子中概述的过程、并在配置后读回采样率状态寄存器、以验证所有内容是否已正确配置。  

    当您的系统启动不正确时、启用/禁用 PLL 或切换 IC 进入和退出待机状态是否足够?

    最棒的

    Zak

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

    Zak 您好、感谢您的回复。

    振荡器输出为3.3V CMOS、连接至 SCKI 引脚。 在器件初始化之前、它至少处于活动状态1秒。 XI 引脚未连接。  

    按照我发布的第2个序列、系统看起来始终正常启动、但我不明白为什么第一个序列会导致任何问题。 这种缺乏理解的情况令我担心,问题会在将来再次出现。  

    系统软件设置为仅在启动时写入 i2c 寄存器、因此在事后有选择地写入寄存器有点困难。  

    此致、
    Tim

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

    您好、Tim、

    我怀疑这可能是您的指定时钟源以及将器件切换到运行状态时的问题。 首先、您要将器件设置为主模式、将 SCLK 用作源、并为此 SCLK 配置所有分频器。 然后、在初始脚本的最后一步中、您更改时钟源和所有分频器以适应更高速度的 PLL 时钟。 配置这些时钟与告知器件进入运行状态之间只有0.1ms 的时间。 我没有时钟分频器输出稳定所需时间的值、但我认为这是时钟分频器输出稳定与器件设置运行之间的竞争条件。  

    我认为您的第二个脚本可能会更好、因为您在时钟配置和运行命令之间的延迟要长得多。 您能否尝试在时钟配置之后以及将器件置于"运行"之前添加1ms 延迟的第一个脚本?

    最棒的

    Zak