Linux I2C总线应用编程

Linux I2C总线应用编程

1-1、I2C硬件框架
在这里插入图片描述

①在一个SOC内部,有一个或多个I2C控制器(master)
②在一个I2C控制器上,可以有一个或多个I2C设备(slave)
③I2C总线只需要两条线:SCL(串行时钟线)、SDA(串行数据线)
④在I2C总线的SCL、SDA线上,都有上拉电阻

1-2、 I2C软件框架
在这里插入图片描述
以I2C接口的存储设备AT24C02为例:
APP:
①提出要求:把字符串"www.100ask.net"写入AT24C02地址16开始的地方
②它是大爷,不关心底层实现的细节
③它只需要调用设备驱动程序提供的接口
AT24C02驱动:
①它知道AT24C02要求的地址、数据格式
②它知道发出什么信号才能让AT24C02执行擦除、烧写工作
③它知道怎么判断数据是否烧写成功
④它构造好一系列的数据,发给I2C控制器
I2C控制器驱动
①它根据I2C协议发出各类信号:I2C设备地址、I2C存储地址、数据
②它根据I2C协议判断

2-1、I2C协议的硬件连接
I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线
在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻
线与的功能(开漏输出)

将多个开漏输出的引脚连接到一条线上,这样就形成“线与逻辑”关系。注意这个公共点必须接一个上拉电阻。当这些引脚的任一路变为逻辑0后,开漏线上的逻辑就为0了。在I2C等接口总线中就用此法判断总线占用状态。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值