概述
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
&saradc{
status>
vref-supply>
};
实验调用
ADC采样属于IIO子系统下,可以通过SYSFS提供的接口来访问ADC控制器读取ADC的模数转换值。
1、安装shell运算工具
sudo apt install bc
2、查看ADC控制器
ls/sys/bus/iio/devices/iio:device0/
3、vol_result 为用户所需要采集的电压,in_voltage1_raw为读取adc数据的原始数值,in_voltage_scale为adc数据与电压值换算比例。二者相乘即为实际电压数据:
vol\_result=in\_voltage3\_raw\*in\_voltage3\_scale
shell脚本如下:
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