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:更新时钟和 PLL 设置运行时

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1600507/tlv320aic3254-updating-the-clock-and-pll-settings-runtime

部件号: TLV320AIC3254

在我们的解决方案中、我们有两个主要的音频源。 模拟路径、我们从两个麦克风获取 IN2 音频、并从 I2S 获取数字路径。 在模拟麦克风上运行 AGC。

仅运行模拟时、我们在 MCLK 上使用 4MHz 时钟、AGC 效果良好。

然后、当我们切换到 I2S 时、我们在 BCLK 上以~1、4MHz 的速度运行 PLL、模拟音频和 I2S 音频都正常工作、但 AGC 似乎不再运行。

如果我们再次应用 PLL 和时钟设置(寄存器设置仍然相同)、AGC 将继续工作。

在更新设置运行时时时、确保 PLL 和 ADC/AGC 启动的正确方法是什么? 由于延迟等原因、我真的不希望重新启动整个 DSP

 

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

    您好、

    如何配置器件? 您能否共享一个在连接时钟和进行相应更改时运行的寄存器配置脚本? 如果您可以在每个配置期间发送寄存器转储、这也会有所帮助。 我认为 AGC 与 PLL 没有太多关系、但可能当您切换配置时 AGC 寄存器会被覆盖。

    此致、
    Mir

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

    您好、

    如果在此 AGC-OFF 场景与 AGC-ON 场景中可以从芯片执行寄存器转储、则有助于我们更好地进行诊断。 不过、我将看看写入寄存器 0x56 和 0x5e 的位置。 我看到、对于代码中的许多函数、它们都设置为已启用、但在 ALL_OFF_COMMANDATIONS 列表中设置为已禁用。 看起来您在启用 I2S 时会首先发送这些命令、请确保在启用 I2S 时最终也会启用 AGC 时发送其他命令。 您可能未在启用的 I2S 命令中包含该代码。

    此致、
    Mir

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

    我们正在设置转储。 我将返回文件。

    在这段时间里,我认为这是很重要的。 如果我们运行两次“Send_all_off",“,每次、每次仅输入一次、则 AGC 将按预期工作。 但这不应仅根据设置的顺序更改结果寄存器。

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

    您好、Oskar、

    切换时、是否可以尝试向命令开头添加软件复位? 我在遵循脚本顺序时遇到问题、因此如果我们有寄存器转储或仅运行一个很长的脚本来执行配置、情况就会更明显。 我认为、如果您复制了所有命令以查看我们正在设置的内容、需要运行两次函数之一来正确设置值会更容易进行调试。 如果能够按顺序转储所有命令(以及或而不是寄存器转储)、则更容易遵循。

    此致、
    Mir

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

    是的、这将是我努力工作的一个替代方案。 每次模式更改时都进行完整的初始化。

    这是 I2S 和模拟音频期间第 0 页和第 1 页的存储器 DUP。

     e2e.ti.com/.../dsp_5F00_mem_5F00_dump3.txt

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

    您是否也能在仅进行模拟设置期间提供转储? 我们可以对两者进行比较。 在该转储中、AGC 开启。 以下是我针对 AGC 寄存器的注释代码:

    0x00 0x56 0xe0 #left agc enabled, target level=-20dBFS, hysteresis is disabled
    0x00 0x57 0x00 #left agc noise gate disabled
    0x00 0x58 0x3c #l agc maximum gain=30dB
    0x00 0x59 0x50 #l agc attack time = 21*32 adc word clocks
    0x00 0x5a 0x58 #l agc decay time = 23*512 adc word clocks
    0x00 0x5b 0x00 #def debounce time
    0x00 0x5c 0x00 #def debounce time
    0x00 0x5d 0x3c #l agc gain = 30dB
    0x00 0x5e 0xe0 #right agc enabled, target level=-20dBFS, hysteresis is disabled
    0x00 0x5f 0x00 #r agc noise gate disabled
    0x00 0x60 0x3c #r agc maximum gain=30dB
    0x00 0x61 0x50 #r agc attack time = 21*32 adc word clocks
    0x00 0x62 0x58 #r agc decay time = 23*512 adc word clocks
    0x00 0x63 0x00 #def debounce time
    0x00 0x64 0x00 #def debounce time
    0x00 0x65 0x3c #r agc gain = 30dB

    此致、
    Mir

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

    e2e.ti.com/.../dsp_5F00_mem_5F00_dump1.txt

    是的、这里是一个仅使用模拟路径时的转储。 起音和衰减已针对略有不同的 FS 进行了调整。

    据我所知、最好将此开关重构为介于之间的寄存器复位。 但是寄存器是复位、重置所有设置 LDO CM DSP_A、软步进等、还是应该保留一些设置?  

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

    您好、Oskar、

    当我询问寄存器复位问题时、我想象了在运行其他配置的所有新寄存器之前发生的复位。 因此、您的脚本将如下所示:  

    1) 复位
    2) 开启 PLL 并设置输入和输出
    3) 特殊的过滤器或您想要的任何其他设置

    这样我们就可以保证所有相同的配置。 看起来 AGC 已针对最新的转储启用、脚本之间的大多数差异都与时钟有关、尽管我确实注意到在 I2S 和模拟音频期间的转储中有一个奇怪的时钟东西、但第 0 页寄存器 0x10 中的 IDAC 不是 2 的幂、因此我相信您是误设置的。 默认情况下、从寄存器 0x0F 开始、它将是 02 00、或者如果您希望它与 ADC 相同、您可以将它设置为 01 00、因此寄存器 0x10 为 00。 不过、这会影响 DAC 的处理、因此不一定会导致您的问题。 我注意到的另一个问题是在 I2S+模拟音频转储中、您遇到一些错误、说 L 和 R ADC 溢出、可能导致操作混乱、使 AGC 听起来好像没有打开? 这些是我关于寄存器转储的主要说明。 当您说 AGC 不工作时、是通过寄存器或操作进行确认的吗?

    此致、
    Mir

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

    我们已经使用信号和测量值测试了 AGC、因为您可以看到寄存器看起来正常。 这也是我们开始深入研究这一点的原因。

    在之前的音频“模式“中、IDAC 设置接缝会被保留、在这种模式下、我们也会运行 miniDSP。 我将重置为默认值。

    溢出位这是否与由于 I2S 流在此操作期间继续存在、因此如何下调和上调 PLL 有关?

    我将运行一个带有软件重定位的测试配置、让您了解结果。

    软件复位也会复位 LDO 和 CM 设置? 那么我们必须再次为它们加电、等待它们稳定下来吗?

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

    您好、

    是的、软件复位会将所有寄存器设置为其默认值、如果您之前更改过寄存器、可能会改变您的 LDO 和 CM 设置。 在应用参考指南中、有一些示例脚本、它们表明它们从软件复位开始、然后为该用例设置所有配置。 但是、如果您能够清理代码以按顺序显示每个步骤、这可能会帮助您揭示导致问题的原因... 您能否逐步记录发送的所有 I2C 命令? 也就是说、在流程中添加软件复位可能不太方便。  

    您能描述或显示您的 AGC 问题吗? 也许设置发生了变化、或者其他情况发生了变化? 我不知道我理解这里的整个问题。

    此致、
    Mir