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.

[参考译文] ADS127L11:连接 FPGA

Guru**** 2583465 points
Other Parts Discussed in Thread: ADS127L11, ADS8881, ADS127L11EVM-PDK

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1038126/ads127l11-interface-with-fpga

器件型号:ADS127L11
主题中讨论的其他器件: ADS8881

我最近购买了此 ADC、并希望将其输出(转换结果)连接到 FPGA。

  1. 如何像使用非常简单的 ADC (数字输出中的模拟)、没有寄存器、没有编程等一样使用它?我应该直接从主器件输入 SDI 引脚无效命令吗?
  2. 我是否需要将每个引脚连接到某个引脚?
  3. 如果我的模拟输入是单端输入、我是否只需将负模拟输入与 GND 相连?
  4. 我是否可以使用任何电源配置来满足我在(1)中的需求? ?
  5. 我是否必须连接旁路电容器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您几乎肯定需要对 ADS127L11寄存器进行一些最低限度的编程。  复位时、输出数据速率和其他基本设置不太可能适合您的应用。  数据表中对串行接口进行了详细说明。  NOOP 命令在读取数据时很有用

    2、 大多数引脚都需要连接。  第9.2节显示了一个基本系统的良好示例。

    3.可能。  取决于您的电源配置、但 GND 可能是一个候选器件。

    4.您可以使用您希望 a)满足数据表要求的任何电源配置、B)支持对所需信号的测量。

    5.如果你想要任何性能.  如果没有旁路电容器和精心设计的输入滤波器、您也可以使用更低的位数 ADC、因为您永远不会看到接近24个有用位的任何内容。

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

    1.我只想读出转换结果,这就是我希望从 ADC 中得到的所有结果,我是否还必须向 SDI 引脚馈送命令?  

    其他问题:

    1. 如何将输出转换为定点?
    2. 是否可以使用另一种 SPI 模式,而不是规定的模式?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Youssef、

    ADS127L11有很多选择、并且需要一个外部时钟来获得数据表性能。  复位时、它默认为内部振荡器、必须更新内部寄存器以启用外部时钟源。  但是、如果您只希望器件正常工作、则可以将 SDI 接地、这将被解释为 NOP 命令、并且器件将使用输出数据速率约为400ksps 的内部振荡器运行。

    如果 您需要简单、更高数据速率的器件、则 ADS8881是一款1MSPS 18b 器件、不需要配置、可能更适合。

     ADS127L11的输出是一个二进制补码整数、它已经是定点。

     ADS127L11仅支持 SPI 模式1。  在硬件级别、您可以采用3线或4线配置进行连接。

    根据 Benjamin 的意见、您将需要使用旁路电容器;由于 IO 线路上产生的噪声、我怀疑您可以使 ADC 在没有这些电容器的情况下正常工作。   有关示例配置原理图、请参阅 ADS127L11EVM-PDK 用户指南。

    此致、
    Keith Nicholas
    精密 ADC 应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 很抱歉,我有点困惑,如果我不对器件(SDI 至 GND)进行编程,我是否能够从 ADC 读取转换结果? (同时提供外部时钟时),或者您的意思是“仅功能”?
    2. 如果我的模拟输入是单端输入,我能为负输入接地吗?  
    3. 基准电压应该是多少? 我是否还可以连接这两个设备?
    4.  因此,我总共需要6个旁路电容器(CAPA;CAPB 和2个用于 AVDD;2个用于 IOVDD)?

    感谢您和 Benjamin 的回答

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

    只要 START 引脚处于高电平、您就会读取数据、但器件寄存器将根据复位规格进行配置-这可能是或可能不是您的应用的理想选择。

    2.只要这是一个合适的地方,我们就不能告诉你它是不是不是,因为我们不知道它的引用是什么。

    它应该是符合数据表规格的任何电压。   0.5V -> 2.75V 用于低范围测量;1V ->(AVVD1 -AVSS)用于高范围测量。  您需要将某些器件连接到 REFN 和 REFP、因为它是一个差分输入。  如果您的基准源是单端的、则 REFN 可以连接到 AGND。

    4.您需要在 AVDD、IOVDD、CAPA、CAPD 上至少设置电容、并在输入信号和基准电压上进行一些 RC 滤波。  为了甚至接近数据表中有关精度和噪声的规格、您需要仔细考虑所有这些因素。

    您是否实际阅读过数据表?  您的问题并不完全隐藏在隐蔽的地方。

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

    当我问这些问题时、我很仔细地问了一下、然后我开始实际阅读了这些问题。

    1. 我目前在"Register Descriptions (寄存器说明)"部分。 但我还有另一个问题,我不是很清楚何时我将数据写入寄存器(命令),我是否必须每帧写入一次,还是 在加电时写入一次,并将其存储在寄存器中,除非我将其复位?
    2. 为了写入我必须输入的内容(通过 SDI)、80h+Rer_Addr。 例如,如果我想向寄存器 addr 写入内容:8h,这是一个加法还是连接?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Youssef,

    1、 内部寄存器包含您最后写入的值、因此在上电或复位后只需写入一次。  初始写入后、如果您想将器件配置更改为其他内容、当然可以再次写入这些寄存器。

    2. 要对内部寄存器进行写操作,需要发送一个16位字。  前4位是写入命令0x8h、后跟4b 地址、最后是要写入寄存器的8b 数据。  例如、为了选择外部时钟、您需要发送以下16b:

    0x8880h、或0x1000 1000 1000 0000b

    另一个示例是、如果要启用内部输入缓冲区、应将以下内容写入 CONFIG1寄存器:

    0x8503h 或0x1000 0101 0000 0011b

    此致、
    Keith

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

    您好、Keith、

    首先、感谢您的回答。

    配置寄存器后,我是否应该通过 NOP 发送到 SDI 以读取下一帧中的转换数据? (我不是很从数据表中获取该器件)

    此致、

    优素福

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

    您好,Youssef,

    是的、配置寄存器后、只需发送 NOP (保持 SDI 为低电平)即可检索数据。  有关更多详细信息、请查看数据表中的第8.5.6节。

    此致、
    Keith

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

    您好、Keith、

    好的、谢谢

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

    不用客气。

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

    好的、现在我已经将它与 FPGA 连接了。 即使模拟输入(要转换的信号)甚至没有被插入、它也会发送数据、而无需我通知它读取特定的寄存器。 您是否知道问题是什么?

    (我只通过写入 CONFIG4寄存器来配置它,我想使用外部时钟(20MHz)。 在我按下按钮写入此命令后、它会发送此命令

    FPGA)、除此之外什么都没有。 仅当我想读取 CONFIG4寄存器(通过按下另一个按钮)时、该波形才会改变。

    我是否卡在读取特定寄存器的示例或什么? 我真的不知道为什么只有这个波形。   

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

    转换器会自行发送数据。  它仅在 CS#被拉至低电平且 SCLK 被切换时在其 SDO 引脚上响应。

    如果您要在转换器 SDI 引脚上发送 NOOP (0x00)、则它将使用转换后的数据进行响应(数据表的第8.5.6节描述了行为)。

    ADC 不知道是否有任何东西被"插入"到其输入端子上。  它将转换那里的任何内容、即使这只是浮动信号。

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

    您好 Youssef、

    除了器件仅在/CS 被拉至低电平时响应、ADS127L11通常在 START 引脚保持高电平时使用。  在此模式下、当新数据准备好进行检索时、它会通过拉低来持续转换数据并更新/DRDY 引脚。

    在这种情况下、FPGA 需要监控/DRDY 引脚、当它转换为低电平时、您将把/CS 拉至低电平并时钟输出转换结果。  这假设 SDI 引脚保持低电平;如果之前的 SPI 帧发出了读取寄存器命令、则可以检索寄存器的内容。  数据表中的图8-27显示了这些详细信息。

    希望这对您有所帮助。  周末愉快!

    此致、
    Keith

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

    您好 Benjamin、

    是的、我知道它不会自己发送数据、这就是为什么我想知道为什么每帧都有相同的输出、即使我没有将任何模拟信号连接到 ADC 的模拟输入。 我以为我一直在读取寄存器或类似的内容、但我没有、 因为在配置寄存器后、我向 SDI 引脚发送了 NOP、因此它应该在读取转换数据。

    然后、我发现我错误地将 RESET 引脚(低电平有效)连接到 GND。 欢迎来到我的生活

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

    您好、Keith、

    是的、当我处于读取状态时、我等待  DRDY  变为低电平、然后将 CS 拉 至低电平、但 DRDY  不会变为低电平、我不知道原因。 (如果我要更改它或其他内容,我将使用默认的启动/停止模式?)

    感谢你的帮助。 你也是。 保持安全。

    此致、

    优素福  

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

    如果您将器件配置为启动/停止模式、并且将 START 引脚设置为高电平、则每次有新的转换可用时 DRDY#都应脉冲为低电平。  很难断开该功能。

    如果 DRDY#未变为低电平、那么我敢打赌以下事情之一

    1) 1) RESET#引脚仍有问题。

    2) 2)您没有将 START 设置为高电平(或者、如果您未使用 START 引脚进行控制、则未发出 START 命令)

    3) 3)您已将 DRDY#绑定到阻止其变为低电平的器件。

    发布原理图可能会有所帮助。

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

    1) 1)我将复位#绑定到 IOVDD

    2)它设置为高电平(从 FPGA 发送逻辑"1")

    3) 3)如果  我通过板上的 GPIO 引脚将 DRDY#传递到 FPGA、并在读取模式下等待它转换为低电平、将 SS#拉低、那么可以防止它变为低电平的原因是什么。

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

    1) 1)这应该是好的

    2) 2)您是否已使用仪表或示波器在电路板上验证了这一点?

    3) 3)是否确定连接正确?  是否确定您的 FPGA 引脚已设置为输入且不会受到 DRDY#信号的影响?

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

    2) 2)您认为我也应该将其连接到 IOVDD 吗? (我已验证它是从逻辑分析仪发出逻辑"1")

    3) 3)是的、我确定它是一个输入。

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

    1) 1)只要您确定 FPGA 将其驱动为高电平、就没有理由这样做。

    您为什么不告诉我们 ADC 上的每个引脚到底连接了什么?  这个部件非常简单、以至于您实际上不应该在从它获得转换时遇到问题。  获得高质量转换是一个完全不同的问题、但获取 DRDY#信号和数据却非常简单

    如果您的 DRDY#未切换为低电平、则不会正确连接。

    您是否能够读取和写入寄存器? 例如、读取寄存器0x0C 是否返回0x40?

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

    是的、我能够读取和写入寄存器。 我配置了4个寄存器并读取寄存器 CONFIG4中的内容(正确)。

    好的、我使用的是与此相同的、但/reset  连接到 IOVdd。

    • REFP<=3、3V
    • REFN<=GND
    • AINP<= Arduino 声音传感器模拟输出(KY-037)
    • AINN<= GND
    • AVSS<=GND
    • AVDD1<=5V
    • AVDD2<=5V
    • IOVdd<=3、3V

    其余部分连接到 FPGA  

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

    我的寄存器设置如下:

    CONFIG1:高基准范围、我使用输入缓冲器(REG_DATA<=4B)

    CONFIG2:扩展输入范围(REG_DATA<=60)

    CONFIG3:SINc3和 OSR 26667 (REG_DATA<=1C)

    CONFIG4:外部时钟被启用(REG_DATA<=80)

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

    CAPA 和 CAPD 上有电容器?  您没有提到它、但我假设 DGND 连接到 GND?

    CONFIG2 = 0x60毫无意义。  位6被保留。  我猜您希望它为0x80。

    如果您将 CONFIG4 = 0x00设置为使用内部时钟、会发生什么情况?  您的时钟可能无法正常工作。

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

    是的、我在 CAPA 上有电容器、并且 CAPD 和 DGND 被连接。  

    是的、您说得对、我将其设置为0x80、但是。 这是我的答复中的一个排印错误。

    我也尝试过、但仍然会出现相同的问题。 我将外部时钟设置为25.6MHz (根据数据表)、将 SCLK 设置为35MHz (数据表中写入的数据表中表明、对于2V 至5.5V 之间的 IOVDD、SCLK 的最小周期为20ns、最大1/4*(Fdata)(第6.8节)

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

    您好 Youssef、

    我的下一个建议是检查时钟。  一旦该器件配置为外部时钟、除非向 CLK 引脚施加适当的外部时钟信号、否则该器件不会进行转换。  该频率应介于0.5MHz 和26.2MHz 之间。  此时、/DRDY 引脚应在输出数据速率下具有或不具有 SPI 通信功能时发出低脉冲。  如果未连接、则其中一个引脚连接错误、或器件可能损坏。   

    您能否提供显示所有 ADS127L11引脚连接的原理图屏幕截图?  如果您使用的是 QFN 版本、则应将电源板接地。

    此致、
    Keith

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

    我还使用 Vivado 的逻辑分析仪监视 CLK、运行正常。

    所有到 PIN 的连接都在 Benjamin 的回复邮件中的上方,或者您是指我的整个设置的照片吗? 如果这是您的意思、它会有点乱、因为我通过跳线电缆连接引脚。

    如何验证设备是否未损坏? (我正在正确发送和接收寄存器数据)

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

    您好 Youssef、

    测量 IC 引脚处的时钟频率、确保其实际连接到时钟源。  由于您的 IOVDD=3.3V、因此时钟振幅也应为3.3V。

    我建议使用 DMM 并测量每个引脚上的所有电压、以验证它们是否正确连接到3.3V、5V 或接地。

    无任何通信、/CS=3.3V、启动=3.3V、/RESET=3.3V、SDI=0V、 您应该能够在输出数据速率下看到/DRDY 引脚脉冲。  假设您没有写入 CLK 选择位以外的任何其他寄存器位、则当 CLK=25.6MHz 时、/DRDY 的频率应为400kHz。

    此致、
    Keith

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

    您好、Keith、

    好的、我会这样做、然后我会返回给您结果、但是如果一切都正确、/DRDY 仍然不会变为低电平、该怎么办?

    此致、

    优素福

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

    如果/DRDY 不会变为低电平、则任一部件均已损坏、或连接不正确。  这些是选项。

    只需按照 Keith 所述的配置为其加电、就会使其开始切换 DRDY。

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

    好的、非常感谢 您的帮助

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

    很高兴为您提供帮助。

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

    您好、Keith、

    所以我做了你要求我做的事,很抱歉,花了这么长时间。

    正如我说过的、我在试验电路板上使用它、因此测量的所有内容都来自试验电路板孔和 FPGA 的 I/O 引脚。

    电压正确、时钟频率也正确。

    /DRDY 也是3.3V、但频率为8-9kHz。 问题出在哪呢?

    此致,

    优素福   

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

    它应以您选择的任何滤波器的数据速率进行脉冲。  如果它是脉冲、那么您将获得数据-请读取它。

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

    我也曾考虑过这一点、但我没有得到任何数据(转换数据)、它们都是零

    但是、当我想读取寄存器时、它会正确地发出 reg_data。

    此外、正如 Keith 所说的、如果我按照他的设置进行操作、它应该以400kHz 的频率进行脉冲。

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

    您能否再截取另一个 Vivado Logic 分析仪屏幕截图?  请包含 DRDY#信号。

    如果您已经为 Sinc3-OSR26667对寄存器进行了编程、DRDY#应以480Hz 的频率进行脉冲。

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

    您好,Youssef,

    您提到过您正在使用试验电路板。  为了使 ADC 正常运行并在上电时正确复位、旁路电容器必须直接安装在 ADC 旁边、并且应该是陶瓷表面贴装电容器以降低电感。

    这些电容器是否与 ADC 安装在同一 PCB 上并直接安装在其旁边?  我认为您的手机设置图片可能会有所帮助。

    此致、
    Keith

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

    这是设置。

    没有、电容器不在同一 PCB 上、但它们直接位于 PCB 旁边。 它们是陶瓷电容器  

    在对 Benjamin 的答复中、DRDY 仍然与上述 Vivado 逻辑分析仪的图片相同

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

    哇哦。  我真的很想在这里保持温柔、但这种设置令人非常怀疑。
    这是一个具有重要信号完整性和电源要求的24位 ADC。

    我看到大约20个地方、短路可能会破坏 ADC 的模拟部分。
    实际上 满足任何布局要求。
    电容器不仅离器件太远、而且使用极长的引线进行连接、这真的很糟糕。

    很抱歉、我是坏消息的传记者、但如果没有更好的设置、就会有人想知道为什么它不能为您服务。

    此器件的 EVM 有一个原因(即使 TI 忘记了 R94,以后也必须添加它)
    ADS127L11_EVM

    我真的建议购买价格非常合理的 EVM 模块之一、并将其连接到您的 FPGA 板。  如果 ADC 已正确通电并连接、则其工作原理会非常出色。  我现在正在完成一个基于它的设计、我对它的性能印象深刻。

    ADS127L11EVM-PDK 评估板|德州仪器 TI.com

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

    您好,Youssef,

    Ben 是正确的。  由于长引线的电感、您设置图片中的穿孔电容器将无法工作。  至少需要将表面贴装 SMT 电容器直接放置在适配器板上的 ADS127L11旁边。  下面重点介绍了所需的最小电容器。

    如果您想使用此器件、最快的方法是使用评估板。  否则、您将需要将所有这些小部件直接焊接到 ADC 旁边、以使其正常工作。  为了获得接近数据表性能的任何东西、您需要一个完全定制的 PCB 设计。

    此致、
    Keith