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.

[参考译文] TLV320AIC3254:在更改编解码器时钟设置时、会导致音频中断的偶发故障

Guru**** 2480275 points
Other Parts Discussed in Thread: TLV320AIC3254

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/811669/tlv320aic3254-sporadic-failure-causing-audio-cut-off-when-changing-codec-clock-settings

器件型号:TLV320AIC3254

您好!

我的系统中有零星错误、并想检查这里是否有人可以帮助我确定具体发生了什么以及原因。

该系统包含一个连接到 MCU 和蓝牙芯片的 TLV320AIC3254编解码器。 MCU 和蓝牙芯片都通过 I2S 将数据发送到编解码器、编解码器有两种时钟模式、根据工作模式而变化。 其中一个以8kHz 的频率运行 ADC 和 DAC、并在产品接到电话时使用。 PurePath Studio 用于构建音频流并使用生成的头文件来配置编解码器。

当产品从44kHz 变为8kHz 时、问题偶尔会出现、并且电话会开始。 然后、会将音频静音、直到再次完成编解码器时钟更改或产品复位。 这不是锁定状态、因为我仍然可以从产品传输和接收 BT 消息。

是否有人遇到过类似的问题并提出了建议? 突然静音的原因是什么?

此致、

Gammli

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

    您好、Gamli、

    我将邀请我们的产品专家、但我认为这些更改需要在器件处于断电状态时进行、而不是即时进行更改。

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

    您好、Collin、

    感谢您的回复、但是的、我可能也应该添加一些相关信息。 当我修改时钟设置时、我始终运行以下过程:

    • 使 ADC/DAC 静音
    • 为 ADC/DAC 断电
    • 更改 PLL (在这个步骤之后有一个50ms 的延迟、这个步骤解决了我之前遇到的一个问题)
    • 设置其他时钟值
    • 重新编程所需的 mDSP 系数(如果需要)
    • 为 ADC/DAC 加电
    • 取消 ADC/DAC 静音

    /Gamli

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

    您好、Gamli、

    如果是导致问题的 DAC 或输出驱动器(HP/LO)、您是否能够读取状态标志以缩小范围? P0_R37包含 DAC 块的加电状态、P1_R63包含 DAC 模拟增益块的状态。 是仅是静音的播放信道还是已将播放和录制信道静音?

    我希望您已经在遵循 http://www.ti.com/lit/an/slaa425d/slaa425d.pdf 中 有关系数 RAM 镜像的建议。

    此致。

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

    您好!

    根据应用手册在我的情况下的建议、我将以自适应模式使用系统。

    当读取您提到的状态标志时、这些标志会显示所有 DAC 标志和 DAC 模拟增益控制的正确状态、当问题发生时。 关于回放和录制频道、似乎只有在录制频道工作时静音的回放、因为另一端可以听到传出的声音

    所有其他建议都非常感谢!

    /Gamli

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

    您好、Gamli、

    如果 DAC 块和增益已加电并按预期运行、则 miniDSP 处理流程可能会使音频静音。

    请尝试使用 PRB 模式而不是 miniDSP 模式更改采样率。 请勿使用双二阶滤波器来简化测试。

    此致。

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

    您好、Gamli、

    您是否有机会使用 PRB 模式检查系统?

    此致。

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

    您好!

    感谢您的跟进!

    我已经完成了部分任务、因为我需要 miniDSP_A 来运行、所以我只能使用固定块处理而不是 miniDSP_D 来执行简单的测试 但我会得到相同的误差。 现在我已经看到、即使在录制时也会发生这种情况、但不仅仅是像我之前所说的那样回放。 这是我的错误!

    目前、我正在尝试确定选择 I2S 源是否存在故障、因为当我更改时钟设置时、我还会更改 I2S 音频源、并希望确保数据实际传输到编解码器。

    您是否有其他想法导致这种情况的原因? 由于它是非常零星的、因此只会发生 CA。 每50次、调试都很困难。

    /Gamli

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

    您好!

    小更新:
    我已经完成了系统其他部分正常工作的验证、并分析了 RTOS 的运行情况是否符合预期。

    但是、现在当我再次关注编解码器模块时、我注意到一个故障、我能够从一个标志 P0_R38读取、该标志是 DAC 标志寄存器2。 当发生故障时(如前所述非常零星)、其读数为0x00 -施加的左 DAC 和右 DAC PGA 增益均不等于控制寄存器中编程的增益。

    目前、我已经测试了 DAC 的下电上电、再次设置音量并为其提供一些时间可宽延、但没有一个可以解决此问题。
    非常感谢您就此问题提出的任何建议!

    /Gamli

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

    后续问题/疑问:

    我注意到、DAC 标志寄存器2需要一些时间才能正确设置其值、这意味着、如果我在 DAC 的修改和下电上电后直接读取其值、即使发生了故障、我也不一定会得到故障指示。 但是、如果我延迟读取标志或对其进行多次读取、它最终会将这些位设置为故障模式(D4和 D0位为0)。

    是否有任何方法知道该标志是否实际更新(即使它使用相同的值进行更新)?

    电源 我在 DAC 电源设置上禁用软步进的情况下运行、因此不应影响这一点。

    /Gamli

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

    您好、Gamli、

    很遗憾听到系统持续出现零星故障。

    我假设标志寄存器状态更新过程具有一些固有延迟、以解决软步进延迟问题。 您是否能够关联 DAC 标志寄存器2的故障和状态? 它是否会抑制每次故障? 没有故障时、交谈是否会延迟? 我不确定启用软步进是否有帮助、但请尝试启用软步进以查看其对故障率的影响。

    此致。

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

    尊敬的 Diljith:

    是清除 DAC 标志寄存器2的状态与故障之间的相关性。 这是我在软件中唯一可以检测故障的方法、它确实会抑制每次故障、并且没有我看到的错误肯定或真实否定。

    我已经尝试过软步进、这似乎根本不会影响故障率。 但只会增加时间周期、直到我能够确保使用稳定的值更新标志、以便我检测到故障。

    /Gamli

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

    您好、Gamli、

    在我看来、当故障发生时、DAC DSP 没有运行。 您是否想分享流程供我审核? 我想检查一些事项。 我已请求您在 E2E 上与我联系、以便您可以私下共享文件。

    您是否考虑并排除了导致这些故障的 i2c/SPI 事务失败?

    i2c 驱动程序是否检查 i2c 确认并报告事务错误? 由于竞争对手的软件线程间的竞争条件导致的订购外 i2c 交易的情况如何? 您能否验证导致采样率切换事件失败的器件配置写入是否正确? 您可以为此使用 i2c/SPI 监听器。

    此致。

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

    尊敬的 Diljith:

    我会检查确认并报告事务错误。 这似乎不是问题、但我自己还没有验证它是否实际工作正常、以及是否在任何地方进行检查。 引起次序 i2c 事务的竞争软件线程是我尚未研究的问题、但这是一个好主意! 我将尝试通过嗅探 i2c 总线来进行这些测量!

    但我将向您发送处理流文件。 感谢您的回复、非常感谢!

    /Gamli

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

    您好、Gamli、

    从您的处理流程中、我可以看到只有一个 dsp 通道、它似乎不需要与其他 miniDSP_D 信号进行时间校准。 因此、我建议在框架中禁用同步模式。 我建议在执行其他测量之前尝试此方法。

    此致。

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

    尊敬的 Diljith:

    在初始测试之后、它似乎解决了我的问题!

    非常感谢!

    /Gamli

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

    您好!

    只是想发布一个小更新:
    禁用同步模式并不能完全消除此问题、但它将问题频率大幅降低、或者将大约5%的故障率降低到大约0.2%的故障率。

    结合我以前的解决方案、基本上监控 DAC 标志寄存器2并在检测到故障时采取措施、然后禁用同步模式、即可将故障率降至最低。

    感谢您的支持。

    /Gamli

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

    您好、Gamli、

    感谢您的更新。  禁用同步模式可防止系统 在同步过程中锁定。  您在系统上看到的故障可能不同。 标志寄存器和 DSP 状态寄存器是否具有相同的签名?  请告知我们、对于0.2%的故障情况、是否存在与先前故障不同的任何特定特征。  

    此致。

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

    尊敬的 Diljith:

    不是、他们这次对故障具有相同的签名。 我先读取 DAC 标志寄存器1、DAC 标志寄存器2、DAC 模拟增益控制标志寄存器、然后读取粘滞标志寄存器1。 除 DAC 标志寄存器2外、它们均未显示任何故障迹象。

    /Gamli

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

    您好、Gamli、

    我想不到任何已知的与器件相关的行为可能有助于解释您系统上的这些观察结果。 在我们结束分析之前、必须将其复制到 EVM 上 如果您可以在 EVM 上看到相同的行为、请回写信给我们(新主题或回复此问题)。

    此致。