概述

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

  1. &saradc{
  2. status>
  3. vref-supply>
  4. };

实验调用

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

1、安装shell运算工具

  1. sudo apt install bc

2、查看ADC控制器

ls/sys/bus/iio/devices/iio:device0/ ADC使用 - 图1

3、vol_result 为用户所需要采集的电压,in_voltage1_raw为读取adc数据的原始数值,in_voltage_scale为adc数据与电压值换算比例。二者相乘即为实际电压数据:

  1. vol\_result=in\_voltage3\_raw\*in\_voltage3\_scale

shell脚本如下:

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

ADC使用 - 图2