杰理(Actions)作为国内领先的蓝牙音频芯片供应商,其产品在TWS耳机、蓝牙音箱等领域广泛应用。本次讨论的"BT模式叠加linein"功能,是杰理芯片在复杂音频场景下的典型应用方案。简单来说,这个功能允许设备同时处理蓝牙音频和有线输入(line-in)信号,并实现声道独立控制。
在实际应用中,这种双模音频处理架构面临几个核心挑战:
提示:在双模音频系统中,建议将line-in信号的采样率设置为与蓝牙音频相同的48kHz,可有效避免采样率转换带来的音质损失。
杰理芯片的典型音频子系统包含以下关键模块:
当系统工作在BT+line-in混合模式时,信号处理流程如下:
code复制蓝牙音频流 → SBC解码 → 采样率转换 → 数字混音器
↓
line-in信号 → ADC采样 → 抗混叠滤波 → 数字混音器 → 动态范围控制 → 功率放大器
关键参数配置示例:
c复制// 杰理SDK中的混音器配置示例
audio_mixer_config_t config = {
.source_mode = AUDIO_SOURCE_BT|AUDIO_SOURCE_LINEIN,
.bt_gain = -3dB, // 蓝牙信号增益
.linein_gain_L = 0dB, // 左声道增益
.linein_gain_R = -6dB, // 右声道增益
.output_sample_rate = 48000
};
在杰理芯片中,左右声道独立控制通过以下寄存器实现:
| 寄存器地址 | 位域 | 功能描述 |
|---|---|---|
| 0x4003A120 | [15:8] | 左声道数字增益(0-255对应-96dB~+31.5dB) |
| 0x4003A120 | [7:0] | 右声道数字增益 |
| 0x4003A124 | [31] | 声道独立控制使能位 |
典型配置流程:
SET_BIT(0x4003A100, 5);REG_WRITE(0x4003A124, 0x80000000);REG_WRITE(0x4003A120, (L_gain<<8)|R_gain);杰理SDK通常提供高层API封装:
c复制void audio_set_linein_gain(uint8_t left_ch, uint8_t right_ch) {
if(left_ch != right_ch) {
audio_reg_modify(0x4003A124, 0x80000000, 0x80000000); // 使能独立控制
}
uint32_t reg_val = (left_ch << 8) | right_ch;
audio_reg_write(0x4003A120, reg_val);
}
当BT和line-in使用不同时钟源时,会产生可闻的周期性噪声。解决方案:
推荐配置参数:
混合模式下的典型电源噪声频谱:
PCB布局要点:
测试条件:
| 参数 | 左声道 | 右声道 |
|---|---|---|
| THD+N (@-3dBFS) | 0.03% | 0.05% |
| 声道隔离度 (1kHz) | 72dB | 70dB |
| 最大输出电平 | 2.1Vrms | 2.0Vrms |
问题现象:切换音源时有爆音
解决方案:
c复制void audio_source_switch(audio_source_t src) {
audio_pa_mute(1); // 先静音
delay_ms(10);
audio_set_source(src);
delay_ms(40);
audio_pa_mute(0); // 取消静音
}
问题现象:单独调节右声道时左声道也有轻微变化
排查步骤:
在量产测试中需要特别关注:
声道平衡测试:
串扰测试:
瞬态响应测试:
测试夹具推荐配置:
我在实际项目调试中发现,当line-in接口使用非屏蔽线时,2.4GHz射频干扰会显著增加底噪。解决方法是在ADC输入端增加π型滤波器(33Ω+100pF+33Ω),可将噪声降低约15dB。另一个容易忽视的问题是PCB接地,建议将数字地和模拟地在电源入口处单点连接,避免形成地环路。