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.

[参考译文] ADS1015:如何将 ADS1015输入设置为单端(使用 Linux 驱动程序)

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1255344/ads1015-how-to-set-ads1015-inputs-to-single-ended-using-linux-driver

器件型号:ADS1015

您好!

我已经编译到我的内核(5.15.90) ADS1015作为静态驱动程序跟在我的设备树中这个 I2C 节点:

ADS1015@49{
兼容="ti、ADS1015";
reg =<0x49>;
状态="可以";
#address-Cells =<1>;
#size-cells =<0>;

通道@4{
寄存器=<4>;
ti、gain =<1>;
ti、datarate =<6>;
};
频道@5{
寄存器=<5>;
ti、gain =<1>;
ti、datarate =<6>;
};
通道@6{
寄存器=<6>;
ti、gain =<1>;
ti、datarate =<6>;
};
频道@7{
REG =<7>;
ti、gain =<1>;
ti、datarate =<6>;
};

};

-------------------------------------------------------

根据我对设备树绑定的理解,上面的节点配置应该:  

-将所有4个输入设置为单端  

但在/sys/bus/iio 下... 无论我在 DTB 中设置了什么,我只得到 CH0 --> CH3。  

我想 Ch4 --> Ch7必须出现在这里。

此外,当我读取输入(从电源注入1V ),我总是得到一半。

请告知我应该怎么做才能将器件输入设置为单端。

我的系统:  

- DE10-nano ( cyclone 5 socFPGA )连接到  ADS1x15EVM。

感谢先进的

莫兰。

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

    您好、Moran:

    欢迎来到 E2E 论坛!  通读 ADS1015数据表可能会有所帮助。  在器件配置中、有四个连接到多路复用器的输入(AIN0至 AIN3)、您可以选择不同差分输入的组合、也可以选择以 GND 为基准的输入(单端)。

    ADS1015将始终以差动方式进行测量、因此在单端测量时、您将只会看到正代码(或满量程的正部分)。  因此输出代码范围为0至0x7FF。  然而、一个代码的值为+/-(FSR)/ 2^12、也等于+FSR/2^11。

    在支持 Linux 驱动程序方面、TI 并未编写代码、因此您最好向社区提问。

    static const struct iio_chan_spec ads1015_channels[] = {
    	ADS1015_V_DIFF_CHAN(0, 1, ADS1015_AIN0_AIN1, 12, 4,
    			    ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_DIFF_CHAN(0, 3, ADS1015_AIN0_AIN3, 12, 4,
    			    ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_DIFF_CHAN(1, 3, ADS1015_AIN1_AIN3, 12, 4,
    			    ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_DIFF_CHAN(2, 3, ADS1015_AIN2_AIN3, 12, 4,
    			    ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_CHAN(0, ADS1015_AIN0, 12, 4,
    		       ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_CHAN(1, ADS1015_AIN1, 12, 4,
    		       ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_CHAN(2, ADS1015_AIN2, 12, 4,
    		       ads1015_events, ARRAY_SIZE(ads1015_events)),
    	ADS1015_V_CHAN(3, ADS1015_AIN3, 12, 4,
    		       ads1015_events, ARRAY_SIZE(ads1015_events)),
    	IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
    };

    单端输入通道是先以"ADS1015_V_CHAN"开头、然后对应于 AIN0、AIN1、AIN2和 AIN3的通道。

    此致、

    鲍勃 B