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.

[参考译文] TLV320AIC3204:差分MICPGA操作不正确

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/638884/tlv320aic3204-incorrect-differential-micpga-operation

部件号:TLV320AIC3204

大家好。

TLV320AIC3204存在一个问题,我确信这是由于寄存器值不正确所致。 我们使用它的差分麦克风输入(引脚in2_L和in2_R,前者驱动到左MICPGA正输入,后者驱动到左MICPGA负输入)。 此差分输入由浮动(变压器耦合)麦克风(600欧姆)驱动。 问题是每个引脚都有不同的共模增益(相对于模拟接地)。 也就是说,来自左MICPGA正极引脚(in2_L)的增益3.2 比左MICPGA负极输入(in2_R)的增益高一倍,因此CMRR性能非常糟糕。

这些引脚上的外部电路绝对对称且简单:每个引脚仅一个1uF陶瓷电容器串联,并在麦克风侧向模拟接地端接300欧姆(即 编解码器输入偏差不受影响)。 MICBIAS已关机。 每个未使用的输入对(引脚IN1_L和IN1_R,in3_L和in3_R)都通过陶瓷电容器端接至地电位。

测得的输入阻抗符合预期设计值:每个引脚的300欧姆共模阻抗,差分阻抗为600欧姆。 不会发生输入或输出裁剪。 这就是为什么我认为,由于外部电路不会产生错误,所以在MICPGA路由寄存器中肯定会出现错误。 下面是我们正在使用的相关寄存器值的列表:

寄存器P1_R52:0x20 = 10万

寄存器P1_R54: 0x20 = 10万

寄存器P1_R58:0xCC = 1100.11万

这些值是否有问题? 产品已准备就绪,可供生产,但我无法在100 % 确定硬件是否正常之前进行验证。

提前感谢您的参与

[UNLOCK 1/25/18]>LE

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

    你好,Dimitrios,

    您为这些寄存器提供的设置是正确的,但是我想检查您的完整寄存器映射。 您能否共享应用程序的注册设置?

    将这些输入路由到MICPGA后,IN2L和IN2R的共模应为0.9V (如果默认为第1页的寄存器10)。 您是否在未连接麦克风输入电路的情况下测量了这些针脚中的共模电压?

    此致,

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

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

    您好Diego,感谢您的及时回复。

    明天,我将能够测量CM电压。 同时,下面是我们的应用程序中的寄存器设置顺序(在伪代码中):

    CodecWrite(Page_select               , 0x00);//          选择第0页
    CodecWrite(AIC3X_REG_RESET           , 0x01);          //软复位
    延迟(10ms)                                       //重置后的小延迟
    CodecWrite(Page_select               , 0x00);//          选择第0页
    CodecWrite(AIC3X_REG_CLKSET_MUX1     ,0x00 );          //(reg P0_R4)将时钟源设置为MCLK
    CodecWrite( AIC3X_REG_CLKSET_NDAC     ,0x82 );          //(reg P0_R11) NDAC
    CodecWrite( AIC3X_REG_CLKSET_MDAC     ,0x81 );          //(reg P0_R12) MDAC
    CodecWrite( AIC3X_REG_DOSR_MSB        , 0x02);          //(reg P0_R13) DOSR高位
    CodecWrite(AIC3X_REG_DOSR_LSB        ,0x00 );          //(reg P0_R14) DOSR低位
    CodecWrite(AIC3X_REG_CLKSET_NADC     ,0x84);          //(reg P0_R18) NADC
    CodecWrite(AIC3X_REG_CLKSET_mAdc     , 0x82);          //(reg P0_R19) mAdc.
    CodecWrite(AIC3X_REG_ADC_AOSR        ,0x80 );          //(reg P0_R20) AOSR
    CodecWrite (AIC3X_REG_AUDIO_SET_1     ,0x00);          //(reg P0_R27) I2S模式,MCLK,BCLK,WCLK是输入
    CodecWrite(AIC3X_REG_DAC_PROC_CTRL   , 0x02);//          (reg P0_R60) DAC处理块
    CodecWrite(AIC3X_REG_ADC_PROC_CTRL   , 0x01);          //(reg P0_R61) ADC处理块
    CodecWrite(Page_select               , 0x01);          //选择第1页
    CodecWrite (AIC3X_REG_PWR_CONF        ,0x08);          //(reg P1_R1)禁用到DVDD的AVDD弱连接
    CodecWrite(AIC3X_REG_LDO_CTRL        ,0xA1 );          //(reg P1_R2)启用AVDD LDO,设置LDO电压
    CodecWrite (AIC3X_REG_MODE_CTRL       ,0x00);          //(reg P1_R10)芯片共模电压
    CodecWrite(AIC3X_REG_QUICK_Charge Conf, 0x32);          //(reg P1_R71)模拟输入通电时间
    CodecWrite(AIC3X_REG_REF_POWERUP_CONF,0x05);          //(reg P1_R123)参考启动控制
    CodecWrite(AIC3X_REG_PLAYBACK1       ,0x00 );          //(reg P1_R3) LDAC PTM
    CodecWrite (AIC3X_REG_PLAYBACK2       ,0x00);          //(REG P1_R4) RDAC PTM
    CodecWrite(AIC3X_REG_ADC_PWR_CONFIG  ,0x00 );          //(reg P1_R61) ADC PTM
    CodecWrite(Page_select               , 0x00);//          选择第0页
    CodecWrite(AIC3X_REG_ADC_L_VOL       ,0x14);          //(reg P0_R83)左侧ADC数字音量
    CodecWrite(AIC3X_REG_ADC_R_VOL       ,0x14);          //(reg P0_R84)右侧ADC数字音量
    CodecWrite(Page_select               , 0x01);          //选择第1页
    CodecWrite(AIC3X_REG_MICPGA_L_Positive,0x20);          //(reg P1_R52) LMICPGA+路由选择
    CodecWrite(AIC3X_REG_MICPGA_L_NOL, 0x20);          //(reg P1_R54) LMICPGA-路由
    CodecWrite(AIC3X_REG_Float_config , 0xCC );          //(reg P1_R58)未使用的输入端接至芯片CM电压
    CodecWrite (AIC3X_REG_MICPGA_L_VOL    ,0x28);          //(reg P1_R59)左MICPGA音量
    CodecWrite(AIC3X_REG_MICPGA_R_VOL    ,0x46);//          (reg P1_R60)右MICPGA音量
    CodecWrite(Page_select               , 0x00);//          选择第0页
    CodecWrite(AIC3X_REG_ADC_SET         ,0x82);          //(reg P0_R81)打开LADC,RADC,设置软ADC音量
    CodecWrite(AIC3X_REG_ADC_F罚 金增益   , 0x08);          //(reg P0_R82)取消静音LADC和RADC
    CodecWrite(Page_select               , 0x01);          //选择第1页
    CodecWrite(AIC3X_REG_LOL_ROUTE_SEL   ,0x08);          //(reg P1_R14) LOL路由选择
    CodecWrite(AIC3X_REG_Lor_route_SEL   , 0x08);          //(reg P1_R15) Lor路由选择
    CodecWrite(AIC3X_REG_LOL_GAIN        ,0x00 );          //(reg P1_R18) LOL取消静音和增益
    CodecWrite(AIC3X_REG_Lor_Gain        , 0x00 );          //(reg P1_R19) Lor取消静音和增益
    CodecWrite(AIC3X_REG_OUT_DRV_PWR     ,0x0C );          //(reg P1_R9)打开LOL/Lor
    CodecWrite(Page_select               , 0x00);//          选择第0页
    CodecWrite(AIC3X_REG_DAC_L_VOL       ,0xF1 );          //(reg P0_R65) LDAC数字音量
    CodecWrite(AIC3X_REG_DAC_R_VOL       ,0xF1 );          //(reg P0_R66) RDAC数字音量
    CodecWrite(AIC3X_REG_DAC_CTRL1       ,0xD6 );          //(reg P0_R63)打开LDAC,RDAC。 设置LDAC和RDAC源。 设置DAC软音量
    CodecWrite(AIC3X_REG_DAC_CTRL2       ,0x00 );          //(reg P0_R64)将DAC取消静音
    CodecWrite(AIC3X_REG_GPIO,       0x0C );          //(reg P0_R52)禁用MIC偏置

    以及示意图:


    此致,

    迪米特里奥斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    刚刚测量了in2_L和in_2R针脚上的CM电压。 电压为0.895V。 内部生成的AVDD为1.75V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Dimitrios,

    感谢您的反馈。  共模电压似乎正确,输入配置也正常,但时钟配置似乎未正确完成。 您的系统所需的采样率是多少?

    此外,您能否提供有关您遇到的问题以及用于检测问题的测量步骤的更多详细信息?

    此致,

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

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

    您好,Diego,

    应用程序使用8 kSPS采样速率。 主时钟为32.768MHz (编辑:它是8.192 MHz),BCLK是256 KHz,WCLK是8kHz。

    随附的图表显示了测量设置。 对于每个输入开关(SW1)状态,CM交流增益的测量方式是示波器读数Vo与发电机输出Vmic +或Vmic -的比值(后者在变压器输出处测量)。 未使用的输入接地。 数字回送由CPU本身执行。 测量结果:VO/Vmix+= 3.2 x Vo/Vmix-(它们应该相等)。

    今天,我将在类似的配置下测试EVM板。 更新:我无法使用EVM,可能是由于与64位Windows不兼容。 没有EVM,那么:)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    解锁1/26/18[LE]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们最后明确指出了这一问题。 由于应用程序中SPI通信中的错误,寄存器P1_R52 (LMICPGA+路由)的编程与P1_R54 (LMICPGA-路由)的编程不同。 这导致输入级的操作不对称。 现在它按预期工作。 谢谢!!