树莓派学习笔记——I2C Tools 学习笔记

i2ctool树莓派linux

目录(?)[+]

  1. 安装
  2. I2C总线扫描
  3. I2C设备查询
  4. 寄存器内容导出
  5. 寄存器内容写入
  6. 寄存器内容读出
  7. 总结
  8. 参考资料

1.安装

I2C驱动载入和速率修改请查看博文【树莓派学习笔记——I2C设备载入和速率设置】。

2.I2C总线扫描

通过i2cdetect -l指令可以查看树莓派上的I2C总线,从返回的结果来看树莓派含有两个I2C总线,通过阅读相关的资料,树莓派1代使用I2C0,而树莓派2代使用I2C1。

[plain] view plaincopyprint?

  1. pi@raspberrypi :~$ i2cdetect -l
  2. i2c-0   i2c             bcm2708_i2c.0                           I2C adapter
  3. i2c-1   i2c             bcm2708_i2c.1                           I2C adapter
[email protected]:~$ i2cdetect -l
i2c-0   i2c             bcm2708_i2c.0                           I2C adapter
i2c-1   i2c             bcm2708_i2c.1                           I2C adapter

3.I2C设备查询

若总线上挂载I2C从设备,可通过i2cdetect扫描某个I2C总线上的所有设备。可通过控制台输入i2cdetect -y 1,结果如下所示。

[cpp] view plaincopyprint?

  1. pi@raspberrypi :~$ i2cdetect -y 1
  2. 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  3. 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
  4. 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  5. 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  7. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  8. 50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  10. 70: -- -- -- -- -- -- -- --
[email protected]:~$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

说明1:-y为一个可选参数,如果有-y参数的存在则会有一个用户交互过程,意思是希望用户停止使用该I2C总线。如果写入该参数,则没有这个交互过程,一般该参数在脚本中使用。

说明2:此处I2C总线共挂载两个设备——PCF8574和AT24C04,从机地址0x20为PCF8574,从机地址0x50和0x51为AT24C04,请注意AT24C04具备两个I2C地址,相关内容请产看参考资料6.4。

4.寄存器内容导出

通过i2cdump指令可导出I2C设备中的所有寄存器内容,例如输入i2cdump -y 1 0x51,可获得以下内容:

[plain] view plaincopyprint?

  1. pi@raspberrypi :~$ i2cdump -y 1 0x51
  2. No size specified (using byte-data access)
  3. 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
  4. 00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  5. 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  6. 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  7. 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  8. 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  9. 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  10. 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  11. 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  12. 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  13. 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  14. a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  15. b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  16. c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  17. d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  18. e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
  19. f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
[email protected]:~$ i2cdump -y 1 0x51
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: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................

i2cdump -y 1 0x51指令中,

-y        代表取消用户交互过程,直接执行指令;

1         代表I2C总线编号;

0x51    代表I2C设备从机地址,此处选择AT24C04的高256字节内容。

在该AT24C04的高256字节尚处于出厂默认状态,所有的存储地址中的内容均为0XFF。

5.寄存器内容写入

如果向I2C设备中写入某字节,可输入指令i2cset -y 1 0x50 0x00 0x13

-y        代表曲线用户交互过程,直接执行指令

1         代表I2C总线编号

0x50    代表I2C设备地址,此处选择AT24C04的低256字节内容

0x00    代表存储器地址

0x13    代表存储器地址中的具体内容

6.寄存器内容读出

[plain] view plaincopyprint?

  1. pi@raspberrypi :~$ i2cget -y 1 0x50 0x00
  2. 0x13
[email protected]:~$ i2cget -y 1 0x50 0x00
0x13

如果从I2C从设备中读出某字节,可输入执行i2cget -y 1 0x50 0x00,可得到以下反馈结果

-y        代表曲线用户交互过程,直接执行指令

1         代表I2C总线编号

0x50    代表I2C设备地址,此处选择AT24C04的低256字节内容

0x00    代表存储器地址

7.总结

i2ctools是一个简单好用的工具,该工具使得I2C设备的调试更加方便。

8.参考资料

【1】i2ctools官方参考资料

【2】为什么AT24C04具备两个I2C从机地址

时间: 2024-08-11 07:43:09

树莓派学习笔记——I2C Tools 学习笔记的相关文章

【转】树莓派学习笔记——I2C Tools 学习笔记

原文网址:http://blog.csdn.net/xukai871105/article/details/15029843 1.安装 I2C驱动载入和速率修改请查看博文[树莓派学习笔记——I2C设备载入和速率设置]. 2.I2C总线扫描 通过i2cdetect -l指令可以查看树莓派上的I2C总线,从返回的结果来看树莓派含有两个I2C总线,通过阅读相关的资料,树莓派1代使用I2C0,而树莓派2代使用I2C1. [plain] view plaincopy [email protected]:~

树莓派学习笔记——I2C设备载入和速率设置

原文:http://blog.csdn.net/xukai871105/article/details/18234075 1.载入设备 方法1——临时载入设备 sudo modprobe -r i2c_bcm2708  #卸载设备 -r代表remove sudo modprobe i2c_bcm2708     #重新载入设备 方法2——永久载入设备 打开配置文件,进行修改 sudo nano /etc/modules                # 使用nano打开文件 增加以下两行 i2c

【转】 树莓派学习笔记——I2C设备载入和速率设置

原文网址:http://blog.csdn.net/xukai871105/article/details/18234075 1.载入设备 方法1——临时载入设备 [plain] view plaincopy sudo modprobe -r i2c_bcm2708  #卸载设备 -r代表remove sudo modprobe i2c_bcm2708     #重新载入设备 方法2——永久载入设备 打开配置文件,进行修改 [plain] view plaincopy sudo nano /et

树莓派学习之I2C通信

最近飞兆杯的比赛选择了循迹小车,其中用到的ldc1314芯片是基于I2c通信的,虽然项目并没有成功,但是还是学习了树莓派的I2c通信相关的一些知识! 一.配置I2C接口,读取i2c设备的地址 1.可以通过raspi-config配置工具配置使能I2C,或者通过编辑/boot/config.txt文件,加入一下一行内容: dtparam=i2c1=ondtparam=i2c_arm=on 2.安装I2C库和工具 $sudo apt-get install i2c-tools 3.当连接上I2C设备

Chrome development tools学习笔记(3)

(上次DOM的部分做了些补充,欢迎查看Chrome development tools学习笔记(2)) 利用DevTools Elements工具来调试页面样式 CSS(Cascading Style Sheets层叠样式表)定义了Web页面的表示层,是能够真正做到网页表现与内容分离的一种样式设计语言.本文主要是讲调试工具,关于CSS学习可以参考W3school的CSS部分:http://www.w3school.com.cn/css/index.asp. DevTools的Elements右边

Chrome development tools学习笔记(5)

调试JavaScript 随着如今JavaScript应用的越来越广泛,在面对前端工作的时候,开发人员须要强大的调试工具来高速有效地解决这个问题.我们文章的主角,Chrome DevTools就提供了这么个工具来帮助我们降低调试JavaScript代码的痛苦. 顺便说下,不同版本号的Chrome浏览器的DevTools可能稍微有所不同,除了数字递增的版本号号以外.Chrome浏览器包含Stable正式版.Beta測试版.Dev开发版.Canary金丝雀版以及鼻祖 Chromium版这几个分支.博

树莓派学习笔记——GPIO功能学习

树莓派学习笔记——GPIO功能学习

compass General 常用api学习[Sass和compass学习笔记]

compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 float 造成的内容问题,以前用clear 方法可以解决,通过查看Clearfix 的源码发现对与高版本的浏览器其实已经可以不用了 ? 1 2 3 4 @mixin clearfix {   overflow: hidden;   @include has-layout; } 用overflow 就可以了

Accelerated C++学习笔记1—<开始学习C++>

第0章 开始学习C++ 1.每次学习一个新的语言,大家都是从Hello, world!开始 // lesson0_1.cpp : 定义控制台应用程序的入口点. //功能:编译并运行Hello,world //时间:2014.5.7 #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { std::cout<< &