Other Parts Discussed in Thread: TLV320AIC3104,
你好:
如题,我们想开启高通滤波器,需要在register 65和register 72分别写入相应的值,但是读出来的值是错误的,具体如下图所示。
看SPEC65和72的值应该是没超出范围的,所以不太明白是什么原因。期望回复,谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好:
如题,我们想开启高通滤波器,需要在register 65和register 72分别写入相应的值,但是读出来的值是错误的,具体如下图所示。
看SPEC65和72的值应该是没超出范围的,所以不太明白是什么原因。期望回复,谢谢
你好,
是的,我是完全按照下面顺序操作的。目前的情况是,值可以写进去了,但是有些值必须写两遍(比如register65,第一次写0x7e读成ox7f,第二次可以正确读出来)。但是,我发现按这个操作开启高通滤波器,噪声反而明显变大了(在我另外提的一个问题,在EVM上也有类似情况:download完N0\N1\D1系数,点击开启ADC的时候,噪声反而变大了)。
因此,我的疑问是:1)要如何才能知道高通滤波器是否正确开启,我检查了好几遍寄存器,确认值是改好了的;2)能否提供个默认的N0\N1\D1的值给我们试一下,因为我不确定我算出来的对不对,如下图所示请帮忙看下;3)如果是我们设置的不对,导致无法开启高通滤波器,有没有可以排查的方向。
期望回复,谢谢
1、
2)能否提供个默认的N0\N1\D1的值给我们试一下,因为我不确定我算出来的对不对,
使用默认系数的话,是将寄存器 page 0 register 107, bit D7-D6设置为00
2、关于page 0, register 12, bits D7-D4,请忽略此寄存器中的-3dB频率选择,因为在可编程情况下,实际-3dB频率由系数决定。
3、
但是开启高通滤波器的指令只到第二步(就是配置107)就生效了
就生效了,是什么意思?有什么现象?
使用默认系数的话,是将寄存器 page 0 register 107, bit D7-D6设置为00
不想使用默认系数,所以我在TIBQ上勾选了200Hz的High pass Filter,计算出来的系数是N0=7E32,N1=81CE,D1=7C66;
就生效了,是什么意思?有什么现象?
我们目的是想降风噪。我在机器上先录一段声音,然后通过指令将N0,N1,D1写进去,然后再page 0 register 107, bit D7-D6设置为11,到这一步,录出来的声音就被过滤掉一些了,所以我认为是生效了。然后按照指引再去配置page 0, register 12, bits D7-D4时,录出来的声音反而更大了,甚至比一开始还打。
可以的,请帮忙看下。
目的:开启高通滤波器,降低风噪
1,使用TIBQ计算出200Hz高通滤波器对应的系数:N0=0x7E32、N1=0x81CE、N0=0x7C66
2,通过串口连接方式,使用secureCRT发送指令开启高通滤波器
1)写page1
skl_device -P "0x00,0x01;"
2)加载系数 register left65-70 L channel 200Hz
skl_device -P "0x41,0x32;0x42,0x7e;" N0
skl_device -P "0x43,0xce;0x44,0x81;" N1
skl_device -P "0x45,0x66;0x46,0x7c;" D1
3)写page0
skl_device -R "0x00,0x00;"
4)选择使用可编程系数 register 107
skl_device -R "0x6b,0x80;" L channel
5)启动滤波器 register 12
skl_device -R "0x0c,0xc0;" L channel
ps:我现在想实现L、R ADC分别对应两个不同位置的mic,做到一个mic开启HPF,另外一个可以不开HPF,
所以这个指令我是把L channel的系数配置了上去,R channel的没有。但目前没有实现。
3,将录的声音放到goldwave查看
你好,这句话可以理解为page 0, register 12, bits D7-D6,D5-D4不管是设置成01、10、11都没影响吗?都是由系数决定。
关于您的这个问题,我是看了下面链接FAQ才回复您的,这个FAQ是关于产品TLV320AIC3104的,但是我认为TLV320AIC3101的滤波器是基于同样的原理的,因此其中的最后一句话“lease ignore the -3dB frequency selection in this register, because in the programmable case, the real -3dB frequency is determined by the coefficients.”也适用于TLV320AIC3101。
我想请问下有没有关于TIBQ的使用指南,我算出来的系数感觉逻辑是不对的。
比如我在同个环境下测试,分别开启100Hz、200Hz、400Hz、600Hz、1000Hz的高通滤波器,
但结果是混乱的,开启600Hz HPF的时候,噪声甚至更大了。
对于您的这个问题,我想确认下,您在以上几个截止频率操作时,您是否忽略了最后一步?因为根据美国工程师的反馈,滤波器很可能它会自动启用它。
我都试过了,一开始就是按7E写到65,32写到66这个顺序的,但发现实际录出来的声音反而被放大了。
然后我才试的把7E32分开反过来写入,这时候就是有滤波的效果的。我不太明白是怎么回事。实际效果如下图1所示,声音变小了一些。
我现在的问题就是,按照TIBQ计算出来的N0、N1、D1系数,开启的滤波效果是很不一样的。实际效果如下图2所示.
另外我注意到一个现象,配置register 107以后,录的风声会变小,但好像是整体变小的(信号的毛刺还在)。
然后配置register12以后,录得风声变得更大了,但是信号的毛刺没了。具体请参考图1。谢谢
图1
图2
hello,我再补充一下,因为我们设备上一开始已经有了一套系数N0\N1\D1,然后register 107没配置(显示0x00),register 12配置了(显示0xf0)。
然后我发现现在的情况是,不管系数是什么(是我输入的也好,原本的系数也好),只要将register 107配置成0xc8(使系数生效),或者,将register 12先配置成0x00再配置成0xf0。他的结果都是实时录出的声音会变大。
这让我怀疑这个开启高通滤波器的方法,还是说我们通过串口这种方式去实现比较难?要写成代码去实现嘛
还是说我们通过串口这种方式去实现比较难?要写成代码去实现嘛
您这里说的串口具体是什么串口呢?TLV320AIC3101 控制接口是I2C,我不知道您是怎样通过串口配置寄存器的,不确定是不是这里的问题?
我收到的回复如下:
Attached is an apps. note that has more detail on configuring the coefficients.
Section 7 talks about configuring the codec.
https://www.ti.com/lit/an/slaa447/slaa447.pdf
关于这个高通滤波器的配置,如果您存在疑问,我建议您自己将问题发布在E2E英文技术论坛上,将由资深的英文论坛工程师为您提供帮助。
英文论坛对应子论坛链接:https://e2e.ti.com/support/audio-group/audio/f/audio-forum