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.

[参考译文] PCM5122:为初始化设置时钟树后、等待 CP 电压有效时的电源状态重构

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1413298/pcm5122-power-state-remian-at-wait-for-cp-voltage-valid-after-setup-clock-trees-for-initalization

器件型号:PCM5122
主题中讨论的其他器件: PCM5102APCM5102

工具与软件:

您好!

下面是配置示例:  

设置 PCM5122。 32位@ 16K 采样率、 SCK 被连接至 BCK。
设置时钟树和 I2S 配置后、我等待10ms 后才读取电源状态、
并且它返回"Wait for CP voltage value"
但我测量了 CPVDD、刚好@ 3.3V。
NVEG 约为480mV。
所以... 导致问题的原因是什么?
感谢您的帮助。
寄存器转储:
寄存器37 -> 0x1A
寄存器13 -> 0x10
寄存器14 -> 0x10
寄存器20 -> 0x00
寄存器21 -> 0xC0
寄存器22 -> 0x00
寄存器23 -> 0x00
寄存器24 -> 0x01
寄存器27 -> 0x05
寄存器28 -> 0x11
寄存器29 -> 0x03
寄存器30 -> 0x18
寄存器35 -> 0x04
寄存器36 -> 0x00
寄存器34 -> 0x00
 
寄存器40 -> 0x00
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    我假设您在发布压缩文件之前已经验证了您提到的代码。 因此,现在我们必须处理提供给 IC 的 I2S 信号。 首先、您能否确认 clk 值以及 Din wrt LRCK 和 bck 的格式、如 表4中所述。 PCM512x 音频数据格式、位深度和时钟速率以及  图14。 I2S 音频数据格式。 请发送所使用的 I2S 图和时钟值、以便我们进行检查。

    显然、电荷泵不会生成预期电压、这意味着 CLKS 无法获取该电压。

    此致、

    Arash

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

    你(们)好、Arash。

     在施加任何 I2S 信号之前、返回了"Wait for CP voltage valid"。

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

    尊敬的 Arash:

    那么、正确的上电顺序是什么? 我应该在设置寄存器后检查电源状态吗? 在施加 I2S 信号之前返回"等待 CP 电压有效"是否正常?

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

    Weiwei 您好!

    请参阅第10.4节"上电复位功能"。 除此之外,没有对各种电源的顺序要求。

    您可以参考  寄存器转储的附加文件。 这是默认情况下的完整寄存器转储

    如上所述、 请确保 CLKS 的值正确、 例如、对于2通道、32位 和16KHz Fs、 BCK 在1.024MHz 处设置正确 (表4)

    此外、还要确保  DIN (wrt LRCK 和 bck) 的格式正确(图14)

    Memory-dump-for-PCM5122.rtf

    此致、

    Arash

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

    尊敬的 Arash:

    我似乎设法使其正常工作、显然我需要先施加一些随机 I2S 信号以完成 POR、然后再返回至待机状态。

    但随后、我曾尝试将一些三角波硬编码到 PCM5122中、但 DAC 输出不会产生声波。 不确定我是否做了一些错误的事情、CLKS 至少正常:

    I2S 设置:

      hi2s1.Instance = SPI1;
      hi2s1.Init.Mode = I2S_MODE_MASTER_TX;
      hi2s1.Init.Standard = I2S_STANDARD_PHILIPS;
      hi2s1.Init.DataFormat = I2S_DATAFORMAT_32B;
      hi2s1.Init.MCLKOutput = I2S_MCLKOUTPUT_DISABLE;
      hi2s1.Init.AudioFreq = I2S_AUDIOFREQ_16K;
      hi2s1.Init.CPOL = I2S_CPOL_LOW;

    示波器屏幕截图:

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

    尊敬的 Arash:

    顺便说一句、我不知道我如何解释内存转储文件、但我看不到第0页和第1页中的任何寄存器设置、它都是零...

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

    尊敬的 Weiwei:

    感谢您的更新。 Arash 将于美国时间周一重返办公室、以便与您联系。

    感谢您的耐心等待、
    Jeff McPherson

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

    尊敬的 WeiWei:

    我刚打开上面,看到他们都是 zerro . 看起来你现在已经开始工作了、 那么你是否需要寄存器转储、如果是、我必须在本周某个时间重新进行。

    此致、

    Arash

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

    尊敬的 Arash:

    采样寄存器转储可能很有用、但现在 I2S 输入似乎正常、但当我对三角波的一段进行硬编码时、它不会生成任何输出。 有任何建议吗?

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

    尊敬的 WeiWei:

    以下是此器件用于不同用途的脚本集合。 由于可以很好地使用 I2S、因此您的设置是正确的、您可能不需要所有这些文件、但将来会非常方便。 由于该器件 可以正常使用 I2S、但 不会响应您硬编码的单波段、因此似乎不是器件问题; 我唯一的建议是确保硬编码中没有错误。 很抱歉,我不能在这方面提供太多帮助。  

    e2e.ti.com/.../0624.PCM5xxx_5F00_sample-codes.zip

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

    最新动态:  

    根据产品说明书描述的上电复位函数、我修改我的代码、首先启动 I2S 源几秒钟、让它退出默认复位状态、然后开始时钟树的配置。 此时、功率状态在 VOL 斜升时被中断、并且再次观察不到输出。  

    在我的上一步是先配置时钟树、然后启动 I2S 源时、电源状态将卡在"Wait for CP Voltage Valve"。 当然、当 I2S 再次启动时也没有输出。

    这一切都令人困惑

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

    由于您提到 它是工作正常,然后 I2S 输入,您的设置和配置(脚本/寄存器)是好的. 您提到三角波的硬编码段再次显示了问题。 请注意、所有设置都由硬件(和电路连接)以及正确的寄存器组成、然后会提供正确的输入和 CLKS。 借助 上述实验、 您所做的修改似乎会使您的设计突破、这并不是您的电路板或 IC 本身的问题。

    欢迎您 将 评估板发送给我、我确认 IC 工作正常、但据我所知、我们没有其他建议。

    此致。

    Arash

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

    Arash、

    那么、IC 在 VOL 斜升"时停止工作的可能原因是什么? 我正在使用的非常相同的代码(不再是三角波、而是正弦波发生器)实际上适用于 PCM5102A、也适用于3线 I2S。 在我的板中、我分接了 I2S 信号并将其直接连接到 PCM5102A 模块。  

    然后,如果这起作用,那么它给我们留下3种可能性:

    1. IC 中断

    2.寄存器配置错误(驱动程序代码不是由我写的、而是被其他人成功使用)

    3.原理图中的问题?

    原理图:

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

    我看了看原理图,它看起来很好,除了 我会添加一个外部上拉到软静音引脚。 另外、我们通常添加22至100欧姆串联电阻器与 I2S 线路串联(但这些更改都与您的问题无关)  

    我不怀疑 IC 损坏。 请记住、 根据上述测试、您提到 IC 使用 I2S 输入能够正常工作。

     您正在编程的代码 和 提供的输入的握手存在问题。 我给了你一个工作代码的集合,已经被许多用户使用。 因此, 使用 正确的原理图和脚本(寄存器),如果它不起作用,问题可能是输入格式。 (例如、您将器件配置为 RJ 或 LJ 或 I2S、但输入形式 不是器件所需的、或者 CLK 不同。)  

    为了进一步调试,我 建议 使用相同的 输入 ,你发送到 PCM5102 (和工作正常),但这次把 PCM5122在硬件模式,看看它如何反应 . 基本上 先让它在硬件中工作、然后切换回软件模式。 在所有实验中、 也请注意电荷泵引脚。  

    有些 寄存器、例如您可以使用的寄存器37。 IC 具有 数字音量紧急斜降功能、它用于 I 2S 时钟错误和电源故障等情况、并且您可以将斜降速度控制为另一个调试步骤。

    寄存器(如 Reg80-85)也可用于作为调试工具在 SW 模式下读取任何标志错误。

    另请参阅 图63。 PCM512x 时钟分配树,并确保你正在使用的脚本是有意义的,例如)如果脚本在你在图中看到的一个多路复用中使用 SCK ,但你没有提供 SCK ,那么你会有一个问题。  这带来了另一个建议:尝试  使用提供的 SCK 进行测试。 有关更多信息、请参阅第8.3.6.4节"使用 PLL 生成时钟"。

    此致、

    Arash

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

    Arash、

    我查看了电路、发现 MUTE 引脚一直处于低电平(静音)、内部上拉不够强。 所以我添加了一个外部上拉,但可悲的是,这不是我要找的罪魁祸首。 仍无输出。 我使用了与您提供的代码相同的寄存器配置顺序、并且对照数据表中的表查看了 PLL 值、一切似乎正常。 但都不起作用。 令人沮丧

    话虽如此、我可以在硬件模式下控制音量吗? 除了 PCM5102A、这可能是我唯一想要的额外功能。

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

    Arash、

    我尝试了读取多个监控寄存器和状态寄存器、结果如下(当存在 I2S 源时):

    寄存器94时钟状态:0x40

    REG 95时钟错误:0x10

    REG 108模拟静音监视器:0x00

    REG 114 XSMUTE Monitor:0x03

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

    但是在 I2S 数据流中看不到任何问题。 因为它是在 PCM5102A 中工作的

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

    静音 PU 电阻器 不是问题,因为您的部件使用脚本和 I2S 工作正常。

    您上面显示的图与 I2S 不符、 如果您将器件编程为接收 I2S、则无法正常工作。  请参阅 图14。  I2S 格式的样子。  

    寄存器94时钟状态:0x40     => SCK 缺失、可以、正在使用3线 I2S

    REG 95时钟错误:0x10      =>  自上次读取以来发生了 SCK 暂停(我认为这不是 问题)  

    REG 108  模拟静音监视器:0x00 =>  L&R 模拟静音监视器:好像它们已静音!!

    REG 114 XSMUTE Monitor : 0x03  =>它是 XSMUTE 水平检测器

    请检查  第0页的以下寄存器  

    reg 03 bit 4和 b0应该是0、

     请确保它没有静音或非常高的衰减  

    寄存器65 :禁用 R 和 L 通道自动静音。

    寄存器9 :它是处于主模式还是从模式?

    寄存器40 验证格式

     以上是查找 代码或设置中可能存在的问题的充足提示( I2S 格式)。 如果你仔细验证他们,仍然有问题,我们  建议您尝试在上一篇文章中的建议.

    1)使用 SCK 在 SW 模式下尝试 。 如果在软件模式下存在有效的 SCK、BCK 和 LRCK、器件将根据需要自动配置时钟树和 PLL 以驱动 miniDSP。  

    2) 2)在硬件模式下使用有问题的 IC、并 对其应用 I2S。 如果它工作正常,那么我们肯定知道,它是寄存器,而不是输入格式,而不是静音或 其他东西。 在这种情况下、您仍需要检查上述寄存器。

    此致、

    Arash

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

    Arash、

    1)和2)我将需要设计一个新的分线板来测试它、因此在这之前、我想我可以先检查寄存器。

    关于寄存器108、我曾尝试通过页1寄存器100模拟静音控制来禁用它、但仍然返回0x00。

    寄存器03返回0x00。 因此它不会静音、不确定为什么模拟静音这么说。

    寄存器61/62返回0x00 L&R 音量已达到最大值

    寄存器65设置为禁用

    寄存器9返回0x00。 因此它设置为从模式。

    寄存器40设置为0x03 (32位格式、因为 I2S 数据流采用32位数据帧)

    至于示波器读数、我还没有逻辑分析仪、但可以确保其与数据表中建议的 I2S 格式略有出入。 我正在使用 STM32生成 I2S 源、设置为32位帧中的32位数据、采样率为16K (该 BCK 设置为围绕1.024MHz)、如果 I2S 流错误、肯定这在 PCM5102A 中也不起作用? 但该同一个源确实使 PCM5102A 能够生成稳定的1KHz 正弦波。

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

    显然,您发送的波形不是 I2S 格式,它看起来更像 LJ。   一旦您告诉器件需要 I2S 格式(寄存器0h40) 、除 I2S 格式外、它将不支持任何其他格式。  

    第1页中没有寄存器100。   第12.1.1.3节  列出了第1页寄存器并且它只有1到9、没有 寄存器100。   要更改模拟静音行为、您需要转至页1/寄存器6。 由于 此位启用或禁用数字静音后的模拟静音、因此我怀疑它导致了问题、但在调试过程中、最好确认。

    如果 I2S 格式问题已得到解决、但仍然存在问题、则  应通过我们要求的两个测试进行进一步调试。  

    此致、

    Arash

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

    I2S 格式如数据表所示

    你在 这里展示的是不同的格式 !!