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.

[参考译文] TLV320ADC3100:TLV320ADC3100

Guru**** 2482105 points
Other Parts Discussed in Thread: TLV320ADC3100

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/831521/tlv320adc3100-tlv320adc3100

器件型号:TLV320ADC3100

您好!

我正在处理一个音频项目、我将使用 TLV320adc3100对音频信号进行模数转换。

我将 ADC 与 Raspberry PI (主机设备)和 i2c 相连、并使用读取和写入命令根据我在 python 脚本中的要求配置寄存器。

我想使用 I2S 格式进行串行通信。

此外、我使用 BCLK (来自 I2S)作为 PLL 时钟输入、使用 PLL_clk 作为 CODEC CLKIN (通过寄存器4配置)。  

我无法获得任何输出。

问题:

1:无法写入寄存器1:(软件复位)、即使我将其写入为1、当我读取该值时、它也是0。

2.我上面提到的时钟配置是否正确? 或者我需要为 PLL 提供单独的时钟?

有人能帮忙吗????

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

    您好、Rutuja、

    请在下面查看我对您的问题的解答:

    1.将0x01写入寄存器1将通过软件复位器件。 当您在复位后读取寄存器时、它会将寄存器复位为其默认值、在本例中为0x00。 因此、如果您读取0x00、这意味着执行了软件复位。

    2.上述配置听起来正确。  

    您能否提供寄存器转储、以便我们了解您如何配置器件?

    此致、

    Aaron

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

    [引用用户="Aaron Estrada51"]

    您好、Rutuja、

    请在下面查看我对您的问题的解答:

    1.将0x01写入寄存器1将通过软件复位器件。 当您在复位后读取寄存器时、它会将寄存器复位为其默认值、在本例中为0x00。 因此、如果您读取0x00、这意味着执行了软件复位。

    2.上述配置听起来正确。  

    您能否提供寄存器转储、以便我们了解您如何配置器件?

    此致、

    Aaron

    [/报价]

    Aaron、您好!

    感谢您的回答。 我已按如下方式配置上述寄存器:

    寄存器       值

    0            0000 0000

    1            0000 0001

    4.            0000 0111

    5.            1001 0001.

    6.            0000 0100

    7.            0000 0000

    8.            0000 0000

    18           1000 0001

    19.           1000 0100

    20.            0100 0000

    21.            1011 1100

    27.             0010 0000

    33.             0001 0000

    36.             1100 0000

    38.             0000 0100

    53.             0001 0010

    57.             0000 0000

    61.             0000 0001

    0              0000 0001

    51.             0000 0000

    52.             1100 0011

    54             0011 1111

    59.             0000 0000

    60             0000 0000

    0               0000 0000

    81.              1000 0010

    82.              0000 1000

    83.               0100 0000

    86               1000 0000

    我希望采样频率为44100。

    因此、从 I2S 中、我提供 BCLK 作为2.8224Mhz 的 PLL_CLKIN、并使用分频器 P、R、J 和 D。我获得11.2859MHz 的 PLL_clk 频率、我选择该频率作为 CODEC 的输入。 然后进一步选择分频器 nadc 为1、mAdc 为4、aosr 为64。 我得到等于44100的 ADC_FS。

    在这里、我想对第1页的表1中的 J 值进行更正 22。J = 32的给定值、但是根据数据表第21页上的 FS =(PLLCLK_IN x K x R)/(NADC x mAdc x AOSR x P)公式、计算似乎不正确。 根据公式、J = 4的值。 (如果我错了、请更正我)

    我想将其用作单端。 我仅使左侧通道处于活动状态。 并且只希望将 IN2L (P)用作输入。

    请告诉我是否正确配置了器件。 我仍然没有从 ADC 获得任何输出。

    再次感谢!

    此致、

    Rutuja Salvi

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

    您好、Rutuja、

    乍一看、您的寄存器配置看起来是正确的。 您是否有可提供的输入、CLK 信号和 DOUT 示波器截图?

    至于可能的错误计算、NADC = 8、mAdc = 2、AOSR = 128。 当 J = 32、R、P = 1且 D = 0时、计算结果正确。  

    此致、

    Aaron

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

    尊敬的 Aaron:

    感谢您的快速响应。 我将分别附加 DOUT、BCLK 和 WCLK 的快照。

    1. DOUT

    2. BCLK

    WCLK

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

    Aaron、您好!

    我有几个问题要问、  

    配置寄存器一次后、它们是否应该保留配置的值? 因为当我写入寄存器并再次读取它们时,它们显示的是默认值,而不是配置的值。

    2.寄存器36和45是只读寄存器。 如果我读取它们、则分别得到值64 (十进制值)和0 。 我将增益设置为0dB、但它仍然显示应用的增益不等于编程的增益。 中断标志显示左通道信号值大于 AGC 噪声。 在我看来、这意味着采集的信号功率大于噪声、即它从输入端检测到信号。 (如果我错了、请更正我)。

    3.如果我在1kHz、1Vpp 的输入端提供正弦波、并尝试记录... 我在示波器上看到了类似的东西……为什么你会这样呢?

    此外、我要附加更好的 BCLK (绿色)和 DOUT (黄色)快照、

    谢谢、此致、

    Rutuja Salvi

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

    您好、Rutuja、

    对我的答复略有拖延表示歉意。 请查看我对您以下问题的回答:

    写入的值应该保持不变。 最好仔细检查 I2C 通信。 此外、在软件复位后、如果还没有一个延迟、您可能需要添加一个小延迟。  

    让我来看看这个、我会再回来的。  

    3.您在哪里测量该1kHz 信号? 它在 DAC 输出端吗? 如果是这样、则您看到的是正常现象、并且由于带外噪声。  

    您有一些问题:

    1.您使用的是 EVM 还是个人电路板?

    2.您的 BCLK 具有较大的过冲。您将使用什么来实现 IOVDD? 如果将 IOVDD 用作1.8V、则可能违反了 ABS。 器件的最大额定值。

    此致、

    Aaron  

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

    [引用用户="Aaron Estrada51"]

    您好、Rutuja、

    对我的答复略有拖延表示歉意。 请查看我对您以下问题的回答:

    写入的值应该保持不变。 最好仔细检查 I2C 通信。 此外、在软件复位后、如果还没有一个延迟、您可能需要添加一个小延迟。  

    让我来看看这个、我会再回来的。  

    3.您在哪里测量该1kHz 信号? 它在 DAC 输出端吗? 如果是这样、则您看到的是正常现象、并且由于带外噪声。  

    您有一些问题:

    1.您使用的是 EVM 还是个人电路板?

    2.您的 BCLK 具有较大的过冲。您将使用什么来实现 IOVDD? 如果将 IOVDD 用作1.8V、则可能违反了 ABS。 器件的最大额定值。

    此致、

    Aaron  

    [/报价]

    Aaron、您好!

    很抱歉耽误你的回答。 根据您在上一帖子中的答案:

    检测到的第一个问题是 I2C 通信。 再次读取时、寄存器不保存写入的值。

    2.我正在等待你对此发表意见

    3.我测量的是 ADC IN2L (P)引脚编号输入端的1kHz 信号 7.

    回答您的问题:  

    1.我没有使用 EVM、而是使用 Raspberry PI 来进行寄存器配置。

    2、我使用的是 IOVDD = 1.8V、因为在数据表中是 ABS。 最大值为1.8V (标称值)和3.9V (最大值)。 无论我哪里出错、请更正我的问题。  

    我们希望将该 ADC 用于医疗保健领域的音频项目开发器件。 第一个动机是使其发挥作用

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

    您好、Rutuja、

    由于它看起来像是 I2C 通信错误、因此您能否在发送写入/读取命令时发送 SCL 和 SDA 线路的一些示波器截图? 此外、请仔细检查 I2C 通信地址是否正确。

    为了回答您之前关于寄存器45的问题、当 AGC 算法检测到输入信号电平低于编程的噪声阈值设置时、该标志会变为高电平。 应根据记录环境中预期的环境噪声对该阈值进行编程。  

    此外、您在示波器上看到的1kHz 输入看起来没有被正确触发或一个差分信号。  

    此致、

    Aaron

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

    Aaron 和 Rutuja、您好!

    我正在使用 TLV320ADC3100。 和 Rutuja 一样、我也在努力使它能够正常运行、但没有成功。

    我想执行硬件复位。 我注意到 RESET、I2C_ADR0和 I2C_ADR1、当它们没有连接(无线)时、其电压为1.2伏。

    问题:在数据表中、没有提到这些引脚配置了内部上拉电阻器。

    对于 RESET 引脚、我尝试了一个实心开关、但没有成功。 、是否有正确的方法来控制复位?

    对于 I2C_ADRX 两种情况、如果我将它们接地、则我必须不时用一根导线将它们切换为正极。 在其他情况下、即使它们没有连接(在空气中)、也会设置为负。  、是否有正确的方法来设置或配置 I2C_ADRX?

    此致

     Ivan Maldonado Zambrano

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

    [引用用户="Aaron Estrada51"]

    您好、Rutuja、

    由于它看起来像是 I2C 通信错误、因此您能否在发送写入/读取命令时发送 SCL 和 SDA 线路的一些示波器截图? 此外、请仔细检查 I2C 通信地址是否正确。

    为了回答您之前关于寄存器45的问题、当 AGC 算法检测到输入信号电平低于编程的噪声阈值设置时、该标志会变为高电平。 应根据记录环境中预期的环境噪声对该阈值进行编程。  

    此外、您在示波器上看到的1kHz 输入看起来没有被正确触发或一个差分信号。  

    此致、

    Aaron

    [/报价]

    尊敬的 Aaron:

    很抱歉耽误你的回答、  

    根据您的建议、我检查了 I2C 地址;我之前已将 ADR0和 ADR1引脚物理连接到 GND。

    这意味着器件的地址应该为数据表中给出的0x18。 我尝试使用"sudo i2cdetect -y 1"读取该地址、但无法获取任何地址。  

    但是、在这种情况下、我还注意到、即使我从寄存器中读取或写入寄存器并打印值、一切都可以正常工作。  

    有时我能够检测到地址、有时我不能检测到地址。  

    当我运行程序进行读取和写入时、我从下面连接的示波器中获得一些数据。 我首先读取所需的寄存器、然后我写入我希望位于寄存器中的值、然后我再次将它们读回。 正如前面的帖子中提到的、当我第二次运行该程序时。 在第一个读取部分、我看到这些值是默认设置、而不是我写入的设置。 如果我在任何一个步骤中出错、请告诉我。

    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H04、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H05、
    重启、h31 [ H18 | RD ]、H11 NAK、停止
    START、H30 [ H18 | WR ]、H06、
    重启、h31 [ H18 | RD ]、h04 NAK、停止
    START、H30 [ H18 | WR ]、h07、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H08、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H12、
    重启、h31 [ H18 | RD ]、h01 NAK、停止
    START、H30 [ H18 | WR ]、H13、
    重启、h31 [ H18 | RD ]、h01 NAK、停止
    START、H30 [ H18 | WR ]、H14、
    重启、h31 [ H18 | RD ]、H80 NAK、停止
    START、H30 [ H18 | WR ]、H15、
    重启、h31 [ H18 | RD ]、H80 NAK、停止
    START、H30 [ H18 | WR ]、h1B、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H21、
    重启、h31 [ H18 | RD ]、H10 NAK、停止
    START、H30 [ H18 | WR ]、H26、
    重启、h31 [ H18 | RD ]、h02 NAK、停止
    START、H30 [ H18 | WR ]、H35、
    重启、h31 [ H18 | RD ]、H12 NAK、停止
    START、H30 [ H18 | WR ]、H39、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、h3D、
    重启、h31 [ H18 | RD ]、h01 NAK、停止
    Start (开始)、H30 [ H18 | WR ]、H00、H01、Stop (停止)
    START、H30 [ H18 | WR ]、H33、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H3B、
    重启、h31 [ H18 | RD ]、H80 NAK、停止
    START、H30 [ H18 | WR ]、H34、
    重启、h31 [ H18 | RD ]、hFF NAK、停止
    START、H30 [ H18 | WR ]、H36、
    重启、h31 [ H18 | RD ]、h3F NAK、停止
    START、H30 [ H18 | WR ]、H37、
    重启、h31 [ H18 | RD ]、hFF NAK、停止
    START、H30 [ H18 | WR ]、H3B、
    重启、h31 [ H18 | RD ]、H80 NAK、停止
    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H51、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H52、
    重启、h31 [ H18 | RD ]、h88 NAK、停止
    START、H30 [ H18 | WR ]、H53、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H56、
    重启,h31 [ H18 | RD ],00 NAK,停止
    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、h04、h07、Stop
    START、H30 [ H18 | WR ]、H05、H91、STOP
    START、H30 [ H18 | WR ]、h06、h04、Stop
    Start (开始)、H30 [ H18 | WR ]、H07、H00、Stop (停止)
    Start (开始)、H30 [ H18 | WR ]、H08、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H12、H81、STOP
    START、H30 [ H18 | WR ]、H13、H84、STOP
    START、H30 [ H18 | WR ]、H14、H40、STOP
    START、H30 [ H18 | WR ]、H15、HBC、STOP
    START、H30 [ H18 | WR ]、H1B、H20、STOP
    START、H30 [ H18 | WR ]、H21、H10、STOP
    START、H30 [ H18 | WR ]、H26、H04、STOP
    START、H30 [ H18 | WR ]、H35、H12、STOP
    Start (开始)、H30 [ H18 | WR ]、H39、00、Stop (停止)
    START、H30 [ H18 | WR ]、h3D、h01、Stop
    Start (开始)、H30 [ H18 | WR ]、H00、H01、Stop (停止)
    Start (开始)、H30 [ H18 | WR ]、H33、H00、Stop (停止)
    Start (开始)、H30 [ H18 | WR ]、H3B、00、Stop (停止)
    START、H30 [ H18 | WR ]、H34、HC3、STOP
    START、H30 [ H18 | WR ]、H36、hFF、STOP
    START、H30 [ H18 | WR ]、H37、HC3、STOP
    Start (开始)、H30 [ H18 | WR ]、H3B、00、Stop (停止)
    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H51、H82、STOP
    START、H30 [ H18 | WR ]、H52、H08、STOP
    START、H30 [ H18 | WR ]、H53、H40、STOP
    START、H30 [ H18 | WR ]、H56、H80、STOP
    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H04、
    重启、h31 [ H18 | RD ]、h07 NAK、停止
    START、H30 [ H18 | WR ]、H05、
    重启、h31 [ H18 | RD ]、h91 NAK、停止
    START、H30 [ H18 | WR ]、H06、
    重启、h31 [ H18 | RD ]、h04 NAK、停止
    START、H30 [ H18 | WR ]、h07、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H08、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H12、
    重启、h31 [ H18 | RD ]、H81 NAK、停止
    START、H30 [ H18 | WR ]、H13、
    重启、h31 [ H18 | RD ]、H84 NAK、停止
    START、H30 [ H18 | WR ]、H14、
    重启、h31 [ H18 | RD ]、H40 NAK、停止
    START、H30 [ H18 | WR ]、H15、
    重启、h31 [ H18 | RD ]、HBC NAK、停止
    START、H30 [ H18 | WR ]、h1B、
    重启、h31 [ H18 | RD ]、H20 NAK、停止
    START、H30 [ H18 | WR ]、H21、
    重启、h31 [ H18 | RD ]、H10 NAK、停止
    START、H30 [ H18 | WR ]、H26、
    重启、h31 [ H18 | RD ]、h04 NAK、停止
    START、H30 [ H18 | WR ]、H35、
    重启、h31 [ H18 | RD ]、H12 NAK、停止
    START、H30 [ H18 | WR ]、H39、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、h3D、
    重启、h31 [ H18 | RD ]、h01 NAK、停止
    Start (开始)、H30 [ H18 | WR ]、H00、H01、Stop (停止)
    START、H30 [ H18 | WR ]、H33、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H3B、
    重启,h31 [ H18 | RD ],00 NAK,停止
    START、H30 [ H18 | WR ]、H34、
    重启、h31 [ H18 | RD ]、HC3 NAK、停止
    START、H30 [ H18 | WR ]、H36、
    重启、h31 [ H18 | RD ]、hFF NAK、停止
    START、H30 [ H18 | WR ]、H37、
    重启、h31 [ H18 | RD ]、HC3 NAK、停止
    START、H30 [ H18 | WR ]、H3B、
    重启,h31 [ H18 | RD ],00 NAK,停止
    Start (开始)、H30 [ H18 | WR ]、H00、H00、Stop (停止)
    START、H30 [ H18 | WR ]、H51、
    重启、h31 [ H18 | RD ]、h82 NAK、停止
    START、H30 [ H18 | WR ]、H52、
    重启、h31 [ H18 | RD ]、H08 NAK、停止
    START、H30 [ H18 | WR ]、H53、
    重启、h31 [ H18 | RD ]、H40 NAK、停止
    START、H30 [ H18 | WR ]、H56、
    重启、h31 [ H18 | RD ]、H80 NAK、停止

    非常感谢!

    此致、

    Rutuja

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

    您好 Ivan、

    RESET 和 ADR0/1引脚没有内部上拉电阻器、您应该添加一个到 IOVDD 的上拉电阻器。 读取1.2V 时、您是否已正确为器件加电?

    此致、

    Aaron

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

    您好、Rutuja、

    我不确定 I2C 地址为0x18意味着什么。 如果 ADR0和 ADR1连接到 GND、则地址应为0x30。

    此致、

    Aaron

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

    Rutuja、  

    您是否能够解决此问题?  

    如果您仍有困难、请告知我们

    此致、

    -Steve Wilson

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

    尊敬的 Aaron:

    对延迟回复深表歉意。 我们之所以讨论0x18、是因为屏幕截图中有共享内容、当 I2C_ADR1和 I2C_ADR0接地时、Raspberry PI 始终检测到 I2C 地址为0x18、 当 I2C_ADR1接地且 I2C_ADR0连接到 VDD 时、地址为0x19。 因此、我们永远无法检测到地址为0x30。 看起来 Raspberry PI 以其他方式读取地址、因为当您读取0011000时、将 I2C_ADR0引脚视为 LSB、十六进制值读取值为0x18。 请告诉我们您对此的评论。  

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

    Steve Wilson、您好、

    感谢您的提问、我们仍在解决问题。 正如与 的那样、我们在 Raspberry PI 上检测 I2C 地址为0x18、而不是0x30。 我们感谢你就此发表的评论,因为我们渴望开展这项工作。  

    提前感谢!

    此致、

    Rutuja Salvi

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

    您好、Rutuja、

    抱歉。 我误解了 I2C 地址。 正确的做法是、如果将 ADR1和 ADR0连接到 GND、地址应为0x18。  

    您是否在写入寄存器后提供复位、或者两者之间是否存在断电? 这将导致寄存器复位。 您能否提供原理图?

    此致、

    Aaron