我们使用PCM3168,AD连接外部麦克风,当麦克风距离较近且声音非常大的时候,A/D采样后的数据会存在比较大的噪音。经过分析发现是因为输入超PCM3168的A/D满刻度值后,PCM3168会将OVF寄存器置位,同时从A/D输出的数字信号幅度减半。但过一小段时间后(毫秒级别),A/D输出的数字信号幅度恢复正常。由于反复重复上面的过程,所以会产生比较大的噪音。在器件手册上没有提到PCM3168会自动改变A/D的输入增益,但从现象上看确实是PCM3168自己在调节。
请问是否有人知道如何配置PCM3168使其在A/D发生over flow时,不要自动调节增益?
Derek Xie:
你好:
你是拿声音测试的还是正弦波测试的?
我建议拿正弦波测试下,让它溢出,然后看数字信号幅度是否会变化。是不是你测试的条件刚好是溢出和没有溢出的区间附近?所以感觉增益在变化?
xianfu meng:
回复 Derek Xie:
先前是拿声音测试的.今天拿正弦波测试了下,发现应该是A/D采样溢出后数字输出没有做限幅处理,直接输出了ad低端的数据。
正常时的波形如附件的上图,黄色为AD前端波形,蓝色为DA输出的波形(抓过数字信号,确认是A/D的问题)。
溢出时的波形如附件的下图,可以看出来信号的峰值发生了翻转。
请问是否有寄存器可以设置PCM3168的A/D使其在溢出时直接输出全1?
Derek Xie:
回复 xianfu meng:
你好:
PCM3168没有那个功能。一般来说ADC溢出是要避免的。建议在前级加个AGC的芯片来做吧。如果你的通道数不过,建议找个带有AGC功能的Codec。