TI中文支持网
TI专业的中文技术问题搜集分享网站

AIC3254 静默检测

工程师们,你们好,现在我这边想通过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,无论静默还是大声说话时,都没有电平变化)。

还有,请帮忙确认:输入信号从高于噪声门限变化到低于噪声门限 和 输入信号从低于噪声门限变化到高于噪声门限两种情况都会触发中断的吧?文档上没有详细说明。

Jason Shen:

TLV320AIC3254 Application Reference Guide 这篇文档里面有比较详细的描述,首先确定一点的是,高于一定的门限是可以触发中断的,低于一定的门限需要在看一下。 这个功能是通过AGC来实现的。 首先保证芯片是正常工作的,然后对应的中断打开,最后读取一下AGC当前的增益值,声音很大和很小的时候,AGC的增益值变化是否会穿越你设定的噪声门限。如果不会,请重新设置噪声门限。

mortimersong:

回复 Jason Shen:

您好,首先感谢您的帮助

1:请帮忙确认低于一定的门限是否会触发中断,若是不能,就无法实现我们的功能;

2:我们芯片是正常工作的,录音、放音都可以;

3:对应的中断也已经打开(Page 0 / Register 48)w 30 30 10(1: Noise level detected by either off Left or Right Channel AGC will generate an INT1 interrupt.)、(Page 0 / Register 52) w 30 34 15(0101: GPIO output is INT1)

4:在声音很大或很小的时候我读取了AGC gain 都是一个值50dB,不会变化。

AGC setting 按照文档Using the AGC, DRC and Beep Generator Function in TLV320AIC3204/54/3100/10/11/20/36 Devices第六页

/* #AGC settingsw 30 00 00 #go to page 0w 30 56 A0 #Enable AGC, set Target gain= -10dBw 30 57 7E #set hysteresis=2dB, Noise threshold=-50dBw 30 58 50 #set Maximum gain=40dBw 30 59 08 #set attack time=20msw 30 5A 32 #Decay time=500msw 30 5B 00 #Noise debounce time=0msw 30 5C 06 #signal debounce time=2ms */

把Noise threshold改为了-50dB

请问导致我们现在这个问题的原因还有什么?

谢谢

blackfish:

回复 mortimersong:

mortimersong 您好,请问您用aic3254采集出来的声音,本身底噪幅值占采集出的声音复制大小是否很大(底噪很大)?

mortimersong:

回复 blackfish:

http://www.deyisupport.com/question_answer/analog/audio/f/42/t/108277.aspx

赞(0)
未经允许不得转载:TI中文支持网 » AIC3254 静默检测
分享到: 更多 (0)