工程师们,你们好,现在我这边想通过AIC3254的静默检测的中断功能实现这样一个应用:
当MIC的signal大于噪声门限(Noise Threshold)时,我将采集音频数据,发送给终端用户,当MIC的signal小于噪声门限(Noise Threshold)时,我不再发送数据
我的具体实现方式是:
1:配置INT1中断为:INT1 Interrupt for AGC Noise Interrupt(Page 0 / Register 48);
2:将AIC3254的GPIO设置为: GPIO output is INT1(Page 0 / Register 52);
3:将此GPIO连接到MCU的GPIO,MCU检测此IO的中断,若发生中断,读取相应状态寄存器(Page 0 / Register 45:D5、D6)根据响应状态决定是否是有效音频数据并决定是否发送数据。
请问此方案是否可行?若可行,我上边配置是否正确,还需要配置其他寄存器吗?我现在这样配置中断上不来(我测了AIC3254的GPIO,无论静默还是大声说话时,都没有电平变化)。
mortimersong:
另外,我还想问个问题:输入信号从高于噪声门限变化到低于噪声门限 和 输入信号从低于噪声门限变化到高于噪声门限两种情况都会触发中断的吧?文档上没有详细说明
Jason Shen:
回复 mortimersong:
TLV320AIC3254 Application Reference Guide 这篇文档里面有比较详细的描述,首先确定一点的是,高于一定的门限是可以触发中断的,低于一定的门限需要在看一下。 这个功能是通过AGC来实现的。 首先保证芯片是正常工作的,然后对应的中断打开,最后读取一下AGC当前的增益值,声音很大和很小的时候,AGC的增益值变化是否会穿越你设定的噪声门限。如果不会,请重新设置噪声门限。