ADXL380 驅動程式¶
此驅動程式支援透過 SPI/I2C 匯流排連線的 Analog Devices ADXL380/382。
1. 支援的裝置¶
ADXL380/ADXL382 是一款低噪聲密度、低功耗、3 軸加速度計,具有可選測量範圍。ADXL380 支援 ±4 g、±8 g 和 ±16 g 範圍,ADXL382 支援 ±15 g、±30 g 和 ±60 g 範圍。
2. 裝置屬性¶
始終提供加速度計測量值。
還提供溫度資料。此資料可用於監測內部系統溫度,或透過校準提高裝置的溫度穩定性。
每個 IIO 裝置在 /sys/bus/iio/devices/iio:deviceX 下都有一個裝置資料夾,其中 X 是裝置的 IIO 索引。這些資料夾下包含一組裝置檔案,具體取決於相關硬體裝置的特性和功能。這些檔案在 IIO ABI 文件中得到了一致的通用化和記錄。
下表顯示了在特定裝置資料夾路徑 /sys/bus/iio/devices/iio:deviceX 中找到的 adxl380 相關裝置檔案。
3 軸加速度計相關裝置檔案 |
描述 |
in_accel_scale |
加速度計通道的刻度。 |
in_accel_filter_high_pass_3db_frequency |
低通濾波器頻寬。 |
in_accel_filter_high_pass_3db_frequency_available |
可用低通濾波器頻寬配置。 |
in_accel_filter_low_pass_3db_frequency |
高通濾波器頻寬。 |
in_accel_filter_low_pass_3db_frequency_available |
可用高通濾波器頻寬配置。 |
in_accel_x_calibbias |
X 軸加速度計通道的校準偏移。 |
in_accel_x_raw |
X 軸加速度計通道原始值。 |
in_accel_y_calibbias |
Y 軸加速度偏移校正 |
in_accel_y_raw |
Y 軸加速度計通道原始值。 |
in_accel_z_calibbias |
Z 軸加速度計通道的校準偏移。 |
in_accel_z_raw |
Z 軸加速度計通道原始值。 |
溫度感測器相關檔案 |
描述 |
in_temp_raw |
溫度通道原始值。 |
in_temp_offset |
溫度感測器通道的偏移。 |
in_temp_scale |
溫度感測器通道的刻度。 |
其他裝置檔案 |
描述 |
名稱 |
IIO 裝置的名稱。 |
sampling_frequency |
當前選定的取樣率。 |
sampling_frequency_available |
可用取樣頻率配置。 |
通道處理後的值¶
通道值可以從其 _raw 屬性讀取。返回的值是裝置報告的原始值。要獲取通道的處理值,請應用以下公式
processed value = (_raw + _offset) * _scale
其中 _offset 和 _scale 是裝置屬性。如果不存在 _offset 屬性,則簡單地假定其值為 0。
ADXL380 驅動程式提供 2 種類型通道的資料,下表顯示了由 IIO 框架定義的處理值的測量單位
通道型別 |
測量單位 |
X、Y、Z 軸加速度 |
米每二次方秒 |
溫度 |
毫攝氏度 |
使用示例¶
顯示裝置名稱
root:/sys/bus/iio/devices/iio:device0> cat name
adxl382
顯示加速度計通道值
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_raw
-1771
root:/sys/bus/iio/devices/iio:device0> cat in_accel_y_raw
282
root:/sys/bus/iio/devices/iio:device0> cat in_accel_z_raw
-1523
root:/sys/bus/iio/devices/iio:device0> cat in_accel_scale
0.004903325
X 軸加速度 = in_accel_x_raw * in_accel_scale = −8.683788575 m/s^2
Y 軸加速度 = in_accel_y_raw * in_accel_scale = 1.38273765 m/s^2
Z 軸加速度 = in_accel_z_raw * in_accel_scale = -7.467763975 m/s^2
設定加速度計通道的校準偏移
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_calibbias
0
root:/sys/bus/iio/devices/iio:device0> echo 50 > in_accel_x_calibbias
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_calibbias
50
設定取樣頻率
root:/sys/bus/iio/devices/iio:device0> cat sampling_frequency
16000
root:/sys/bus/iio/devices/iio:device0> cat sampling_frequency_available
16000 32000 64000
root:/sys/bus/iio/devices/iio:device0> echo 32000 > sampling_frequency
root:/sys/bus/iio/devices/iio:device0> cat sampling_frequency
32000
設定加速度計通道的低通濾波器頻寬
root:/sys/bus/iio/devices/iio:device0> cat in_accel_filter_low_pass_3db_frequency
32000
root:/sys/bus/iio/devices/iio:device0> cat in_accel_filter_low_pass_3db_frequency_available
32000 8000 4000 2000
root:/sys/bus/iio/devices/iio:device0> echo 2000 > in_accel_filter_low_pass_3db_frequency
root:/sys/bus/iio/devices/iio:device0> cat in_accel_filter_low_pass_3db_frequency
2000
3. 裝置緩衝區¶
此驅動程式支援 IIO 緩衝區。
所有裝置都支援使用緩衝區檢索原始加速度和溫度測量值。
使用示例¶
選擇用於緩衝區讀取的通道
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_x_en
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_y_en
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_z_en
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_temp_en
設定要儲存在緩衝區中的樣本數量
root:/sys/bus/iio/devices/iio:device0> echo 10 > buffer/length
啟用緩衝區讀取
root:/sys/bus/iio/devices/iio:device0> echo 1 > buffer/enable
獲取緩衝資料
root:/sys/bus/iio/devices/iio:device0> hexdump -C /dev/iio\:device0
...
002bc300 f7 e7 00 a8 fb c5 24 80 f7 e7 01 04 fb d6 24 80 |......$.......$.|
002bc310 f7 f9 00 ab fb dc 24 80 f7 c3 00 b8 fb e2 24 80 |......$.......$.|
002bc320 f7 fb 00 bb fb d1 24 80 f7 b1 00 5f fb d1 24 80 |......$...._..$.|
002bc330 f7 c4 00 c6 fb a6 24 80 f7 a6 00 68 fb f1 24 80 |......$....h..$.|
002bc340 f7 b8 00 a3 fb e7 24 80 f7 9a 00 b1 fb af 24 80 |......$.......$.|
002bc350 f7 b1 00 67 fb ee 24 80 f7 96 00 be fb 92 24 80 |...g..$.......$.|
002bc360 f7 ab 00 7a fc 1b 24 80 f7 b6 00 ae fb 76 24 80 |...z..$......v$.|
002bc370 f7 ce 00 a3 fc 02 24 80 f7 c0 00 be fb 8b 24 80 |......$.......$.|
002bc380 f7 c3 00 93 fb d0 24 80 f7 ce 00 d8 fb c8 24 80 |......$.......$.|
002bc390 f7 bd 00 c0 fb 82 24 80 f8 00 00 e8 fb db 24 80 |......$.......$.|
002bc3a0 f7 d8 00 d3 fb b4 24 80 f8 0b 00 e5 fb c3 24 80 |......$.......$.|
002bc3b0 f7 eb 00 c8 fb 92 24 80 f7 e7 00 ea fb cb 24 80 |......$.......$.|
002bc3c0 f7 fd 00 cb fb 94 24 80 f7 e3 00 f2 fb b8 24 80 |......$.......$.|
...
有關緩衝資料如何構建的更多資訊,請參閱 Documentation/iio/iio_devbuf.rst。
4. IIO 介面工具¶
有關可用 IIO 介面工具的描述,請參閱 Documentation/iio/iio_tools.rst。