# 概述

AIC-3568JT开发板上的AD接口有两种，分别为：tsadc、saradc。TSADC为温度传感器，其中SARADC的分辨率一般为8位至16位，具有低功耗、小尺寸等特点。这些特点使该类型ADC具有很宽的应用范围,例如便携/电池供电仪表、笔输入量化器、工业控制和数据/信号采集等。

IIO (Industrial I/O)是用于模拟数字转换器(adc)和各种类型传感器的子系统。下面以SARADC为例介绍使用Shell脚本对电压进行采集。

# ADC使用

## 配置介绍

板级使能saradc,配置位置：arch/arm64/boot/dts/rockchip/aukun-utx-rk3568-base.dtsi

```bash
&saradc{

status>

vref-supply>

};
```

## 实验调用

ADC采样属于IIO子系统下，可以通过SYSFS提供的接口来访问ADC控制器读取ADC的模数转换值。

1、安装shell运算工具

```bash
sudo apt install bc
```

2、查看ADC控制器

ls/sys/bus/iio/devices/iio:device0/
![](/upload/public/wiki/markdown/01ea7b6a8fcd42eca76b0064114913c7/1792993147811_image.png)

3、vol\_result 为用户所需要采集的电压，in\_voltage1\_raw为读取adc数据的原始数值，in\_voltage\_scale为adc数据与电压值换算比例。二者相乘即为实际电压数据：

```bash
vol\_result=in\_voltage3\_raw\*in\_voltage3\_scale

```

shell脚本如下：

```bash
while true
do
         vol_raw=$(cat /sys/bus/iio/devices/iio:device0/in_voltage1_raw)
         vol_scale=$(cat /sys/bus/iio/devices/iio:device0/in_voltage_scale)
         vol_result=$(echo "scale=2; $vol_raw*$vol_scale/1000" | bc -l )
         echo "采集值:$vol_raw,实际电压:$vol_result V"
         sleep 3s
done

```

![](/upload/public/wiki/markdown/28a7069d21ff493c8cee3f9ccff31525/1792993161499_image.png)
