AD7606 驅動

用於 Analog Devices Inc. AD7606 和類似裝置的 ADC 驅動。模組名稱為 ad7606

支援的裝置

此驅動程式支援以下晶片

支援的功能

SPI 接線模式

這些 ADC 可以在多個 SDO 線上輸出資料 (1/2/4/8)。該驅動程式目前僅支援 1 條 SDO 線。

SPI 解除安裝接線

與 SPI 解除安裝一起使用時,支援的接線配置為

+-------------+         +-------------+
|        BUSY |-------->| TRIGGER     |
|          CS |<--------| CS          |
|             |         |             |
|     ADC     |         |     SPI     |
|             |         |             |
|         SDI |<--------| SDO         |
|       DOUTA |-------->| SDI         |
|        SCLK |<--------| SCLK        |
|             |         |             |
|             |         +-------------+
|      CONVST |<--------| PWM         |
+-------------+         +-------------+

在這種情況下,需要 pwms 屬性。 還需要 #trigger-source-cells = <1> 屬性以連接回 SPI 解除安裝。 SPI 解除安裝將具有 trigger-sources 屬性,其中包含一個單元格來指示繁忙訊號:<&ad7606 AD4695_TRIGGER_EVENT_BUSY>

並行接線模式

還有一個並行介面,有 16 條線(可以在位元組模式下減少到 8 條)。 透過在裝置樹中將裝置宣告為平臺(沒有定義 io-backends 節點,見下文)來選擇並行介面。

IIO-backend 模式

此模式允許達到最佳取樣率,但它需要外部硬體(例如 HDL 或 APU)來處理底層通訊。 透過在裝置樹中定義“io-backends”屬性來啟用後端模式。

當前 IIO-backend 模式實現的參考配置是 ADI 提供的 HDL 參考:https://wiki.analog.com/resources/eval/user-guides/ad7606x-fmc/hdl

此實現嵌入了一個 IIO-backend 相容 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-backend 啟用此觸發器。

參考電壓

支援 2 種可能的參考電壓源

  • 內部參考 (2.5V)

  • 外部參考 (2.5V)

源由裝置樹確定。 如果存在 refin-supply,則使用外部參考,否則使用內部參考。

過取樣

此係列支援過取樣以提高 SNR。 在軟體模式下,以下比率可用:1(停用過取樣)/2/4/8/16/32/64/128/256。

未實現的功能

  • 2/4/8 SDO 線

  • CRC 指示

  • 校準

SPI 解除安裝支援

為了能夠達到最大采樣率,該驅動程式可以與 AXI SPI 引擎 一起使用以提供 SPI 解除安裝支援。

當使用 SPI 解除安裝時,某些屬性將有所不同。

  • trigger 目錄將被刪除。

  • 新增 sampling_frequency 屬性用於設定取樣率。

  • timestamp 通道將被刪除。

  • 與不使用解除安裝時相比,緩衝區資料格式可能有所不同,例如 in_voltage0_type 屬性。

裝置緩衝區

IIO 觸發緩衝區

此驅動程式支援 IIO 觸發緩衝區,帶有“內建”觸發器,即觸發器由驅動程式分配和連結,並且一旦傳輸樣本,就會觸發新的轉換,並且添加了一個時間戳通道,以彌補中斷處理延遲引起的潛在抖動。

IIO 後端緩衝區

當使用 IIO 後端時,不需要觸發器,並且取樣率被認為是穩定的。 沒有時間戳通道。 通訊委託給外部邏輯,稱為後端,後端的驅動程式處理緩衝區。 啟用此模式後,驅動程式無法控制轉換引腳,因為 busy 引腳繫結到後端。