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.

[参考译文] ADS124S08:ADS124S08 Linux 驱动程序

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1001582/ads124s08-ads124s08-linux-driver

器件型号:ADS124S08

你好!

我将使用适用于 ads124s08的 Linux 驱动程序。 当我尝试读取值时、驱动程序在所有通道上始终返回0。

模式详细信息:

  1. 内核4.19
  2. ads124S08驱动程序 https://github.com/torvalds/linux/blob/master/drivers/iio/adc/ti-ads124s08.c
  3. 指向 DTS 文件 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/iio/adc/ti,ads124s08.yaml 的链接

我的 DTS 片段:

&spi0 {
	#address-cells = <1>;
	#size-cells = <0>;

	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins>;

	adc@0 {
		compatible = "ti,ads124s06";
		reg = <0>;
		spi-max-frequency = <1000000>;
		spi-cpha;
		reset-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
	};

};

4.读取值的命令

cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw

请帮帮我

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

    尊敬的 Alex:

    不清楚您打算向 ADS124S08发送什么内容。  发送的第一个序列是0x42 0x00 0x00、这是一个向 INPMUX 寄存器写入值为0的寄存器、用于将多路复用器的 MUXP 和 MUXN 设置为同一输入通道 AIN0。  下一个传输为0x01。  不清楚意图、因为这不是有效的命令。  下一个序列是 RDATA 命令、该命令看起来合适、然后是一串 NOP。

    不清楚的是、如果 START 引脚设置为高电平或发出 START 命令。  ADC 将不会开始转换、除非将其设置为这样做。  如果初始0x01字节应该是 START 命令、则会为该命令发送错误的值。  此外、您必须监控 DRDY、以确保在尝试读取转换结果之前转换已完成。

    此致、
    Bob B

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

    您好、Bob

    我正在调制驱动器

    //#define ADS124S08_START_CONV 0x01
    //#define ADS124S08_STOP_CONV 0x00

    #define ADS124S08_START_CONV 0x08
    #define ADS124S08_STOP_CONV 0x0a

    START 为低电平

    但是、数据转换为0

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

    尊敬的 Alex:

    我没有编写驱动程序、但我现在还记得、停止和启动定义可能会有一些混淆。  我认为0x01和0x00最初是指硬件引脚设置、即使 SPI 通信用于发送命令。  因此、您现在获得它的方式是正确的。

    请记住、您需要等待转换完成。  发出 START 命令后、在 DRDY 从高电平转换为低电平状态之前、转换将不会完成。  根据所选的数据速率和滤波器模式、转换数据准备就绪所需的时间可能比您提供的时间长很多。  数据表第42页的列出了使用低延迟滤波器时转换可用的时间。  默认数据速率为20sps、默认滤波器为低延迟。  因此、数据可用所需的时间将超过56ms、因此基于通信、您等待的时间不够长。  如果分析仪上有一个开放通道、我建议监控 DRDY 引脚、以查看其何时在 START 命令之后转换。  转换后、您可以读取结果。

    另一个注意事项是、您需要确保选择了有效的基准并将其应用于 ADC。

    此致、

    Bob B