AIC-3568JT 开发板上的 AD 接口有两种,分别为:tsadc、saradc。TSADC为温度传感器,其中SARADC 的分辨率一般为 8 位至 16 位,具有低功耗、小尺寸等特点。这些特点使该类型 ADC 具有很宽的应用范围,例如便携/电池供电仪表、笔输入量化器、工业控制和数据/信号采集等。
IIO (Industrial I/O)是用于模拟数字转换器(adc)和各种类型传感器的子系统。下面以SARADC为例介绍使用Shell脚本对电压进行采集。
板级使能saradc,配置位置:arch/arm64/boot/dts/rockchip/aukun-utx-rk3568-base.dtsi
&saradc { status = "okay"; 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脚本如下:
#!/bin/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
Copyright © 2022-2030 aukun.cn 合肥奥鲲电子科技版权所有 皖ICP备2023002494号-1