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.

[参考译文] PCM1864:从模式:双 PCM186x TDM 功能

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1215145/pcm1864-slave-mode-dual-pcm186x-tdm-functionality

器件型号:PCM1864

您好、

我使用两个 pcm1864。 我有一个 DSP、它是时钟的主控器、它会生成 MCLK、BCLK e LRCLK。

这3个时钟连接到两个 pcm1864。 两个1864是带有这个连接的时钟的从器件:


DSP_MCLK ---->SCKI (引脚15)
DSP_LRCLK ---->LRCLK (引脚16)
DSP_BCLK ---->BCLK (pin17)

我已在从模式下配置了 PCM1874、并使用 tdm8 fornat (32位)、方法如下:

// first PCM1864
pcm1864_write_register(PCM1864_01, 0x06, 0x41); // select VINL1 for ADC1L
pcm1864_write_register(PCM1864_01, 0x07, 0x44); // select VINR3 for ADC1R
pcm1864_write_register(PCM1864_01, 0x08, 0x42); // select VINL2 for ADC2L
pcm1864_write_register(PCM1864_01, 0x09, 0x48); // select VINR4 for ADC2R

pcm1864_write_register(PCM1864_01, 0x20, 0x01); // activate auto detect mode

pcm1864_write_register(PCM1864_01, 0x0B, 0x03); // select TDM digital output, slave mode, 32 bit audio word and duty cycle of LRCK is 50%
pcm1864_write_register(PCM1864_01, 0x0C, 0x01); // select 4-channel output (ch1[L], ch1[R], ch2[L], ch2[R])
pcm1864_write_register(PCM1864_01, 0x0D, 0x00); // offset position in of TDM8 output: 0 (first 4 channels)

wait_500ms();
pcm1864_dump_status_tegisters(PCM1864_01);

// second PCM1864
pcm1864_write_register(PCM1864_02, 0x06, 0x41); // select VINL1 for ADC1L
pcm1864_write_register(PCM1864_02, 0x07, 0x44); // select VINR3 for ADC1R
pcm1864_write_register(PCM1864_02, 0x08, 0x42); // select VINL2 for ADC2L
pcm1864_write_register(PCM1864_02, 0x09, 0x48); // select VINR4 for ADC2R

pcm1864_write_register(PCM1864_02, 0x20, 0x01); // activate auto detect mode

pcm1864_write_register(PCM1864_02, 0x0B, 0x03); // select TDM digital output, slave mode, 32 bit audio word and duty cycle of LRCK is 50%
pcm1864_write_register(PCM1864_02, 0x0C, 0x01); // select 4-channel output (ch1[L], ch1[R], ch2[L], ch2[R])
pcm1864_write_register(PCM1864_02, 0x0D, 0x80); // offset position in of TDM8 output: 128 (second 4 channels)

wait_500ms();
pcm1864_dump_status_tegisters(PCM1864_02);

但是、在状态寄存器中进行配置(等待500毫秒)之后、我得到以下值:

页面 寄存器 PCM1864.1 描述1 PCM1864.2中的一个 描述2
0 0x20 0x01 CLKDET=1 (正常) 0x0F 预期值= 0x01
0 0x28 0x00 PLL 已禁用(正常?) 0x13 PLL 被启用并且被锁定至 bck
0 0x70 0x70 上电并运行 0x70 上电并运行
0 0x72 0x0F 器件状态:运行 0x0F 器件状态:运行
0 0x73 0x03 32kHz 至48kHz (正常) 0x03 32kHz 至48kHz (正常)
0 0x74 0x44 BCK:256fs - SCK:512fs (正常) 0x47 无效的 SCK 比率或 LRCK 停止(不良)
0 0x75 0x00   无错误(正常) 0x11 SCK 暂停和错误(错误)
0 0x78 0x07 DVDD、AVVD、LOD 正常 0x07 DVDD、AVVD、LOD 正常
3. 0x12 0x00 保留值错误 0x40 权利保留值
253. 0x14 0x01 保留值错误 0x00 权利保留值

因此有些值似乎不正确、实际上在数字输出中、我没有期望值。

我尝试更改配置以禁用时钟自动检测(P0.0x20 -将 CLKDET_EN 位更改为0)、但对于 PCM1864、该位未更改(在第一个 PCM1864中读取0x01、在第二个 PCM1864中读取0xFF)。

在附件中、在配置步骤期间会转储寄存器。

有人能指着我的方向找到错误的步骤吗?

感谢您的支持。

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

    您能向我发送 DSP 生成的时序吗?

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

    您好!

    DSP 生成该时序:

    MCLK:512fs

    BCLK:256fs

    LRCLK:50%占空比(48kHz)

    如果需要其他信息、请告诉我。

    感谢您的支持。

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

    时序是可以的。 但我建议使用 IC 本身的示波器来验证时序。 此外、您应该首先从板上移除1个 IC、并让1个芯片正常工作、然后再放置第二个芯片。

    您在数字输出端看到的故障是什么?

    PLESE 还可以分享您的原理图。