4.5.17. ADC 测试
4.5.17.1. 测试原理
ADC(Analog-to-Digital Converter)测试
ADC 测试adc_test.sh 支持
单次
采样(Single) :通过 sysfs 接口逐次 读取 指定 通道 的 原始 值,适用 于 低频 采样 场景。每次 读取 in_voltageN_raw获取当前 ADC 原始 值。 连续
采样(Continuous) :通过 IIO buffer 机制实现 高速 连续 采样。启用 指定 通道 的 buffer 后,从 字符 设备 /dev/iio:device0读取连续 数据流,适用 于 高频 采样 和 压力 测试 场景。
电压
电压(mV) = raw × vol_scale
其中 vol_scale 从 in_voltage_scale 读取(单位 mV/LSB),由vol_scale = 1800 / 1024 ≈ 1.7578 mV/LSB。
4.5.17.2. 准备工作
脚本使用说明
adc_test.sh 支持-h 参数
# ./adc_test.sh -h
usage: ./adc_test.sh <channel{3-7}> [-m mode] [-n count] [-i interval]
channel ADC channel number (3-7)
-m mode sample mode: single (default) / continuous
-n count sample count, 0=infinite (default: 0)
-i interval sample interval in seconds for single mode (default: 1)
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
channel |
ADC 通道 |
必填 |
-m mode |
采样single(单次continuous(连续 |
single |
-n count |
采样 |
0 |
-i interval |
采样 |
1 |
注意事项
确认 IIO 设备
文件 存在: # ls /sys/bus/iio/devices/iio:device0/应
包含 in_voltageN_raw、in_voltage_scale等节点。 连续
采样 模式 需要 IIO buffer 和 字符 设备 支持,确认 以下 路径 存在: /sys/bus/iio/devices/iio:device0/buffer0/ /dev/iio:device0
测试
前 需 确认 待测 通道 对应 的 引脚 位置,参考 X5 EVB 原理图 找到 ADC 通道 引脚 与 连接器 位置,并 接入 待测 电压 信号。 ADC 输入
电压 范围 取决于 参考 电压(vref),请勿 超过 量程,否则 可能 损坏 芯片。
4.5.17.3. 测试步骤
单次采样测试
单次
基本
# ./adc_test.sh 3
输出
========================================
ADC Test Info
========================================
Channel : 3
Mode : single
IIO Device : 34190000.adc
Scale : 1.757812500
ADC Clock : 9523810 Hz
ADC APB Clk : 200000000 Hz
Count : infinite
Interval : 1s
========================================
Press Ctrl+C for quit
[0] vol_raw:500 vol:878.90 mV
[1] vol_raw:501 vol:880.66 mV
[2] vol_raw:500 vol:878.90 mV
^C
=== Statistics ===
Samples: 3
Raw - min: 500 max: 501 avg: 500
Volt - min: 878.90 max: 880.66 avg: 879.48 mV
指定
# ./adc_test.sh 3 -n 10 -i 0.5
采样 10 次后
连续采样测试
连续
指定
# ./adc_test.sh 3 -m continuous -n 100
输出
========================================
ADC Test Info
========================================
Channel : 3
Mode : continuous
IIO Device : 34190000.adc
Scale : 1.757812500
ADC Clock : 9523810 Hz
ADC APB Clk : 200000000 Hz
Count : 100
========================================
Press Ctrl+C for quit
[0] vol_raw:500 vol:878.90 mV
[1] vol_raw:501 vol:880.66 mV
[2] vol_raw:500 vol:878.90 mV
...
[99] vol_raw:500 vol:878.90 mV
=== Statistics ===
Samples: 100
Raw - min: 498 max: 502 avg: 500
Volt - min: 875.38 max: 882.42 avg: 878.90 mV
无限
# ./adc_test.sh 3 -m continuous
采样
4.5.17.4. 测试指标
输出信息说明
测试
| 字 |
说明 |
|---|---|
| Channel | 当前 |
| Mode | 采样 |
| IIO Device | IIO 设备 |
| Scale | 电压 |
| ADC Clock | ADC 主 |
| ADC APB Clk | ADC APB 时钟 |
| Count | 采样 |
| Interval | 采样 |
采样
| 字 |
说明 |
|---|---|
| Samples | 实际 |
| Raw min/max/avg | 原始 |
| Volt min/max/avg | 电压 |
结果判定
功能
正常 :脚本能够 正常 打印 采样 值 和 统计 信息,采样 值 在 预期 范围 内(根据 输入 电压 计算)。 精度
正常 :统计信息 中 raw 值 的 波动 范围(max - min)应较 小(通常 ≤ 10 LSB),表明 ADC 采样 稳定。 异常
判定 :若脚
本报 错 退出(如 设备 文件 不 存在),检查 驱动 是否 正常 加载、设备树 是否 使能 ADC 节点。 若
采样 值 持续 为 0 或 满量程(1023),检查 通道 引脚 连接 是否 正确、输入 信号 是否 在 量程 范围 内。 若
连续 采样 模式 报错,检查 IIO buffer 和 /dev/iio:device0字符设备 是否 可用。