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.

[参考译文] ADS8684:Linux 示例代码

Guru**** 2393225 points
Other Parts Discussed in Thread: ADS8684, ADS8688

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/845867/ads8684-linux-sample-code

器件型号:ADS8684
主题中讨论的其他器件: ADS8688

您好!

我目前正在尝试与 Linux 平台上的一个 ADS8684进行通信。 我已经构建 ADS8688驱动程序并加载了我的目标。

通信似乎运行良好(至少当我使用逻辑分析仪检查 SPI 信号时、我在帧中有请求和响应)。

我将使用命令行测试 ADS8684、每个输入都有偏移、换算和原始数据。

默认偏移为-32768 (为什么不!)、换算为一个奇怪的值(为什么不!) 但是、无论输入电压是什么、RAW 始终为65535。 我不确定这是正常的吗?

=>我正在寻找一个 C 示例代码应用、我可以在 Linux 上构建和运行、以便与 ADS8684进行通信、并基本上读取输入电压。 我是否可以使用任何可用的功能?

感谢您的帮助、

此致、

Joel

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

    Joel、

    ADS8684的驻留专家不在办公室、因此我想我会回答这个问题。 我不确定这是否会有所帮助、但有些 Linux 驱动程序可能会添加到您已经构建的软件中。 您可以在产品文件夹中找到此内容、但我提供了以下链接:

    我要注意的是、TI 没有直接开发此代码、因此我们通常无法对其提供支持。 通读它、看看它是否以任何方式有所帮助。 除了这些示例、我不知道该器件的任何其他示例代码。 我们的主要支持人员在以下帖子中提到了这一点:

    无论如何、如果您在此器件的偏移和标度方面遇到问题、请发帖、我们可以继续讨论这一点。

    吴约瑟

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

    您好、Joseph、

    感谢您的回答。

    "ADS8684的驻留专家  不在办公室"=>我已经在另一个主题中阅读过这篇文章,TI ADS8684/8688专家在哪里?!

    您指示的驱动程序是我正在使用的驱动程序、我很惊讶 TI 会托管一些他们无法支持的代码...

    顺便说一下、无论是 Linux 还是 Linux、我今天要使用逻辑分析仪进行检查、而 ADS8684在执行"手动通道"请求时始终响应"FFF"(数据表第42页)。 我不明白为什么、也不感激任何帮助。

    此致、

    Joel

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

     您好 Joel、

    感谢您在 E2E 上提出的问题。 我上周出差回来了。

    您能否共享您的时序图(/CS、SCLK、SDO 和 SDI)? 我建议在所选通道上使用直流信号或不使用信号(浮动输入)进行测试、无需更改输入范围、这将简化测试。 此外、您的原理图将有助于解决该问题。

    此致、

    戴尔

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

    您好 Dale、

    感谢您的回答、很抱歉我在度假。

    实际上、所有输入都具有固定电压、我只是将输入连接到 GND、AIN_0P 除外、它的电压为0.06V、以 GND 为基准(使用简单微调器设置)。 我附上了一部分原理图、非常简单。

    我还制作了一些使用逻辑分析仪读取的信号的屏幕截图。 这是输入0的"手动通道"读数。 CS 的第一个下降沿到 CS 的第二个上升沿之间的总持续时间约为0.3ms。 SPI 时钟频率为4MHz。 SPI 模式为1 (CPOL = 0且 CPHA = 1)。


    我用2个缩放来显示逻辑分析仪软件数据解码、第一次交换时在 MOSI 上传输的"C000"、第二次交换时 ADS8684在 MISO 上回答的"FFF"。

    如上所述、我不理解答案 FFFF、似乎出于任何原因它是默认值、但我没有在数据表中读取任何相关信息。 或者可能是我的 SPI 设置错误?

    感谢你的帮助。

    此致、

    Joel

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

    您好 Joel、

    感谢您的信息。

    首先、我希望您的 SPI_MISO (ADC 的 SDO 输出)连接到微控制器上的 MISO (输入)、同时 您的 SPI_MOSI (ADC 上的 SDI 输入)连接到微控制器上的 MOSI (输出)。 请参阅 E2E 论坛上的类似问题:

    https://e2e.ti.com/support/data-converters/f/73/t/606878?tisearch=e2e-quicksearch&keymatch=0xffff

    其次、我希望您已经测量了 REFIO 和 REFCAP 引脚上的电压、这两个引脚上的电压都应该是4.096V。

    此外、我希望您的负输入引脚(AIN_0GND、AIN_1GND、AIN_2GND、AIN_3GND)已连接到 GND。

    当您的输入(AIN_XP)连接到 GND 时、转换代码应约为0x8000。 当您的输入(AIN_XP)被连接至满量程信号(+10.24V)时、转换代码应该大约为0xFFFF。 请参阅数据表中图69中的传递函数。

    借助于 SPI 模式(CPOL=0、CPHA=1)、您的微控制器将在 SCLK 下降沿的 MISO 引脚上捕获代码、您的微控制器应该能够在 SCLK 下降沿之后的10ns 内捕获代码、这是因为数据的保持时间最小为10ns。 请参阅下面以红色突出显示的部分。 您需要仔细检查并确保 SPI 在较低 SCLK (4MHz)条件下的这段短时间内是否能够捕获。

    此致、

    戴尔

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

    您好 Dale、

    很抱歉耽误你很长时间、并感谢你在这方面的帮助。

    要回答您的问题:

    -我仔细检查了接线、它是正确的

    -电压均为4.096V

    -此时负输入引脚和正输入引脚全部连接至 GND

    -您会指示"使用 SPI 模式(CPOL=0、CPHA=1)"、这也是我配置的内容

    由于需要其他函数、我将很快更改 CPU、问题可能会消失、但如果您有任何想法...

    谢谢

    Joel

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

    您好、Joel、

    以下是您可以检查的测试:

    • 发送连续 SLCK、而不是字节模式。
    • 使用示波器(而不是逻辑分析仪)检查您的时序、以查看您的 CPU 是否 能够在 SCLK 下降沿之后的10ns 内捕获数据。
    • 将 R201和 R203降低至0欧姆或小流明、这可能不是根本原因、但我希望将其接地时保持较小的值。

    此致、

    戴尔