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.

[参考译文] TLV320AIC3206:未正确驱动模拟输入共模

Guru**** 2382480 points
Other Parts Discussed in Thread: TLV320AIC3206
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/654974/tlv320aic3206-analog-input-common-mode-not-driven-correctly

部件号:TLV320AIC3206

我们拥有一个使用TLV320AIC3206的电路板,它具有交流耦合,差分,模拟输入信号。 --示意图如下。  但是,我们无法测量模拟输入引脚上预期的0.9V共模电压(而模拟输入在数字化或通过耳机输出时只是噪声)。  所有4个输入引脚上的电压测量值均为0V,即使所有保护二极管和交流耦合电容器已拆除 (因此完全断路)。  编解码器的参考引脚按预期为0.9V,1.8V和3.3V电源导轨存在,看上去很干净。  此设计是否存在任何硬件问题?  是否有我们应该检查的软件配置设置?  谢谢!    但是,  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Anthony,

    欢迎来到E2E,感谢您对我们的产品感兴趣!

    从原理图的角度来看,电路似乎正常。 一旦输入路由至内部PGA且ADC通电,输入引脚中的共模将出现。 您可以尝试一下吗?  

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Diego,

    感谢您的回复。 我们通过10k电阻将in2 L/R路由至左PGA,通过10k电阻将IN1 L/R路由至右PGA。 我们已确认我们的ADC已通电,但问题仍然存在。

    通过进一步的测试,我们将[47uF陶瓷]交流耦合盖替换为1uF陶瓷盖。 这似乎有所帮助-我们可以在这些电流盖的编解码器侧看到大约0.9V DC,但似乎仍需要一些时间(超过几毫秒)来为它们充电, 我们注意到,有时断开然后重新连接路由寄存器中PGA的输入会使事情充电得更好。

    您是否可以提供任何指导,说明哪些值和/或类型的电瓶盖最适合此应用,而不会导致音频频谱中的低频发生衰减? 此外,在软件初始化过程中,我们是否应按照特定顺序进行启动? 我附上了我们的init函数以供参考。 特别想知道是先路由后供电还是反之更好?

    /*输入时钟为24.576 MHz
    * P分禾器:2,R分禾器:1
    */
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLPR,0x21);
    /* PLL J=7 */
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLJ,0x07);
    /* PLL D MSB */
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLDMSB,0x00);
    /* PLL D LSB */
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLDLSB,0x00);
    /*加电PLL:P分配器:2,R分配器:1 */
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLPR,0xA1);
    
    /* NADC */
    Snd_SOC_WRITE (编解码器,0x12,0x87);
    /* mAdc */
    Snd_SOC_WRITE (编解码器,0x13,0x82);
    /*将ADC的OSR设置为128 */
    Snd_SOC_WRITE (编解码器,0x14,0x80);
    
    /* NDAC分配器至7 */
    Snd_SOC_WRITE (编解码器,0x0B,0x87);
    /* MDAC分隔器到2 */
    Snd_SOC_WRITE (编解码器,0x0C,0x82);
    /*将DAC的OSR设置为128 (MSB)*/
    Snd_SOC_WRITE (编解码器,0x0D,0x00);
    /*将DAC的OSR设置为128 (MSB)*/
    Snd_SOC_WRITE (CODEC,0x0E,0x80);/* 0x80 = D128 */
    
    /*选择ADC PRB_R1 PRB_R1 */
    Snd_SOC_WRITE (编解码器,0x3D,0x01);
    
    /*在存在外部AVdd供应时禁用内部原油AVdd:0x08
    *使用0x2启动充油泵
    */
    Snd_SOC_WRITE (CODEC,AIC32X4_PWRCFG,0x0A);
    
    /*启用主模拟电源控制*/
    Snd_SOC_WRITE (编解码器,AIC32X4_LDOCTL,0x00);
    
    /*将输入共模设置为0.9V */
    /*启用GND_SENSE */
    Snd_SOC_WRITE (编解码器,AIC32X4_CMMODE,0x00);
    
    /*选择ADC PTM_R4 */
    Snd_SOC_WRITE (编解码器,AIC32X4_ADCPOWERTUNEG,0x00);
    /*将MicPGA启动延迟设置为3.1毫秒*/
    Snd_SOC_WRITE (编解码器,AIC32X4_AIQCCONG,0x32);
    /*将参考充电时间设置为40ms */
    Snd_SOC_WRITE (编解码器,AIC32X4_REFPOWERUPCONF,0x01);
    
    /*使耳机处于地面中心位置(要求充电泵在上方)*/
    Snd_SOC_WRITE (编解码器,AIC32X4_HEADPHONECONF,0x10);
    /*启用混音器放大器和耳机放大器*/
    Snd_SOC_WRITE (编解码器,AIC32X4_OUTPWRCTL,0x33);
    
    /*编解码器clk是PLL时钟输出;PLL时钟输入是MCLK引脚。 */
    Snd_SOC_WRITE (编解码器,0x04,0x03);
    /* I2S配置为24位字,主模式*/
    snd_so_write (codec,0x1b,0x2C);
    /* I2S音频接口设置:将BCLK_DIV SRC设置为ADC_MOD_CLK */
    Snd_SOC_WRITE (编解码器,0x1d,0x03);
    /* I2S:BCLK_DIV通电后除以2 */
    Snd_SOC_WRITE (CODEC,0x1E,0x82);
    /* I2S:生成的WCLK输出*/
    Snd_SOC_WRITE (编解码器,0x21,0x10);
    /* I2S:DOUT/MFP2上的DOUT为Prinary DOUT */
    Snd_SOC_WRITE (编解码器,0x35,0x12);
    
    /*左MICPGA音量;MSB=1 (启用),MSB=0 (0dB);最低7位线性范围,从000_0000=0dB到101_1111=47.5dB */
    Snd_SOC_WRITE (编解码器,AIC32X4_LMICPGAVOL,AIC32X4_Gain);
    /*右MICPGA音量;MSB=1 (启用),MSB=0 (0dB);最低7位线性范围,从000_0000=0dB到101_1111=47.5dB */
    Snd_SOC_WRITE (编解码器,AIC32X4_RMICPGAVOL,AIC32X4_Gain);
    
    /*第1页/寄存器52:左MICPGA正极端子输入路由配置*/
    /* IN2L通过10K电阻连接至左MICPGA */
    Snd_SOC_WRITE (编解码器,AIC32X4_LMICPGAPIN,0x10);
    /*第1页/寄存器54:左MICPGA负极端子输入路由配置*/
    /* IN2R路由至左MICPGA,具有10K电阻*/
    Snd_SOC_WRITE (编解码器,AIC32X4_LMICPGANIN,0x10);
    
    /*第1页/注册55:右MICPGA正极端子输入路由配置*/
    /* IN1R连接至右侧MICPGA,具有10K电阻*/
    Snd_SOC_WRITE (编解码器,AIC32X4_RMICPGAPIN,0x40);
    /*第1页/注册57:右MICPGA负极端子输入路由配置*/
    /* IN1L被路由至右MICPGA,具有10K电阻*/
    Snd_SOC_WRITE (编解码器,AIC32X4_RMICPGANIN,0x10);
    
    /*第1页/寄存器58:浮动输入配置寄存器- 0x01 / 0x3A */
    Snd_SOC_WRITE (编解码器,AIC32X4_FLOATINGINPUT,0x00);
    
    /* MAL至HPL */
    Snd_SOC_WRITE (编解码器,AIC32X4_HPROUTE,0x02);
    /* MAR至HPR */
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRROUTE,0x02);
    
    /* HPL驱动程序增益设置寄存器*/
    Snd_SOC_WRITE (编解码器,AIC32X4_HPLGAIN,AIC32X4_HP_DRIVER_Gain);
    /* HPR驱动程序增益设置寄存器*/
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRGAIN,AIC32X4_HP_DRIVER_Gain);
    
    /*加电,断电和加电左右ADC信道*/
    snd_so_write (codec,0x51,0xc0);
    
    /*通电,断电和通电左右DAC通道*/
    Snd_SOC_WRITE (编解码器,0x3F,0xc5);
    
    /*取消使左右ADC数字音量控制和精细增益静音*/
    Snd_SOC_WRITE (编解码器,0x52,0x00);
    
    reg = snd_so_read (编解码器,AIC32X4_ADCFLAG);
    PR_INFO ("ADC标志寄存器0x%X\n",reg); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Anthony,

    感谢您的反馈。

    实际上,47µF是一个相当大的值,在原理图上不清楚该值是如此之高。 我们 通常建议的上限介于0.1µF到1µF之间。 我们使用的EVM使用了0.47µF,X5R陶瓷罩,可提供非常好的整体性能。

    我想知道编解码器初始化命令的编程方式是否实际运行良好,因为开机时间可能设置为最短时间。 是否在发送这些命令之前选择了第1页? 我还建议尝试编写应用参考指南中的一个可用基本记录脚本,以查看 参考电压的加电速度是否有任何变化。  

    一般来说,您的顺序很好,我们通常建议遵循以下顺序:

    • 软件重置
    • 设置时钟[PLL,时钟路由,数字接口]
    • 选择所用的加工块
    • 初始化编解码器[启用模拟电源,设置参考,开机时间等]
    • 传输音频信号
    • 打开 ADC/DAC电源并取消静音

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师