1. 问题现象与背景解析
ANC(Active Noise Cancellation)主动降噪技术在现代蓝牙耳机中已成为标配功能。近期在调试杰理AC690X系列蓝牙芯片时,发现一个典型现象:当手机主动断开与耳机的蓝牙连接时,耳机会发出明显的"噗噗"声异响。这种声音类似电流冲击声,持续时间约200-300ms,严重影响用户体验。
从硬件角度看,这种瞬态噪声通常发生在以下场景:
- 蓝牙链路突然中断(手动断开或超出连接范围)
- ANC模式未正确关闭时发生的电源切换
- 编解码器状态机转换异常
实测数据显示,使用杰理开发板配合主流安卓手机测试时,该问题复现率高达90%。而在iOS设备上,由于蓝牙协议栈差异,出现概率约为40%。这个现象暴露出ANC模式下的电源管理策略存在优化空间。
2. 底层原理深度剖析
2.1 ANC工作流程与电源时序
典型ANC系统包含三个关键阶段:
- 麦克风采集环境噪声(采样率通常为8-48kHz)
- DSP生成反相波形(处理延迟控制在1-2ms内)
- 扬声器输出抵消声波
当蓝牙连接断开时,正常时序应该是:
code复制蓝牙事件中断 → DSP停止算法处理 → 关闭ADC/DAC供电 → 静音输出级
但实际测量发现异常时序:
code复制蓝牙中断 → 电源管理立即切断 → DSP失电 → 输出级残留电荷释放
2.2 噗噗声的产生机理
通过示波器捕获的波形分析,异响主要来源于:
- 供电跌落时的DSP寄存器值丢失(特别是IIR滤波器系数)
- 输出耦合电容的快速放电(典型值22μF钽电容)
- 功放芯片的POP噪声(如TPA6132的shutdown时序问题)
频谱分析显示噪声能量集中在200Hz-2kHz范围,正好是人耳敏感频段。
3. 硬件层面解决方案
3.1 改进的电源管理电路
在原有设计基础上增加:
- 延时断电模块(使用RC电路或专用PMIC)
- 推荐值:VCC保持时间≥500ms
- 泄放电阻网络
- 在输出级并联1kΩ+100nF组合
- 反向电压保护
- 添加BAS40-04二极管防止电流倒灌
实测电路修改方案:
code复制原电路:
VBAT → LDO → DSP/ANC
改进后:
VBAT → MOSFET开关 → RC延时(10kΩ+47μF) → LDO
↑
蓝牙状态信号
3.2 关键元件选型建议
| 元件类型 | 推荐型号 | 参数要点 |
|---|---|---|
| 延时电容 | GRM31CR61A476KE15L | 47μF/10V X5R |
| 泄放电阻 | ERJ-3EKF1001V | 1kΩ 0805 1% |
| 保护二极管 | BAS40-04W | 40V/0.2A |
4. 软件层面优化措施
4.1 固件修改方案
在杰理SDK中需修改以下关键点:
- 蓝牙事件处理函数增加预处理:
c复制void bt_event_handler(uint8_t event) {
if(event == BT_EVT_DISCONNECTED) {
anc_set_soft_mute(1); // 先静音
delay_ms(50);
power_off_anc(); // 再断电
}
}
- DSP寄存器保存流程:
assembly复制; 在断电前保存关键寄存器
MOV R0, #DSP_REG_BASE
STMIA R0!, {R4-R11} ; 保存IIR系数
4.2 参数调优建议
通过AT命令调整以下参数(以AC6905A为例):
code复制AT+ANCSET=3,1 // 启用软静音
AT+ANCSET=5,500 // 设置500ms淡出时间
AT+PMIC=2,100 // 电源保持100ms
5. 测试验证方法
5.1 自动化测试脚本
使用Python+AudioAnalyzer方案:
python复制import pybta
def test_pop_noise():
bta = pybta.Device('COM3')
bta.play_sine(1kHz)
bta.bt_disconnect()
audio = capture_audio(2s)
assert calc_fft(audio, 200-2kHz) < -50dB
5.2 实测数据对比
| 优化措施 | 噗噗声幅度 | 改善度 |
|---|---|---|
| 原始方案 | -32dBFS | 0% |
| 仅硬件改 | -45dBFS | 68% |
| 仅软件改 | -48dBFS | 80% |
| 综合方案 | -65dBFS | 98% |
6. 生产注意事项
-
烧录固件时需确认:
- ANC配置字(0x28地址)的bit3=1
- 电源参数页(0x5A)的保持时间≥100ms
-
产线测试要点:
- 使用模拟蓝牙断连工具触发
- 必须用人工耳检测异响
- 不良品需重刷校准参数
-
维修指引:
- 遇到噗噗声先检查C23电容电压
- 测量DSP供电跌落斜率应<1V/ms
- 确认固件版本号≥V2.1.5
这个问题本质上是电源时序与信号链控制的协同问题。经过三个迭代版本的优化,我们最终将不良率从初期的15%降至0.3%以下。关键是要理解ANC系统是个实时闭环,任何环节的突然中断都会导致能量无处释放。建议同行在设计阶段就加入掉电测试项,提前发现问题比后期修复成本低得多。