我们现在使用的TLV320AIC3104,客户反映音频输出有底噪,我们进行了复测,确认存在类似的问题,请帮忙一起解决一下该问题。
具体问题描述:配置完成器件后,由CPU发送I2S数据,如果为0,示波器显示无明显底噪;如果数据不为0,例如输出1,示波器底噪峰峰值超过400mv,输出其它值时,底噪仍然超过400mv
目前该器件的配置为
tlv320aic31_write(IIC_device_addr[chip_num],0x1,0x80);
msleep(10);
/*CLKDIV_IN uses MCLK*/
tlv320aic31_write(IIC_device_addr[chip_num], 102, 0x32);
/*PLL disable and select Q value*/
tlv320aic31_write(IIC_device_addr[chip_num], 3, 0x10);
/*left and right DAC open*/
tlv320aic31_write(IIC_device_addr[chip_num], 7, 0xa);/* FSref = 48 kHz */
/*sample*/
tlv320aic31_write(IIC_device_addr[chip_num], 2, 0x44);/* FS = FSref/3 */
/*ctrl mode*/
tlv320aic31_write(IIC_device_addr[chip_num], 8, 0xf0);/* master mode */
/*Audio Serial Data Interface Control*/ tlv320aic31_write(IIC_device_addr[chip_num], 9, 0x7);/* I2S mode,16bit */
/*Audio Codec Digital Filter Control Register*/
tlv320aic31_write(IIC_device_addr[chip_num], 12, 0x50);
//tlv320aic31_write(IIC_device_addr[chip_num], 25, 0x0);
tlv320aic31_write(IIC_device_addr[chip_num], 25, 0x40);
tlv320aic31_write(IIC_device_addr[chip_num], 17, 0xf);
tlv320aic31_write(IIC_device_addr[chip_num], 18, 0xf0);
tlv320aic31_write(IIC_device_addr[chip_num], 15, 0x0);
tlv320aic31_write(IIC_device_addr[chip_num], 16, 0x0);
tlv320aic31_write(IIC_device_addr[chip_num], 19, 0x04);
tlv320aic31_write(IIC_device_addr[chip_num], 22, 0x04);
tlv320aic31_write(IIC_device_addr[chip_num], 28, 0x0);
tlv320aic31_write(IIC_device_addr[chip_num], 31, 0x0);
/*out ac-coupled*/ tlv320aic31_write(IIC_device_addr[chip_num], 14, 0x80);
/*left and right DAC power on*/ tlv320aic31_write(IIC_device_addr[chip_num], 37, 0xc0);
/*out common-mode voltage*/ tlv320aic31_write(IIC_device_addr[chip_num], 40, 0x80);
/*out path select*/ tlv320aic31_write(IIC_device_addr[chip_num], 41, 0x1);
/*out path select*/ tlv320aic31_write(IIC_device_addr[chip_num], 42, 0xa8);
/*left DAC not muted*/ tlv320aic31_write(IIC_device_addr[chip_num], 43, 0x0);
/*right DAC not muted*/ tlv320aic31_write(IIC_device_addr[chip_num], 44, 0x0);
tlv320aic31_write(IIC_device_addr[chip_num], 47, 0x80);
/*HPLOUT is not muted*/ //tlv320aic31_write(IIC_device_addr[chip_num], 51, 0x9f);
tlv320aic31_write(IIC_device_addr[chip_num], 64, 0x80);
/*HPROUT is not muted*/ //tlv320aic31_write(IIC_device_addr[chip_num], 65, 0x9f);
/*out short circuit protection*/ tlv320aic31_write(IIC_device_addr[chip_num], 38, 0x3e);
原理图:
user151383853:
示波器应该很难显示出那么弱信号的底噪吧
上来一大堆的代码, 我觉得是不是先检查检测硬件和电路上造成的噪声, 包括电源