TI论坛
直播中

张红

7年用户 1264经验值
私信 关注
[问答]

TLV320AIC3104输出数据不为0,示波器底噪峰峰值超过400mv,为什么?


  • 我们现在使用的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);

    原理图:

回帖(2)

李为敏

2024-10-22 13:59:14
 示波器应该很难显示出那么弱信号的底噪吧
上来一大堆的代码, 我觉得是不是先检查检测硬件和电路上造成的噪声, 包括电源
举报

乐骞添

2024-10-22 18:20:03
根据您提供的信息,TLV320AIC3104输出数据不为0时,示波器底噪峰峰值超过400mV。这可能是由多种原因导致的,以下是一些建议和可能的解决方案:

1. 电源问题:确保电源稳定且无噪声。电源不稳定或有噪声可能会影响音频输出质量。您可以尝试使用低噪声电源或在电源线上添加滤波器。

2. 接地问题:确保所有接地连接良好。不良的接地可能导致噪声进入音频信号。检查所有接地点,确保它们连接良好且无松动。

3. 信号线问题:检查信号线是否有干扰或损坏。使用高质量的信号线,并确保它们远离可能产生干扰的设备,如电源线、电机等。

4. 布局问题:检查电路板布局,确保信号线和电源线之间的距离足够远,以减少串扰。同时,尽量缩短信号线的长度,以减少信号衰减和噪声。

5. 器件配置问题:检查TLV320AIC3104的配置设置,确保它们正确无误。您可以尝试使用不同的配置设置,看看是否能改善底噪问题。

6. 软件问题:检查发送I2S数据的软件代码,确保数据发送正确且无错误。您可以尝试使用不同的数据发送方法,看看是否能改善底噪问题。

7. 硬件问题:如果以上方法都无法解决问题,可能是TLV320AIC3104本身存在问题。您可以尝试更换一个新器件,看看是否能改善底噪问题。

总之,解决这个问题需要从多个方面进行排查和尝试。希望以上建议对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分