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.

[参考译文] ADS127L11EVM-PDK:DIDN'无法在 ADS127L11中获取正确的数据、或者有时会获取0x00。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1321628/ads127l11evm-pdk-didn-t-get-proper-data-in-ads127l11-or-sometime-get-0x00

器件型号:ADS127L11EVM-PDK
主题中讨论的其他器件:ADS127L11

您好、TI 团队:

我已 将 ADS127L11 EVM 与  teensy 4.0 (MIPXRT1062DVL6B)开发板配合使用。

EVM 中的必要设置: (具有外部控制器板的 ADS127L11EVM)

我已经 为+Vin 侧的 J12提供+5V、并为 J13 IOVDD 电源提供+2.5V。

跳线连接:

连接了 JP3跳线。 (默认值)

使用+Vin 和+LDOVin 引脚连接了 JP4跳线。

已将 JP5跳线与 AVSS 和 GNS 引脚相连。

使用 2&3 EVM Clk 引脚连接了 JP6跳线。

使用 2&3 PHI Clk 引脚连接了 JP7跳线。

使用 TEensy 4.0 SPI 接口连接 RST、START、SDI、CS、SCLK、SDO 和接地引脚。

此外、我在此还 附上了该协议的连接图片。

请验证上述连接、并建议是否需要进行任何更改。  

固件开发 :

我将   尝试从 ADS127L11读取和写入寄存器、并尝试使用 DEV_ID。

我将启动和重置引脚设置为高电平、然后尝试在 SDI 中发送数据。

为了根据数据表获取24位 ADC 原始数据、我已 在 SDI 中发送0x00 0x00 (NOP)帧。

在那之后,有时我得到了原始数据的十六进制格式,并转换为编解码器格式(546662, 5400,672,5399097等)。 编解码器数据)。 J4侧也得到1.66V。

我在 J4侧检查了电压变化、并以编解码器格式获得了数据、但这种变化不是即时的、需要很长时间2到5分钟、而且我无法获得正确的输出电压。

这里还要提到一点、即使我已在 SDI 中发送了帧、但 我并没有持续获得此数据、意外的是、当时我得到的值是0x00。 因此、我需要在固件侧设置任何其他寄存器?

此外、我观察到、当我从 +5V 到 J12侧以及从+2.5V 到 J13 IOVDD 电源侧切断工作台电源时、出现了同样的问题、得到的结果是0x00。 那么、我是否需要遵循任何硬件端电源序列 来获取原始数据?

我附上了我的.c 和.h 文件供您参考。

e2e.ti.com/.../SPIWrapper.ce2e.ti.com/.../SPIWrapper.h

一旦该问题得到解决、我还需要实施菊花链式。

如果我的操作有任何错误、请帮助解决此问题或提供指导。  

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

    Anil 您好!

    欢迎加入 TI E2E 社区!

    ADS127L11需要一个时钟源来用于主 CLK 输入。  该 EVM 包括一个25MHz 振荡器、要使 ADS127L11正常工作、需要启用该振荡器。

    跳线位置:

    JP3: 不安装跳线以启用本地25MHz 时钟振荡器(请移除跳线)

    JP6: 跳线安装在 EVM CLK 位置、1-2。 (正确)

    JP7: 跳线安装在 EXT/EVM CLK 位置、2-3。 (请将跳线移至2-3)

    JP4: 跳线安装在+Vin 位置、2-3。  (正确)

    JP5: 跳线安装在 AVSS/GND 位置、1-2 (正确)

    为获得最佳性能、J12上的外部电源+Vin 应设置为+5.5V。   

    根据 Teensy40规格、数字 IO 使用3.3V。  为正常运行、请为 J13 IOVDD 提供+3.3V。   

    另外、查看您的代码、您会发现不使用/DRDY 信号。  ADS127L11在连续转换模式下正常运行。  在该模式下、START 引脚保持高电平、MCU 监视/DRDY 线的下降沿。  当检测到下降沿时、通过将/CS 置为低电平来通过 SPI 传输数据。

    您还可以通过将 START 引脚脉冲为高电平来启动转换、从而在启动/停止模式下操作 ADS127L11 (请参阅数据表的第8.4.6.2节)。  在此模式下、您需要监控/DRDY 线路是否存在转换就绪(下降沿)、或者仅通过转换过程的延迟时间来延迟、延迟时间取决于滤波器配置。  延迟时间在表8-3到8-8中指定。  由于这些时间假设 CLK 频率为25.6MHz、因此在使用25MHz 时钟时、您需要将延迟时间加倍25.6/25=1.024才能获得校正时间。

    如果仍然在使通信正常工作时遇到问题、请提供  RST、START、SDI、CS、SCLK、SDO 和/DRDY 引脚的逻辑捕获。

    此致、
    N·基思
    精密 ADC 应用

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

    感谢 Keith Nicholas 的快速支持、

    我已根据您的建议进行了更改。

    所有跳线位置都已正确安装、从而为 J13 (3.3V)、IOVDD 和 J12 (+5.5V、+Vin)提供必要的电压。

    MCU 持续监控/DRDY 线的下降沿。 检测到下降沿后、通过 SPI 传输数据。

    我当前使用的是单端输入、因此 将接头 J4连接到了 AINN/GND 位置2-3。 在观察时、  我在 AINP 引脚上得到一个接近1.625763V 的默认电压。

    现在、我在 AINP 引脚施加输入电压以获取 ADC 数据。

    结果和问题:

    1. 获得一次数据后、每次读取 ADC 数据时、 即使我更改电压、也会得到适当的电压。 我得到的数据范围 是  0.4mv 至2.5V。  但是、 如果 在这种情况下施加的电压低于0.4mv、则无法获得输出电压 小于0.4 MV 。 那么、它是最小饱和电压吗? 或者我如何获得小于0.4mv 的电压? V ref 为 2.5伏 因此、如果我施加大于2.5V 的电压、那么最大饱和电压对我来说是完美的、然后我也得到了低于2.5V 的电压。
    2. 此外、我观察到、当我关闭任何工作台电源(+5.5V 到 J12侧、+3.3V 到 J13 IOVDD、AINP J4的输入电压)时、然后重启电源、在这种情况下、我很长时间没有在/DRDY 引脚上获取数据和中断。 那么、 我需要遵循哪个电源序列 来获取 ADC 数据?
    3. 之后、如果我尝试多次读取 ADC 数据、但没有获得数据以及/DRDY 中断。 为了解决此问题、我打开/关闭任何电源并尝试读取数据、一旦获得数据、就可以正常工作、我在第1种情况中提到过。 所以,在这里发生了什么,我不明白!!

    e2e.ti.com/.../8176.SPIWrapper.c

    请引导我...

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

    Anil 您好!

    ADS127L11EVM 单端输入范围为-2.5V 至+2.5V。  由于偏移和增益误差、实际范围可能略小、但将非常接近-2.5V 和+2.5V。  读数不能小于0.4mV。  这是否会限制输入电压源?  请使用 DMM 测量电压、以验证输入电压是否小于0.4mV。   正如我说过的、您应该能够测量低至-2.5V 的电压。

    3.3V 和+5.5V 电源没有特殊的电源序列。  然而、为了正确加电复位、必须在施加任一输入电压前施加+5.5V 电源。  此外、在从 Teensy4.0处理器板驱动 IO 引脚之前、必须应用+3.3V 电源。  为了获得可靠的加电、您还应该在所有电源都加电后切换 RST 引脚、等待10ms、然后运行您的其余代码。

    为了调试这些问题、确实需要将逻辑分析仪或示波器与数字控制线连接起来、以验证是否满足所有时序要求。  如果您能提供这些图的图片、我可以验证一下。

    此致、
    基思

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

    Keith、您好、

    我已经通过试用4.0电路板对 ADS127L11进行了多次测试、但仍然没有获得低于0.4mV 的 电压、同时使用 DMM 测量电压。

    所以、我已经 使用 ADS127L11EVM GUI 软件测试了 ADS127L11 EVM 套件 (将单端 J4跳线连接到 AINN/GND 位置2-3。)。

    这是一个很好的例子。

    测试案例: 在所有情况下我只提供+0.2mV 输入电压。

    1) 1)   ADS127L11 EVM 套件使用 USB 端口上电。 但未向 AINP 引脚提供输入电压。  我将获得一个接近+1.6V 的默认电压。

    我还具有相同的附加功能图像、其中 我提供了 +0.2mV 的输入电压并且还使用 DMM ( +0.201mV )以验证,但其中的 引脚未连接到 AINP 和公共 GND。

    2) 2) ADS127L11 EVM 套件使用 USB 端口上电。 只需将电源探头与 AINP 引脚和公共 GND 相连、但电源关闭。  在这个 I  AM 还会在软件中获取+0.443mV 电压以及443.847mV 电压。

    3) 3) ADS127L11 EVM 套件使用 USB 端口上电。 使用电源、探针连接 AINP 引脚和 公共 GND 来提供+0.2mV 输入电压。  但我 将在电源中获得反向电压、它的值 从 0.2mV 变为+0.422mV、并在软件中获得+422.5762mV。

    如果我做错了什么,请引导我!

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

    Anil 您好!

    1. 在单端配置下 EVM 读取的典型电压、AINP 悬空为1.67V。  当 AINP 未被低阻抗源驱动至0V 时、这是 EVM 的正常行为。

    2. 您的电源输出阻抗看起来不会让输入一直拉至接地。  这是您的电源限制、而不是 ADS127L11EVM。

    3。 ADS127L11EVM AINP 输入的输入阻抗约为1k Ω、外部源需要从 EVM 灌入电流。  在这种情况下、 电源只能拉电流、所以输入电流回流到电源、导致电压升高。  如果要测试 ADS127L11EVM 的整个输入范围、则应使用能够拉电流和灌电流的精密直流电源。

    此致、
    基思

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

    感谢  Keith Nicholas、

    很抱歉,由于健康原因,我在过去几天不可用。

    根据您的建议、我使用不同的直流电源进行测试、这对我在 EVM 中获取不同的输出电压范围很有帮助。

    问题、我之前告诉过您、其中我没有获取数据(我得到0x00)。 它也会解析、但该数据是不正确的。

    此问题的解决是由于将交叉连接测试板等导线连接更改为 ADS127L11EVM SDO (MOSI)-> SDI (MISO) 和 SDI (MISO)-> SDO (MOSI) 。  在 SPI 连接中、 主要是 SDI -> SDI 和 SDO -> SDO 是否正确? 正确、如果我错了。

    问题是、我正在 SDO 中传输0x00 0x00 0x00 (NOP)帧、但当我使用逻辑分析仪交叉检查数据帧时、我不知何故  

    0x00 0x00 0x01 。 另一个问题是逻辑分析仪的 SDI 线路中有准确的原始数据0x52 0xF6 0x08、但当我尝试在串行端口读取和打印该数据时、该数据发生了一些变化。

     我附上了逻辑分析仪图像和串行数据图、因此可能对您调试该问题有所帮助。

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

    感谢  Keith Nicholas、

    很抱歉,由于健康原因,我在过去几天不可用。

    根据您的建议、我使用不同的直流电源进行测试、这对我在 EVM 中获取不同的输出电压范围很有帮助。

    问题、我之前告诉过您、其中我没有获取数据(我得到0x00)。 它也会解析、但该数据是不正确的。

    此问题的解决是由于将交叉连接测试板等导线连接更改为 ADS127L11EVM SDO (MOSI)-> SDI (MISO) 和 SDI (MISO)-> SDO (MOSI) 。  在 SPI 连接中、 主要是 SDI -> SDI 和 SDO -> SDO 是否正确? 正确、如果我错了。

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

    Anil 您好!

    我不清楚您的描述。  但是、对于 Teensy4.0板和 ADS127L11EVM 之间的连接、请使用以下内容:

    Teensy4.0 ADS127L11EVM
    CS (10) /CS
    MOSI (11) sdi
    MISO (12) SDO
    SCK (13) SCLK

    SDI 引脚仅是 ADS127L11上的输入、因此 0x00 0x00 0x01 与 Teensy4.0/代码有关。

    另外、ADS127L11输出是二进制补码、24b 有符号整数。  在将此值读取到 MCU 中时、我假设您使用的是32b 有符号整数。  为了保持符号位、您应该将24b 数据左移8位(或乘以256)、然后右移8位(除以256);这应该能保留符号位并提供正确的读数。

    ADS127L11的原始数据 A9773E 输出不是十进制数11,106,110;十进制数为-5671106。

    此致、
    基思

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

    Keith、您好、

    感谢您的持续支持、现在 我的问题就解决了。

    现在、我来讨论菊花链实现、因此我需要遵循与前面在单 EVM 设置中讨论的相同的 EVM 硬件连接(跳线连接)。

    例如,只需更改(两个 ADC 用于菊花链): EVM1 SDI 至下一个 EVM2 SDO 和 EVM2 SDI 至测试板 SDO (11)。  

    对于菊花链设置、我还需要考虑哪些其他因素?  

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

    Anil、您好!

    是的、这是正确的。   两个电路板将共享 SCLK 和/CS 引脚。  MOSI 将进入 EVM1上的 SDI、EVM1上的 SDO 将进入 EVM2上的 SDI、EVM2上的 SDO 将进入 MISO。

    此致、
    基思

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

    Keith、您好

    非常感谢。

    我以菊花链方式实现了2个 EVM 连接、并且还获得了两个 EVM 的数据、但对于特定 ADC 的数据解析、我遇到了问题。

    那么 、是否有任何用于实现菊花链或数据解析的示例代码?  除此之外: //www.ti.com/tool/download/SBAC296

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

    Anil 您好!

    唯一的示例代码是您突出显示的 SBAC296。  该代码显示了如何在包含 STATUS 和 CRC 时解析单个通道的数据。  您应该能够为2个或更多通道修改此代码。

    此致、
    基思

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

    感谢 Keith 一直以来的支持。