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