https://me.csdn.net/zhanghuaishu0
一、前言
最近赶项目,一直是996的状态,感觉时间都不够用了,连偷懒的时间都没有~~1024还在加班,今天就把ANC安排上吧,这第三篇我们就来说说ANC调试的流程和相关文档。
二、调试笔记
1)根据硬件原理图,配置mic的通道和偏置电压VMIC(多个电压可以位或);
2)BES工程默认的spk采用L,改到R的方法是:
a. 保持通道配置为L不变;
b. 添加宏CODEC_OUTPUT_DEV,芯片最终会将信号推到spk右R,不加宏时信号推到spk左L。
通道:
tgt_hardware.h
#define ANC_FF_MIC_CH_L AUD_CHANNEL_MAP_CH4
#define ANC_FF_MIC_CH_R 0
#define ANC_FB_MIC_CH_L AUD_CHANNEL_MAP_CH1
#define ANC_FB_MIC_CH_R 0
偏置电压:
#define ANC_VMIC_CFG (AUD_VMIC_MAP_VMIC1 | AUD_VMIC_MAP_VMIC2)
SPK:
#define CFG_HW_AUD_OUTPUT_PATH_SPEAKER_DEV (AUD_CHANNEL_MAP_CH1)
#define CODEC_OUTPUT_DEV (AUD_CHANNEL_MAP_CH0)
通话MIC:
tgt_hardware.c
#define CFG_HW_AUD_INPUT_PATH_MAINMIC_DEV (AUD_CHANNEL_MAP_CH4 | AUD_VMIC_MAP_VMIC1)
JSON文件:
productline_cfg.json
"aud_channel_cfg": {
"anc_ff_mic_ch_l": "AUD_CHANNEL_MAP_CH4",
"anc_ff_mic_ch_r": "AUD_CHANNEL_MAP_CH2",
"anc_fb_mic_ch_l": "AUD_CHANNEL_MAP_CH1",
"anc_fb_mic_ch_r": "AUD_CHANNEL_MAP_CH3"
},
1)工具中的json文件要与软件一致,未使用的通道不变即可,改为空字符会导致工具打不开端口;
2)在线调试时,采用preview,点击“Anc switch off"会有降噪效果;
3)工具存在小bug,需要修改一下参数才会显示ANC降噪曲线;
使用工具在线调试,实际运行的是工具内部的bin文件,与程序的bin是完全独立的,搭配json文件,可以正常运行调试,这个过程只是为了得到一组滤波器参数,后期写入到芯片中,所以json文件要与软件配置的内容一致;
1)麦克风有三根线:信号,电源和地;
2)收音原理:里面是一个震膜,在接收到声波时会产生振动,导致电容发生变化,进而检测声音;
3)降噪原理:mic采集—>ANC芯片—>SPK输出反向波形,可以使用示波器测量mic和spk的信号脚,验证硬件通路;
1)ANC模式和通透模式(通透时对声音做了补偿,主要是补偿被动降噪PEQ)的参数可以合到一个cfg文件,使用工具一次进行load,分别load到mode1和mode2,修改ANC_COEF_NUM为2,然后软件可以循环切换。
2)ANC_COEF_NUM为1 表示mode1; 2 表示支持mode1和mode2双模式;调用的逻辑是:按一下降噪按键,循环调用,降噪—>通透—>关闭—>降噪。
三、ANC参数
声学同事会提供后缀为.cfgv2或.cfgv3的降噪参数文件,参数可以通过ANC Designer工具导入到芯片中,也可以直接合入到代码中,点击这里可以下载ANC参数合入的说明以及我自己编写的一个合入参数的小工具;
四、EQ调试
ANC降噪开启时,会对音乐的音质有所影响,需要通过添加EQ进行声音补偿,默认的代码中只有正常模式的EQ参数,而且增益全0,那如何添加ANC开启的EQ参数呢?
1)添加ANC模式的EQ数组:
2)EQ参数调用的地方:
五、相关接口
app_anc_get_coef(); //(0:close, 1:open)
- 1
app_anc_work_status(); //(0:close, 1:open)
- 1
六、补充
最大音量时音乐外放声音大,可调整dB值: