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:CAN't 更改滤波器系数

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/922969/tlv320aic3254-can-t-change-filter-coefficients

器件型号:TLV320AIC3254

你(们)好  

我们尝试更改/更新滤波器系数、但有时我们无法更改滤波器系数。

请帮助检查以下步骤:  

更新成功示例

 1. 为 ADC 断电

 2. 启用自适应过滤。

  3、ADC 信号处理块 PRB_P2

 4. 为 ADC 加电

 5. 开始 I2S 播放/录制

 6. 延迟600ms  

 7. 将 COEFF_NEW 写入 缓冲器 A

  8.切换缓冲器命令

 9. 检查缓冲区开关是否完成(P8_R1_B0 = 0)

 10. 将 COEFF_NEW 重新写入 缓冲器 A

 

更新失败示例#1

 1. 为 ADC 断电

 2. 启用自适应过滤。

  3、ADC 信号处理块 PRB_P2

 4. 为 ADC 加电

 5. 开始 I2S 播放/录制

 6. 延时500ms  

 7. 将 COEFF_NEW 写入 缓冲器 A

  8.切换缓冲器命令

 9. 检查缓冲开关是否已完成

我们尝试减少延迟时间、在步骤9  中(P8_R1_B0 = 1)始终保持为1、  

 

更新失败示例#2

 1. 为 ADC 断电

 2. 启用自适应过滤。

  3、ADC 信号处理块 PRB_P2

 4. 为 ADC 加电

 5. 开始 I2S 播放/录制

  6.延迟30s  

 7. 将 COEFF_NEW 写入 缓冲器 A

  8.切换缓冲器命令

 9. 检查缓冲开关是否已完成

我们尝试删除步骤#5、并将延迟时间增加到30秒、在步骤#9  中(P8_R1_B0 = 1)始终保持为1、  

您对我们有什么建议吗?

谢谢。

BR

Trevor

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

    你(们)好

    更新一些信息:

    此问题仅在第一次出现、如果我们可以第一次更改滤波器、则在切换新滤波器时无需增加延迟时间。


    BR

    Trevor

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

    尊敬的 TI 团队:  

    你有更新吗?

    BR

    Trevor

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

    尊敬的 Trevor:

    应用报告 https://www.ti.com/lit/pdf/slaa425中介绍了更新自适应系数的过程

    您所遵循的过程大多是正确的。

    首先请注意、它仅在 ADC 上电后适用。 加电时间取决于分压器、PLL、软步进选项、充电时间等大量因素  要检查左侧和右侧 ADC 的加电状态、请读取第0页/寄存器36 (ADC 标志寄存器)。

    您应该仅在加电后尝试更改自适应缓冲器系数。

    您需要解决的第二个方面是有关 switch buffers 命令。

    如何实现 switch buffers 命令? 请注意、P8_R1_D1是只读位。

    因此、要实现开关缓冲器命令、需要执行以下步骤

    (1)读取 P8_R1的8个位

    (2)断言 P8_R1_B0为零(否则为错误条件)

    (3)如果 P8_R1_B0为0、则将其设置为1  

    (4)将新值写入 P8_R1

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

    尊敬的 Diljith:

    我们 在以下步骤中检查 ADC 标志寄存器:  

    更新成功示例

     1、 ADC 掉电(ADC 标志寄存器= 0x0)

     2. 启用自适应过滤。

      3、ADC 信号处理块 PRB_P2

     4. 为 ADC 加电 (ADC 标志寄存器= 0x44)

     5. 开始 I2S 播放/录制(启动 I2S 时钟)

      6.延迟600ms   (ADC 标志寄存器= 0x4C)

     7. 将 COEFF_NEW 写入 缓冲器 A

      8.切换缓冲器命令

     9. 检查缓冲区开关是否完成(P8_R1_B0 = 0)

     10. 将 COEFF_NEW 重新写入 缓冲器 A

     


    因此、如果您不启动 I2S 时钟、ADC 标志寄存 器将始终保持为0x44。

    当 ADC 标志寄存器变为0x4C 时、我们可以成功应用新 系数。

    你有什么意见吗?

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

    尊敬的 Trevor:

    它是否保持在0x4C 处或变为0xCC? 您是否仅使用了正确的 ADC? 如果您同时使用这两个 ADC、则最好等待该标志变为0xCC。 如果没有时钟、器件将处于错误状态、只有在提供时钟后、器件才会加电。 该过程中的最后一个步骤是增益斜升(或软步进)、因此最好等到该点更改任何滤波器系数。

    此致。