在进行II2相关程序的开发时候,很多时候我们必须要确认硬件是否连接征程,设备是否按照我们的设想正常工作,设备地址多少。因此我们需要一个I2C tools来帮助我们
linux下安装
在控制台输入:
sudo apt-get install i2c-tools
等待安装成功,需要我们使用
sudo i2cdetect -l
命令来查看是否安装成功。
I2C设备查询:
sudo i2cdetect -y 1
命令是扫描我们总线bus上所有i2c设备,并且打印出设备i2c总线地址
如图0x40 为pwm舵机驱动板的I2C总线地址
-
注意:
每次启动树莓派都可能出现I2C设备载入异常的情况
这时,需要重新装在i2c。命令如下
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708
然后重复最开始,查看i2c设备运行是否正常。
寄存器数据导出
使用命令:
sudo i2cdump -y 1 0x77
即可导出地址为0x77设备的数据
参数
|
含义
|
-y
|
代表取消用户交互过程,直接执行命令
|
1
|
代表I2C设备号
|
0x77
|
代表I2C设备地址
|
寄存器数据写入
使用如下命令行:
sudo i2cset -y 1 0x77 0x99 0x55
即可向设备地址为0x77的0x90寄存器地址写入0x55
参数
|
含义
|
-y
|
代表取消用户交互过程,直接执行命令
|
1
|
代表I2C设备号
|
0x77
|
代表I2C设备地址
|
0x90
|
代表寄存器地址
|
0x55
|
代表向寄存器写入的数据
|
寄存器数据读出
使用如下命令:
sudo i2cget -y 1 0x77 0x90
即可读出总线地址为0x77设备的0x90寄存器地址的数据
参数
|
含义
|
-y
|
代表取消用户交互过程,直接执行命令
|
1
|
代表I2C设备号
|
0x77
|
代表I2C设备地址
|
0x90
|
代表寄存器地址
|
前言在进行II2相关程序的开发时候,很多时候我们必须要确认硬件是否连接征程,设备是否按照我们的设想正常工作,设备地址多少。因此我们需要一个I2C tools来帮助我们linux下安装在控制台输入:sudo apt-get install i2c-tools等待安装成功,需要我们使用sudo i2cdetect -l命令来查看是否安装成功。使用I2C设备查询:sudo i2cdetect -y 1命令
i2c-tools是一款开源工具,专门用来调试i2c
设备
,目前Tina系统已经集成了i2ctools源码,在menuconfig里打开配置编译即可。
Android的话可以从开源网站http://dl.lm-sensors.org/i2c-tools/releases/下载i2c-tools,
然后修改makefaile编译即可,会生成4个文件,
将这四个文件i2cdetect, i2cdump, i2cget, i2cset push到安卓
I2C总线通信原理
I2C总线简介
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。用于连接微控制器以及其外围
设备
,是微电子通信控制领域广泛采取的一种总线标准。他是同步通信的一种特殊形式,具有接口线少,控制方式简单,期间封装形式少,通信速率高等优点。
I2C总线特征
两条总线,一条是串行数据线SDA,一条串行时钟线SCL来完成数据的传输及外围期间的扩展。
I2C总线上的每一个
设备
都可以作为主
设备
和从
设备
,而且每一个
设备
都会对应一个唯一的地址。
I2C总线数据传输速率在标准模式下可达
SYNOPSIS
i2cdetect[-y] [-a] [-q|-r]i2cbus[first last]i2cdetect-Fi2cbusi2cdetect-Vi2cdetect-l
DESCRIPTION
i2cdetect is a userspace program to scan an I2C bus for devices. It outputs a table with the list of dete...