linux IIO子系统使用说明
新的内核将ADC/DAC/G_sensor这样的设备统一成IIO子系统,用户层通过访问IIO的接口来实现如ADC的触发、采样等操作。
下面给出IIO接口用户层的接口使用实例(以ADC的采样为例)
1. 方法一:直接读取/sys下的接口
以下方式使用软件写入start的方式,每次触发一次采样
$cat /sys/bus/iio/devices/iio:device0/in_voltagex_raw
这里的x代码不同的通道
获取scale:
$cat /sys/bus/iio/devices/iio\:device0/in_voltage_scale
实际的电压值 = in_voltagex_raw * scale
2. 方法二:通过ADC外部硬件trigger自动读取
这种方式下,每次ADC的触发都需要ADC的trg引脚的电平变化进行
//使能采样通道
$echo 1 > /sys/bus/iio/devices/iio:device0/scan_elements/in_voltage4_en
$cat trigger0/name
//这里读取trigger的名字,作为下一步的输入,名字不匹配将导致cerrent_trigger激活失败
$ echo fc030000.adc-dev0-external_rising > /sys/bus/iio/devices/iio:device0/trigger/current_trigger
$ echo 100 > /sys/bus/iio/devices/iio:device0/buffer/length
$ echo 1 > /sys/bus/iio/devices/iio:device0/buffer/enable
$cat /dev/iio:device0 > /var/adc.bin
每次手动触发adc的外部trigger引脚,上升沿触发,即可得到十六进制的ad采样数据
另外ADC时钟可以通过以下方式设定:
$echo freq > /sys/bus/iio/devices/iio:device0/samping_freq
3. 方法三:sys trigle
这种方式下直接通过软件即可进行一次adc采样触发,不用等待方法二中的外部触发引脚的改变
a. 内核配置里面选中
<*> SYSFS trigger
内核会创建iio_sysfs_trigger 目录
b.
$echo 123 > /sys/bus/iio/devices/iio_sysfs_trigger/add_trigger
这时会在device目录下创建 trigger1 目录,这里trigger0 是默认的硬件触发用的trigger
$echo sysfstrig123 > /sys/bus/iio/devices/iio:device0/trigger/current_trigger
$echo 1 > /sys/bus/iio/devices/iio:device0/scan_elements/in_voltage4_en
$ echo 100 > /sys/bus/iio/devices/iio:device0/buffer/length
$ echo 1 > /sys/bus/iio/devices/iio:device0/buffer/enable
这样每次执行
$echo 1 > /sys/bus/iio/devices/trigger1/trigger_now 就会进行一次采样
注意,trigger0目录下是没有trigger_now
关于iio子系统的驱动分析这里不做说明,后续有时间的话会专门写个系列来介绍。
linux IIO子系统使用说明相关推荐
- 【转】 linux iio子系统
原文网址:http://blog.csdn.net/tsy20100200/article/details/47101661 最近由于工作的需要,接触了Linux iio子系统,对于这个目录其实以前是 ...
- Linux的iio数据流程,linux iio子系统
转自http://blog.csdn.net/tsy20100200/article/details/47101661 最近由于工作的需要,接触了Linux iio子系统,对于这个目录其实以前是很少接 ...
- LINUX IIO子系统分析之五IIO BUFFER子模块实现分析
上一章我们介绍了iio子系统中的iio event模块,本章我们将介绍iio buffer模块,iio buffer主要用于连续数据采集与缓存功能.IIO buffer模块借助IIO DEVICE字符 ...
- 一文带你深入了解Linux IIO 子系统
[推荐阅读] 一文剖析Linux内核中内存管理 分析linux启动内核源码 关于如何快速学好,学懂Linux内核.内含学习路线 工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC ...
- LINUX IIO子系统分析之二 IIO子系统相关数据结构分析
上一章我们简要说明了IIO子系统的架构,本章我们通过数据结构的定义,分析IIO子系统的设计实现,本章的主要内容如下: 一.IIO子系统各数据结构说明 二.数据结构间的关联说明 一.IIO子系统各数据结 ...
- LINUX IIO子系统分析之一 IIO子系统概述
从本章开始,我们进行IIO子系统专栏的分析文档,本次IIO子系统专栏分析文档大概包含如下几章: 一. IIO子系统概述 二.IIO子系统相关数据结构分析 三.iio trigger 介绍 四.iio ...
- LINUX IIO子系统分析之七 虚拟iio device驱动实现
前面几章我们基本完成了IIO子系统的所有内容,而该章即为本专栏的结束篇,主要用来实现一个虚拟的IIO DEVICE DRIVER,本章的内容主要包括如下几部分: 一. 虚拟IIO DEVICE的说明 ...
- LINUX IIO子系统分析之四 IIO EVENT介绍
上一章我们介绍了iio子系统中的iio trigger模块,本章我们将介绍iio event模块,iio event主要用于阈值监测.自由落体监测等监测功能.因为IIO EVENT涉及IIO DEVI ...
- LINUX IIO子系统分析之六 iio device的驱动开发流程说明
前面五章我们基本上把IIO 子系统的内部设计实现均作了说明,本章我们将说明iio device的驱动开发流程,本章的主要内容大致安排如下: 一.IIO子系统的关键技术点总结 二.IIO DEVICE的 ...
最新文章
- 数据结构与算法:04 C#面向对象设计 II
- WCF RIA Service实体类中发复杂类型
- limit mysql 性能_MySQL 用 limit 为什么会影响性能?
- boost::geometry::strategy::distance::thomas用法的测试程序
- linux篇:查看Linux版本号
- thrift服务windows环境编译失败
- 分析 C# 2.0 新特性 -- 空类型(Nullable Types)
- TIOBE 2月编程语言排行榜新鲜出炉!C# 获3.08%增长率!
- 数据结构-树3-红黑树
- 【12-05】面试题
- 【java学习之路】(java SE篇)(练习)集合练习:经典例题
- c语言利用fun求最小值,2015年计算机二级《C语言》精选练习题及答案(1)
- h264和aac 封装成flv
- 【GMS认证】关于GSI和VTS解锁刷镜像命令总结
- jlink烧写linux内核,如何利用JLINK烧写U-boot到NAND Flash中
- arris sbr-ac1900p/sbr-ac3200p梅林固件
- 金山小火车【转自官网】(如果错误,请留言)
- 宽带连接连接被远程计算机终止win10,Win10宽带无法连接提示“调制解调器报告了一个错误”怎么解决?...
- 如何利用渠道码活码精准引流
- WTL_Freecell-Release05-v1.3-20190129 (WTL空当接龙v1.3)
热门文章
- JZOJ5399. 【NOIP2017提高A组模拟10.7】Confess bitset
- 人脸对齐LBF(二)
- 计算机病毒中英文,计算机网络病毒与防范 中英文.doc
- 怎么将CAD转换为JPG格式?CAD格式转换轻松教你搞定!
- squid代理-----透明代理模式
- Go语言教程[一、Go语言概述]
- 发现无法解决的相同从属程序集的不同版本之间的冲突
- 生成带参数的2维码(微信2次开发)
- 自然语言处理简介(1)---- 服务梳理与传统汉语分词
- Caused by: java.lang.NullPointerException: Location is required解决办法