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.

[参考译文] TLV320ADC3120:如果输入为悬空、则获取 ADC 数据和输入的直流失调电压。

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1407248/tlv320adc3120-getting-wierd-adc-data-and-dc-offset-of-the-input-if-it-is-floating

器件型号:TLV320ADC3120

工具与软件:

我使用 TLV320ADC3120创建了一个小型 PCB。  
输入设置为单端输入、INx-M 连接到 GND。

信号:

VREF:2.50V

AREF:1.80V

AVDD:3.37V

VDD:3.41V

所有看起来都很稳定、因此我没有附上示波器的屏幕截图。

我要测量什么:

目前为18.9kHz 信号、90mV PP (0V 至90mV)、无直流失调电压。

该信号通过1k Ω 电阻直接耦合到 IN2。

此时 IN1悬空。

配置:

我使用 STM32L533与 ADC 通信。 它使用 I2C 进行配置、数据使用 SAI 进行传输。

data[0]=(SW_RESET_RESET);
HAL_I2C_Mem_Write(&hi2c1,0x9c,SW_RESET_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(SLEEP_CFG_AREG_SELECT_INTERNAL | SLEEP_CFG_SLEEP_ENZ_ACTIVE|SLEEP_CFG_VREF_QCHG_100_MS);
HAL_I2C_Mem_Write(&hi2c1,0x9c,0x02,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(ASI_CFG0_WLEN_32_BITS);
HAL_I2C_Mem_Write(&hi2c1,0x9c,ASI_CFG0_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(BIAS_CFG_MBIAS_VAL_VREF);
HAL_I2C_Mem_Write(&hi2c1,0x9c,   BIAS_CFG_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(IN_CH_EN_CH1_ENABLED | IN_CH_EN_CH2_ENABLED);
HAL_I2C_Mem_Write(&hi2c1,0x9c,IN_CH_EN_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(ASI_OUT_CH_EN_CH1_ENABLED | ASI_OUT_CH_EN_CH2_ENABLED);
HAL_I2C_Mem_Write(&hi2c1,0x9c,ASI_OUT_CH_EN_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(CH1_CFG0_INTYP_LINE | CH1_CFG0_INSRC_SINGLE |CH1_CFG0_DC_DC  );
HAL_I2C_Mem_Write(&hi2c1,0x9c,CH1_CFG0_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(CM_TOL_CFG_CH2_INP_FULL |CM_TOL_CFG_CH1_INP_FULL);
HAL_I2C_Mem_Write(&hi2c1,0x9c,CM_TOL_CFG_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(CH1_CFG2_DVOL_MUTE);
HAL_I2C_Mem_Write(&hi2c1,0x9c, CH1_CFG2_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(CH2_CFG2_DVOL_0dB);
HAL_I2C_Mem_Write(&hi2c1,0x9c, CH2_CFG2_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(CH2_CFG0_INTYP_LINE | CH2_CFG0_INSRC_SINGLE |CH2_CFG0_DC_DC );
HAL_I2C_Mem_Write(&hi2c1,0x9c,CH2_CFG0_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);
data[0]=(PWR_CFG_ADC_PDZ_ON |  PWR_CFG_PLL_PDZ_ON | PWR_CFG_MICBIAS_PDZ_OFF );
HAL_I2C_Mem_Write(&hi2c1,0x9c,PWR_CFG_ADDRESS,I2C_MEMADD_SIZE_8BIT,data,1,100);


通道1将静音、因为我要验证我的 SAIconfiguration 是否正常工作。
SAI 配置为在 STM32端进行96kHz 主接收。
我接收的数据如下:
由于通道1被静音、因此0正确。 但在通道2上、我没有测量我的信号。 您可以看到、雪崩会在正值和负值之间跳跃。
在您看到的数据中、我将 IN2_P 直接连接到 GND、因此我应测量一个稳定的值。 如果我连接信号、值看起来非常相似。



如果我测量开路 IN1-P、则会读取到该引脚上的直流失调电压为1.47V。 连接信号时、引脚2的电压为0.45V (如果 IN2接地、则为0V)。
我确信配置有误。 有人给我提示吗?

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

    你(们)好

    今天是美国的假日、因此我们驻美国的工程师最迟会在明天与您联系。

    感谢您的耐心等待、

    Jeff McPherson

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

    您好!

    我建议将 Vref 电容更改为1uf。

    假设原理图的其余部分具有建议的元件、我建议确认 CHx_CFG 寄存器对直流耦合和单端配置进行写入(例如:CH1_CFG = 0X58)。

    为了进行故障排除、我建议验证48kHz 或96k 处的运行、确保 I2S 时钟匹配数据表中表8-6所示的支持频率。 我还建议在该测试期间使用更大的输入信号、至少为100mVRMS。

    我们还建议不要将模拟输入悬空并在未使用时配置交流耦合至 GND。