AD7380 驅動程式

Analog Devices Inc. AD7380 及類似裝置的 ADC 驅動程式。模組名稱為 ad7380

支援的裝置

該驅動程式支援以下晶片

支援的特性

SPI 接線模式

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

參考電壓

ad7380-4

ad7380-4 僅支援外部參考電壓(2.5V 至 3.3V)。必須在裝置樹中宣告為 refin-supply

ad7389-4

ad7389-4 僅支援內部參考電壓。在這種情況下,refin-supplyrefio-supply 屬性都被省略。

ADAQ 裝置

ADAQ 裝置沒有外部參考,但使用從其電源之一(refin-supply)匯出的 3.3V 內部參考。

ad738x 系列中的所有其他裝置

ad738x 系列中的所有其他裝置支援 2 種可能的參考電壓源

  • 內部參考 (2.5V)

  • 外部參考 (2.5V 至 3.3V)

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

過取樣和解析度提升

此係列支援 2 種類型的過取樣:正常平均和滾動平均。驅動程式僅支援正常平均,因為滾動平均可以透過處理捕獲的資料緩衝區來實現。以下比率可用:1(停用過取樣)/2/4/8/16/32。

當啟用片上過取樣功能時,ADC 的效能可以超過預設解析度。為了適應可實現的的效能提升,可以啟用額外的兩位解析度。因為只有在啟用過取樣時才能啟用解析度提升功能,並且如果沒有解析度提升,過取樣就沒有那麼有用,所以如果啟用過取樣,驅動程式會自動啟用解析度提升。

由於解析度提升功能會導致 16 位晶片現在具有 18 位資料,這意味著 storagebits 必須從 16 位更改為 32 位,因此我們使用新的 ext_scan_type 功能來允許在執行時更改 scan_type。不幸的是,libiio 不支援它。因此,當啟用或停用過取樣時,使用者必須使用以下命令重新啟動 iiod

root:~# systemctl restart iiod

警告

ad738x 系列的 2 通道變體,當配置為 1 SDO 線模式時,可以使用 SDOB 線作為警報引腳。4 通道變體,當配置為 1 或 2 SDO 線模式時,可以使用 SDOD 作為警報引腳,但驅動程式目前僅支援 1 SDO 線模式(參見SPI 接線模式)。

在轉換結束時,如果轉換結果超過警報上限或低於警報下限,則會斷言低電平有效的警報引腳。它在 CS 的下降沿被清除。警報引腳是所有通道共用的。

使用者可以使用常規 iio 事件屬性啟用警報

events/thresh_either_en

高和低閾值是所有通道共用的,也可以使用常規 iio 事件屬性進行設定

events/in_thresh_falling_value
events/in_thresh_rising_value

如果 debugfs 可用,使用者可以讀取 ALERT 暫存器來確定故障通道和方向。

在大多數用例中,使用者會將警報引腳硬連線以觸發關機。

通道選擇和序列器(僅限單端晶片)

該系列的單端晶片 (ad7386/7/8(-4)) 在每個 ADC 前面都有一個 2:1 多路複用器。它們還包括額外的配置暫存器,允許手動選擇或自動切換(序列器模式)多路複用器輸入。

從 IIO 的角度來看,所有輸入都被匯出,即 ad7386/7/8 匯出 4 個通道,而 ad7386-4/7-4/8-4 匯出 8 個通道。

多路複用器的輸入 AinX0 對應於 IIO 通道的前半部分(即 0-1 或 0-3),而輸入 AinX1 對應於後半部分(即 2-3 或 4-7)。AD7386/7/8(2 通道部件)的示例

   IIO   | AD7386/7/8
         |         +----------------------------
         |         |     _____        ______
         |         |    |     |      |      |
voltage0 | AinA0 --|--->|     |      |      |
         |         |    | mux |----->| ADCA |---
voltage2 | AinA1 --|--->|     |      |      |
         |         |    |_____|      |_____ |
         |         |     _____        ______
         |         |    |     |      |      |
voltage1 | AinB0 --|--->|     |      |      |
         |         |    | mux |----->| ADCB |---
voltage3 | AinB1 --|--->|     |      |      |
         |         |    |_____|      |______|
         |         |
         |         +----------------------------

當啟用序列器模式時,有效取樣率將除以 2。

增益(僅限 ADAQ 裝置)

ADAQ 裝置在每個 ADC 前面都有一個引腳可選的增益。可以使用 adi,gain-milli 屬性從裝置樹中選擇適當的增益。有關引腳接線,請參閱資料表的典型連線圖部分。

未實現的特性

  • 2/4 SDO 線

  • 滾動平均過取樣

  • 掉電模式

  • CRC 指示

SPI 解除安裝支援

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

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

  • trigger 目錄將被刪除。

  • 添加了 in_voltage0_sampling_frequency 屬性,用於設定取樣率。

  • 添加了 in_voltage0_sampling_frequency_available 屬性,用於查詢最大采樣率。

  • timestamp 通道將被刪除。

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

裝置緩衝區

此驅動程式支援 IIO 觸發的緩衝區。

有關更多資訊,請參見 工業 IIO 裝置緩衝區