Linux I2C工具查看配置I2C设备【转】
转自:http://blog.chinaunix.net/uid-26895763-id-3478882.html
在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – i2c tools。先到lm-sensors下載soure code,然後cross compile成arm的執行檔,就可以放到板子來試試看了。
i2c-tools中含有四個執行檔
i2cdetect – 用來列舉I2C bus和上面所有的裝置
i2cdump – 顯示裝置上所有register的值
i2cget – 讀取裝置上某個register的值
i2cset – 寫入裝置上某個register
以下是我用beagleboard得到的結果
root@android:/temp # ./i2cdetect -l
i2c-1 i2c OMAP I2C adapter I2C adapter
i2c-2 i2c OMAP I2C adapter I2C adapter
i2c-3 i2c OMAP I2C adapter I2C adapter
原來beagleboad上有三組I2C bus。
i2cdetect也可以用來看bus上有那些裝置
root@android:/temp # ./i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU UU UU UU -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
這表示bus上有四備裝置,位址分別是0×48, 0×49, 0x4a, 0x4b。
我們要找的是codec,beagleboard上的codec是TI的TPS65950,從technical reference manual可以得知codec在I2C上的位址是0×49。
然後用i2cdump來看codec中所有register的值
[
root@android:/temp # ./i2cdump -f -y 1 0x49
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 00 00 00 00 00 00 00 00 0f 0f 0f 0f 00 00 ..........????..
10: 3f 3f 3f 3f 25 00 00 00 00 32 32 32 32 00 00 55 ????%....2222..U
20: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 ...........?....
30: 13 00 00 00 00 79 11 00 00 00 06 00 44 69 02 00 ?....y?...?.Di?.
40: 00 00 00 00 32 00 00 00 00 00 00 00 00 00 00 1b ....2..........?
50: 00 00 03 f0 05 00 00 00 1a 1a 00 e1 93 00 00 00 ..???...??.??...
60: 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?...............
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 00 00 00 00 00 2f 00 09 10 ff ff ff ff ff ff ff ...../.??.......
90: ff 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ........?.......
a0: 00 00 00 00 00 00 00 00 00 00 04 18 50 01 44 05 ..........??P?D?
b0: 00 00 00 00 fe ff 03 00 00 00 ff ff 03 00 00 00 ....?.?.....?...
c0: 03 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 ?....?..........
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
再來我用i2cset來改變headset gain看看會不會改變播放的音量。先用以下的指令來播放wav檔,我是用sample rate 44.1k的檔案,其它sample rate的wav可能無法播放。
root@android:/temp # ./tinymix 13 1
root@android:/temp # ./tinymix 45 1
root@android:/temp # ./tinymix 48 1
root@android:/temp # ./tinyplay 440.wav
Playing sample: 2 ch, 44100 hz, 16 bit
headset gain的register的位址是0×23,在播放的過程中打開另一個adb shell,用i2cset來增加gain
root@android:/temp # ./i2cset -f -y 1 0x49 0x23 5
音量果然變大了!
i2cget的用法類似i2cget,這裡就不多做說明了。
本博客转载自台湾朋友的文章:http://3sec.kilab.tw/?p=260
Linux I2C工具查看配置I2C设备【转】的更多相关文章
- linux crash工具安装配置
crash简介 crash是redhat的工程师开发的,主要用来离线分析linux内核转存文件,它整合了gdb工具,功能非常强大.可以查看堆栈,dmesg日志,内核数据结构,反汇编等等.crash支持 ...
- Linux I2C核心、总线和设备驱动
目录 更新记录 一.Linux I2C 体系结构 1.1 Linux I2C 体系结构的组成部分 1.2 内核源码文件 1.3 重要的数据结构 二.Linux I2C 核心 2.1 流程 2.2 主要 ...
- 乾坤合一~Linux设备驱动之I2C核心、总线以及设备驱动
我思念的城市已是黄昏 为何我总对你一往情深 曾经给我快乐 也给我创伤 曾经给我希望 也给我绝望 我在遥远的城市 陌生的人群 感觉着你遥远的忧伤 我的幻想 你的忧伤,像我的的绝望,那样漫长,,,,,这是 ...
- linux i2c驱动架构-dm368 i2c驱动分析
linux i2c驱动架构-dm368 i2c驱动分析 在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinc ...
- i2c总线驱动,总线设备(适配器),从设备,从设备驱动的注册以及匹配
常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 随笔分类 ARM裸机(13) C(8) C++(8) GNU-ARM汇编 Linux驱动(24) Linux应用编程(5) Makefile ...
- 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...
- Adb工具配置和设备连接
ADB全程Android Debug Bridge,是Android SDK里的一个工具,用这个工具可以直接操作管理Android模拟器或者真实的Android设备(如手机). 一.Adb工具使用配置 ...
- [Linux实用工具]munin-node插件配置和插件编写
前面介绍了2篇munin使用的相关文章: [Linux实用工具]Linux监控工具munin的安装和配置 [Linux实用工具]Linux监控工具munin的展示(Nginx) 这次介绍一下mun ...
- 查看linux系统各种参数配置的命令
查看linux系统各种参数配置的命令 last |grep shutdown //查看上次关机时间 last |grep reboot ...
随机推荐
- web storage: sessionStorage 和 localStorage
// sessionStorage.setItem("message",str);function saveStorage(id){ var target = document.g ...
- jq 的连续动画
var direction='right'; (function(){ var css={ 'left':'398px' }; if(direction==='right'){ direction=' ...
- CentOS7|RHEL忘记root密码
某一服务器长时间不使用,或者由于频繁修改root密码,导致忘记root密码无法登陆系统问题,通过进入单用户修改root密码,CentOS7|RHEL7与6系列有一些区别,不在适用于7. 1.在启动gr ...
- Ubuntu14.04安装和配置Tomcat8.0.12(转)
Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!! 工具/原料 系统环境:U ...
- uwsgi 启动脚本 每隔三小时重启
针对 s10ops项目 来进行的重启 [root@ayibang-server scripts]# cat /home/liujianzuo/server/scripts/monitor_uwsgi ...
- AutoMappeer自动映射
AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间.
- 第十一篇 SQL Server安全审核
本篇文章是SQL Server安全系列的第十一篇,详细内容请参考原文. SQL Server审核SQL Server审核是指你可以在数据库或服务器实例监控事件.审核日志包含你选择捕获的事件的列表,在服 ...
- 前端学习——css基础知识,选择器与html模板、值得收藏的html标签
一.css需要的html(采用html5标准) DTD,文档类型声明: <!Doctype html> 文本编码声明: <meta charset="utf-8" ...
- VS中使用系统的环境变量作为INCLUDE和LIBPATH的值
所谓INCLUDE的值实际上就是头文件的搜索路径,而LIBPATH就是.lib的搜索路径,对应着命令行中的/I和/LIBPATH选项 假设你有一个 D:/demo/abc/include/abc.h, ...
- button点击传多个参数
// --------------------button点击传多个参数------------------------ UIButton *btn = [UIButton buttonWithTyp ...