AD7606 驱动程序

用于 Analog Devices Inc. AD7606 和类似设备的 ADC 驱动程序。模块名称为 ad7606

支持的设备

该驱动程序支持以下芯片

支持的功能

SPI 接线模式

这些 ADC 可以在多个 SDO 线(1/2/4/8)上输出数据。驱动程序目前仅支持 1 条 SDO 线。

并行接线模式

还有一个并行接口,具有 16 条线(在字节模式下可以减少到 8 条)。通过在设备树中将设备声明为平台(未定义 io-backends 节点,请参见下文)来选择并行接口。

IIO-后端模式

此模式允许达到最佳采样率,但它需要外部硬件(例如 HDL 或 APU)来处理低级通信。当通过设备树中“io-backends”属性的定义启用后端模式时。

当前 IIO-后端模式实现的参考配置是 ADI 提供的 HDL 参考:https://wiki.analog.com/resources/eval/user-guides/ad7606x-fmc/hdl

此实现嵌入了一个 IIO-后端兼容 IP(adi-axi-adc)和一个连接到转换触发引脚的 PWM。

+---+                                       +----------------------------
|   |               +-------+               |AD76xx
| A |  controls     |       |               |
| D |-------------->|  PWM  |-------------->| cnvst
| 7 |               |       |               |
| 6 |               +-------+               |
| 0 | controls  +-----------+-----------+   |
| 6 |---------->|           |           |<--| frstdata
|   |           | Backend   |  Backend  |<--| busy
| D |           | Driver    |           |   |
| R |           |           |           |-->| clk
| I |  requests |+---------+| DMA       |   |
| V |----------->|  Buffer ||<----      |<=>| DATA
| E |           |+---------+|           |   |
| R |           +-----------+-----------+   |
|   |-------------------------------------->| reset/configuration gpios
+---+                                       +-----------------------------

软件和硬件模式

虽然所有 AD7606/AD7616 系列部件都可以使用 GPIO 进行配置,但其中一些可以使用寄存器进行配置。

支持软件模式的芯片具有更多可用于配置设备的值,以及更多设置,并允许控制每个通道的范围和校准。

软件模式下每个通道可以使用以下设置
  • 比例

此外,在软件模式下,过采样率的选择范围更广。

转换触发

可以通过两种不同的方式触发转换

  • 一个 GPIO 连接到转换触发引脚,并且此 GPIO 由驱动程序直接控制。在此配置中,驱动程序在读取所有转换后立即将转换触发引脚设置回高电平。

  • 外部源连接到转换触发引脚。在当前的实现中,它必须是 PWM。在此配置中,驱动程序不直接控制转换触发引脚。相反,它可以控制 PWM 的频率。此触发器仅对 iio-后端启用。

参考电压

支持 2 种可能的参考电压源

  • 内部参考 (2.5V)

  • 外部参考 (2.5V)

源由设备树确定。如果存在 refin-supply,则使用外部参考,否则使用内部参考。

过采样

此系列支持过采样以提高 SNR。在软件模式下,可以使用以下比率:1(禁用过采样)/2/4/8/16/32/64/128/256。

未实现的功能

  • 2/4/8 SDO 线

  • CRC 指示

  • 校准

设备缓冲区

IIO 触发缓冲区

此驱动程序支持 IIO 触发缓冲区,带有“内置”触发器,即触发器由驱动程序分配和链接,并且一旦传输了样本,就会触发新的转换,并添加时间戳通道以弥补中断处理延迟引起的潜在抖动。

IIO 后端缓冲区

使用 IIO 后端时,不需要触发器,并且采样率被认为是稳定的。没有时间戳通道。通信被委托给外部逻辑,称为后端,而后端的驱动程序处理缓冲区。启用此模式后,驱动程序无法控制转换引脚,因为忙引脚绑定到后端。