-
1. IIC协议
2.
Linux的I2C体系结构分为3个组成部分:
I2C核心( i2c-core.c ):
I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法、I2C通信方法(”algorithm”)、与具体适配器无关的代码、探测设备、检测设备地址的上层代码等。
给驱动编程人员提供编程接口。
I2C总线驱动( i2c-s3c2410.c ):
I2C总线驱动是对适配器端的实现( 即初始化i2c控制器 )。
实现操作方法,它知道怎么发数据,但是不知道该发什么数据。
I2C设备驱动( i2c-dev.c ):
实现策略问题,它知道发什么数据,但是不知道怎么发数据。
I2C设备驱动(也称为客户驱动)是对设备端的实现。
君正提供的内核源码的IIC结构
登录系统后,可以查看到驱动内配置的外设信息
3. I2C-Tools 交叉编译
3.1 源码下载
Index of /pub/software/utils/i2c-tools/
3.2 解压源码
tar xvf i2c-tools-4.1.tar.gz
cd i2c-tools-4.1
3.3 指定交叉编译器
export CC=mips-linux-gnu-gcc
export STRIP=mips-linux-gnu-strip
export AR=mips-linux-gnu-ar
3.4 编译
make
3.5 移所需库
把 libi2c.so.0.1.1 拷贝到 开发板的 /usr/lib/ 目录下
把 libi2c.so.0.1.1 软链接为 libi2c.so.0 (ln -s libi2c.so.0.1.1 libi2c.so.0)
4. 如何使用I2C-Tools
扫描所有I2C设备地址
./i2cdetect -l #查看系统使能的i2c总线
检测总线上的设备
./i2cdetect -r -y 0 #-y表示省去交互式
i2c上读写数据:
./i2cset -y 1 0x40 0x00 0x13
./i2cget -y 1 0x40 0x00i2cdump可以dump出该设备的所有寄存器信息
./i2cdump -y 0 0x69 #I2C0上挂着的地址为0x69的I2C从设备.
/************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/