对于消费类或者可穿戴产品,音频系统的集成度越来越高,这就导致后期debug问题的时候很难一步到位,需要我们对底层系统有明确的认识和了解。这篇文章主要基于TAS2562 / TAS2564来分析和解决一些复杂且无法直接定位的底噪noise。
1. 分析逻辑
无法直接定位的噪声根源及其类型,我们的思路是把噪声在系统中流经的途径都进行优化。
具体分为:信号“输入”-> “输出 ”-> “反馈过程处理” 三个环节进行优化。如Figure 1.所示:
Figure 1. 噪声途径示意图
Figure 2. Block Diagram
● SPK:负载喇叭
● AMP:是一种调节 INP/INM 纹波的运算放大器
● 高频纹波可能来自输入到输出 OUTP 到 INP 和 OUTN 到 INM 的电流
● 由于 OUTP/OUTN 开关@高频(384KHz PWM 频率),纹波可能发生在此高频状态
● 较高的纹波会导致高噪声
● 为了降低噪声,可以提高放大器带宽
● 直流增益不会降低纹波,但带宽改进会降低高频成分
2. 优化硬件系统寄存器配置
如Figure 1.所示,每个环节我们都可以对其寄存器进行优化:
1. “输入”--空闲模式阈值寄存器:关掉了该寄存器的功能;其作用是排除输入端潜在引入的关开噪声。
2. “输出反馈”--反馈阈值寄存器:从-60dbFs 改成-30dbFS;其作用是排除输出信号到反馈过程中引入的开关噪声。
3. “过程处理”--运放带宽寄存器:增大处理高频noise电路中的运放的带宽(噪声信号处理的范围);其作用进一步优化对高频段噪声的抑制能力。如Figure 3.
Figure 3. 高频噪声抑制运放的位置图示
3. 相关寄存器的软件配置指导
4. 修改 ICN/LSFB 阈值设置寄存器: 建议将所有设置改为默认的-80db,该值可根据后续实际调音需求再在默认值上调整
5. 添加关闭 ICN channel mute 功能寄存器设置
6. 添加提高抑制noise的运放的带宽的寄存器设置
对应Driver code的修改地方 (如下是基于QCOM 平台的例子):
A. code.c和regmap.c文件 (如下左边是修改前的,右边是修改后的)
B. code.c:
C. regmap.c: (如果regmap里的static pICN 会重写第一个寄存器设置,需要同步在这里再进行修改)