1.  IIC协议

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

 

2.

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

Linux的I2C体系结构分为3个组成部分:

I2C核心(  i2c-core.c ):       

  I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法、I2C通信方法(”algorithm”)、与具体适配器无关的代码、探测设备、检测设备地址的上层代码等。

       给驱动编程人员提供编程接口。

I2C总线驱动( i2c-s3c2410.c ):

  I2C总线驱动是对适配器端的实现( 即初始化i2c控制器 )。

  实现操作方法,它知道怎么发数据,但是不知道该发什么数据。

I2C设备驱动(  i2c-dev.c ):

  实现策略问题,它知道发什么数据,但是不知道怎么发数据。

  I2C设备驱动(也称为客户驱动)是对设备端的实现。

        

君正提供的内核源码的IIC结构

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

 

登录系统后,可以查看到驱动内配置的外设信息

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

 

 

3. I2C-Tools 交叉编译

3.1 源码下载

https://mirrors.edge.kernel.org/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 0x00 

 

i2cdump可以dump出该设备的所有寄存器信息
./i2cdump -y 0 0x69  #I2C0上挂着的地址为0x69的I2C从设备

 

 

 

.

相关文章:

  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-05
  • 2022-12-23
  • 2021-10-10
猜你喜欢
  • 2021-05-20
  • 2021-08-24
  • 2021-06-03
  • 2021-08-23
  • 2022-12-23
  • 2021-09-06
  • 2021-06-30
相关资源
相似解决方案