1443|5

241

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【Luckfox幸狐 RV1106 Linux 开发板】6-ADC测试 [复制链接]

 
本帖最后由 qiao--- 于 2024-2-19 15:45 编辑

前言:本期测评ADC的功能。在Linux系统中有一个框架是专门管理传感器ADC等模拟量的框架,他就是IIO框架。IIO(Industrial I/O)框架是一个用于Linux系统的通用I/O子系统,用于管理和控制各种工业设备和传感器。IIO 子系统通过 sysfs 文件系统和用户空间提供了统一的接口,允许用户轻松地访问和配置模拟设备。这意味着应用程序可以使用标准的 Linux 文件I/O操作来与传感器和模拟设备进行通信。

 

 

Luckfox幸狐 RV1106 Linux 开发板的引脚分布图如下,我圈出的两个引脚具有ADC的功能。

  开发板默认开启了 ADC 接口,测量范围为0V~1.8V,我们用串口登录到系统可以查看对应IIO的文件系统接口,他在文件系统的/sys/bus/iio/devices/目录下

 

这个IIO设备下记录着这个设备的一些相关属性,我们可以进去查看一下

 

在这个目录中,主要用到的文件是in_voltage0_raw 、 in_voltage1_raw 和 in_voltage_scale这三个文件,其中in_voltage0_raw和in_voltage1_raw文件分别记录着上面我们所查看的两个引脚的电压值,而in_voltage_scale 文件包含了一个比例因子,可以将原始电压值转换为实际电压值。可以使用cat命令查看他是多少

 

为了方面编写测试程序,这里我选择用脚本的方式来编写示例代码,这样的好处是我们只需要在板子的终端上编写代码,而不需要去交叉编译。

而我们的示例代码也非常的简单,我们只需要读取in_voltage0_raw 、 in_voltage1_raw 这两个文件里面的数值,然后再将他们与比例因子相乘就是实际电压值了。

我们在系统中新建一个adc_tset.sh脚本

 

编写如下的脚本,脚本的功能就是读取in_voltage0_raw 、 in_voltage1_raw 这两个文件里面的数值,然后再将他们与比例因子相乘打印出来

 

脚本代码:

#!/bin/sh

echo "Press Ctrl+C to quit"
ADC_DIR="/sys/bus/iio/devices/iio:device0"

while true
do
    scale_value=$(cat "$ADC_DIR/in_voltage_scale")
    IN0_raw_value=$(cat "$ADC_DIR/in_voltage0_raw")
    IN1_raw_value=$(cat "$ADC_DIR/in_voltage1_raw")
    IN0_voltage=$(awk -v raw="$IN0_raw_value" -v scale="$scale_value" 'BEGIN { printf "%.6f\n", raw * scale / 1000 }')
    IN1_voltage=$(awk -v raw="$IN1_raw_value" -v scale="$scale_value" 'BEGIN { printf "%.6f\n", raw * scale / 1000 }')
    echo "IN0_Voltage: $IN0_voltage V,IN1_Voltage: $IN1_voltage V"
    sleep 1
done

赋予这个脚本可执行的权限

 chmod 777 adc_test.sh

最后运行这个脚本即可看到如下的实验现象:

 

视频效果如下:

IMG_8520

 

总结:通过对系统IIO设备接口的读写可以轻松的读取io通道的实际电压。

最新回复

IIO做一些数据状态还可以,我们实际项目使用也不会改,直接C++里面调用文件读取获得这个值,低频操作   详情 回复 发表于 2024-2-21 09:28
点赞(1) 关注(1)
 
 

回复
举报

7159

帖子

2

TA的资源

版主

沙发
 

看结果好像漂移不是很厉害,mV级别的漂移。

点评

感觉还好,算1.8V挺稳定的 [attachimg]787236[/attachimg]    详情 回复 发表于 2024-2-20 16:24
 
 
 

回复

241

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
wangerxian 发表于 2024-2-19 18:04 看结果好像漂移不是很厉害,mV级别的漂移。

感觉还好,1.8V算挺稳定的

 

点评

可以测试一下采样率最快能达到多少。  详情 回复 发表于 2024-2-20 17:18
 
 
 

回复

7159

帖子

2

TA的资源

版主

4
 
qiao--- 发表于 2024-2-20 16:24 感觉还好,1.8V算挺稳定的  

可以测试一下采样率最快能达到多少。

 
 
 

回复

365

帖子

0

TA的资源

版主

5
 

IIO做一些数据状态还可以,我们实际项目使用也不会改,直接C++里面调用文件读取获得这个值,低频操作

点评

是这样的    详情 回复 发表于 2024-2-29 19:05
 
 
 

回复

241

帖子

0

TA的资源

纯净的硅(初级)

6
 
LitchiCheng 发表于 2024-2-21 09:28 IIO做一些数据状态还可以,我们实际项目使用也不会改,直接C++里面调用文件读取获得这个值,低频操作

是这样的

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
全球4G进展一览 与 中国4G计划

全球4G进展一览 同3G等已有的数字移动通信系统相比,4G系统应具有更高的数据率、更好的业务质量(QoS)、更高的频谱利用率、更高的 ...

uCOS51 移植心得

今天我也传点东西吧,是巨龙公司系统集成开发部杨屹写的。

c2000v6.1

ccs中利用controlsuite无法导入c2000 launchpad的工程。提示 please install the c2000v6.1 compiler before importing this pro ...

【麦昆试用】麦昆的几种超声波传感器程序精度对比

目的 对比几种超声波传感器的测试精度,为大家使用提供参考。 方法 将不同程序写入microbit,用麦昆的超声波传感器测试距离 ...

Verilog 中的 ^ 的用法

464103 464103

AD走线的时候是网格线,有没有实心的线?

474029

PyPortal天气和时钟显示器

494962 使用CircuitPython的PyPortal Pynt时钟/天气显示屏,带有RTC,支持NTP自动校时。 https://github.com/imek ...

在学习RCD电路工作原理中,请问这个积蓄在寄生电感中的能量,这个寄生电感

是开关管的寄生电感吗? 626540 然后我看到的PFC电路中有一个类似于RCD功能的电路,这个黑色圈圈中的是RCD电路吗?为什么 ...

用信号发生器仪器调制DC直流源高压信号是否可行?

用信号发生器仪器调制DC直流源高压信号是否可行? 压电陶瓷换能器驱动,需要24V&1.7M的正弦波信号,信号发生器输出不了那么 ...

【Follow me第二季第1期】创意任务一:有创意的可穿戴装饰

本帖最后由 nemon 于 2024-8-31 19:10 编辑 创意任务一的要求是,做一个可穿戴装饰。 我的想法是做一个报警器:平时显示彩 ...

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表