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.

[参考译文] Linux/ADS8688:无法通过 libiio 从器件读取

Guru**** 2554950 points
Other Parts Discussed in Thread: ADS8688

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/598530/linux-ads8688-unable-to-read-from-device-via-libiio

器件型号:ADS8688

工具/软件:Linux

我有一个通过 SPI 协议连接的 ads8688。

它显示在/sys/buses/iio/devices/iio:device0中

我可以运行 IIO_info、它会显示器件条目

Prompt (提示)">IIO_info

Library version (IIO_info 库版本):0.7 (git tag:v0.7)
使用本地后端创建 IIO 上下文。
后端版本:0.7 (git tag:v0.7)
后端描述字符串:Linux arm 4.9.10-bone4 #1 Thu Febe 16 19:35:11 UTC 2017 armv7l
IIO 上下文具有1个器件:
IIO:device0:ads8688
8个通道找到:
voltage6:(输入)
5个通道特定属性找到:
attr0:attrs
值:attr0:tr 0.887原始值:0:attrs 值:0.320
-32768
属性3:offset_available 值:-32768 0
属性4:scale_available 值:0.312504320 0.156254208 0.078127104
voltage4:(输入)
5个通道特定属性找到:
atage0:-32768
attr 1:原始值:396254208 voltr
2:scale value:0.327504320

tr 0:–327432080 attr0:0.320_trl
(输入)
找到5个通道特定属性:
属性0:比例值:0.312504320
属性1:原始值:48303
属性2:偏移值:-32768
属性3:offset_available 值:-32768 0
属性4:比例可用值:0.312504320 0.156254208 0.078127104

属性 tage3:0.3125015:输入数据

0:特定通道属性0:0.3201:输入数据0 32726
属性2:偏移值:-32768
属性3:offset_available 值:-32768 0
属性4:scale_available 值:0.312504320 0.156254208 0.078127104
voltage7:(输入)
[...]

这很正常、我可以从通道0读取电压、如您在上面所见。

但是、我找不到我想要查找的一些文件夹、用于启用/禁用通道的文件夹、缓冲区等

无论如何、我尝试使用 IIO 工具从器件中读取数据、但我得到了...

BS@ARM:~$ IIO_readdev IIO:device0 
无法分配缓冲区:参数无效

调用 IIO_DEVICE_CREATE 缓冲区时,我使用自己的代码获得相同的结果:它在--EINVAL 时失败(无效参数)。

在进一步检查 libiio 代码后、我认为 IIO_DEVICE_GET_SAMPLE_SIZE 结果是故障的原因、因此我做了更多的测试...

调用 ICO_DEVICE_GET_SAMPLE_SIZE (dev)将返回0,并将 errno 设置为:13 (拒绝权限)(如果您不是 root 用户);如果您以 root 用户身份运行,则将错误设置为2 (无此类文件或目录)。

为了创建缓冲区、IIO_DEVICE_GET_SAMPLE_SIZE 必须大于零。

我认为这是 ti_ads8688.c 驱动程序中的缺陷或问题。 是否有更新的 ti_ads8688.c 驱动程序、我可以尝试更新它的任何计划?

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

    您是否将此 ADS8688 ADC 连接到 TI 器件/处理器(例如 AM335x)? 您是否使用 TI SDK (例如 ti-processor-sdk-linux-am335x-evm-03.03.00.04)?

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否使用以下驱动程序?

    www.ti.com/.../ads8688sw-linux

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

    是的。 这是我要使用的驱动程序。

    我将其编译为.ko 模块。

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

    有关 ADS8688 ADC 及其驱动程序的具体问题、您应在精密数据转换器论坛提问/发帖:

    e2e.ti.com/.../73

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 它通过基于 AM3335x 处理器的 SPI 连接到 BeagleBone Black、
    但我不使用 SDK。

    我不知道如何开始:)

    我正在使用 KLM ti_ads8688。
    它成功加载并通过文件系统提供我需要的数据、
    但我无法使用驱动程序以编程方式检索它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。 谢谢。