AD4000 驱动程序¶
Analog Devices Inc. AD4000 系列 ADC 和类似设备的设备驱动程序。
支持的设备¶
接线连接¶
AD4000 系列设备可以通过几种不同的模式连接到 SPI 主机控制器。
CS 模式,3 线 turbo 模式¶
数据手册中的“3 线”模式最类似于标准的 SPI 连接,对于这些设备而言,包括将控制器 CS 线连接到设备 CNV 引脚,以及像往常一样连接其他 SPI 线。 这种配置在数据手册中(具有误导性地)称为“CS 模式,3 线 Turbo 模式”连接。注意:AD4000 系列的 3 线模式的数据手册定义与标准 spi-3wire 模式不同。 这是唯一允许配置寄存器访问的连接模式,但它要求 SPI 控制器支持 SPI_MOSI_IDLE_HIGH
功能。
在设备树中省略 adi,sdi-pin
属性以选择此模式。
+-------------+
+ ----------------------------------| SDO |
| | |
| +-------------------| CS |
| v | |
| +--------------------+ | HOST |
| | CNV | | |
+--->| SDI AD4000 SDO |-------->| SDI |
| SCK | | |
+--------------------+ | |
^ | |
+--------------------| SCLK |
+-------------+
CS 模式,3 线,无 busy 指示器¶
另一种支持的接线配置称为“3 线”模式,它将 SDI 引脚硬连线到数字输入/输出接口电源 (VIO)。 在这种设置中,控制器不需要支持 SPI_MOSI_IDLE_HIGH
,但无法进行寄存器访问。 这种连接模式节省了一根导线,并且可以与任何 SPI 控制器一起使用。
将 adi,sdi-pin
设备树属性设置为 "high"
以选择此模式。
+-------------+
+--------------------| CS |
v | |
VIO +--------------------+ | HOST |
| | CNV | | |
+--->| SDI AD4000 SDO |-------->| SDI |
| SCK | | |
+--------------------+ | |
^ | |
+--------------------| SCLK |
+-------------+
或者,可以将 GPIO 连接到设备 CNV 引脚。 这与之前的接线配置类似,但节省了 CS 线的使用。
+-------------+
+--------------------| GPIO |
v | |
VIO +--------------------+ | HOST |
| | CNV | | |
+--->| SDI AD4000 SDO |-------->| SDI |
| SCK | | |
+--------------------+ | |
^ | |
+--------------------| SCLK |
+-------------+
CS 模式,4 线,无 busy 指示器¶
在数据手册中的“4 线”模式中,控制器 CS 线连接到 ADC SDI 引脚,GPIO 连接到 ADC CNV 引脚。 这种连接模式可能更适合多个 ADC 可以共享一个 CNV 触发器的场景。
将 adi,sdi-pin
设置为 "cs"
以选择此模式。
+-------------+
+ ----------------------------------| CS |
| | |
| +-------------------| GPIO |
| v | |
| +--------------------+ | HOST |
| | CNV | | |
+--->| SDI AD4000 SDO |-------->| SDI |
| SCK | | |
+--------------------+ | |
^ | |
+--------------------| SCLK |
+-------------+
IIO 设备特性¶
AD4000 系列驱动程序支持差分和伪差分 ADC。
AD4000 系列设备中提供的跨度压缩功能可以通过更改电压通道的 _scale_available
属性来启用/禁用。 请注意,跨度压缩配置需要写入 AD4000 配置寄存器,这只有在 ADC 以 3 线 turbo 模式接线,且 SPI 控制器支持 SPI_MOSI_IDLE_HIGH
时才有可能。 如果不满足这些条件,则不提供 _scale_available
属性。
除此之外,差分和伪差分电压通道呈现略有不同的 sysfs 接口。
伪差分 ADC¶
伪差分 AD4000 系列设备的典型电压通道属性
电压通道属性 |
描述 |
---|---|
|
原始 ADC 输出码。 |
|
将原始值转换为 mV 的偏移量。 |
|
将原始值转换为 mV 的比例因子。 |
|
切换输入跨度压缩 |
差分 ADC¶
差分 AD4000 系列设备的典型电压通道属性
电压通道属性 |
描述 |
---|---|
|
原始 ADC 输出码。 |
|
将原始值转换为 mV 的比例因子。 |
|
切换输入跨度压缩 |
SPI 卸载支持¶
为了能够实现最大采样率,可以将驱动程序与 SPI 卸载引擎一起使用,例如通常存在于 AXI SPI Engine 中的 SPI 卸载引擎,以提供 SPI 卸载支持。
为了跟上 SPI 卸载的传输速度,ADC 必须以 3 线 turbo 模式或 3 线无 busy 指示器模式连接,并且 SPI 控制器 CS 线连接到 CNV 引脚。
当设置为 SPI 卸载支持时,IIO 设备将提供不同的接口。
提供
in_voltage0_sampling_frequency
或in_voltage0-voltage1_sampling_frequency
文件以允许设置采样率。不提供 IIO 触发设备(没有
trigger
目录)。不提供
timestamp
通道。
此外,由于当设备以“3 线”模式接线时,ADC 输出具有一个样本的延迟(延迟),并且在使用 SPI 卸载时每个样本仅完成一次传输,因此缓冲区中的第一个数据样本无效,因为它包含较早转换结果的输出。