I2C接口及驱动

Posted Arrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I2C接口及驱动相关的知识,希望对你有一定的参考价值。

1. 简介

  • I2C总结的基本的特征
    • 电路简单,只需要两根线,时钟线SCL和数据线SDA
    • I2C为总线型结构,主设备依靠从设备地址进行寻址
    • I2C总线上的设备可以为一主多从或者多主多从,多主多从模式下,需要提供仲裁和冲突检测机制
    • I2C主设备提供时钟,SDA可以双向传输数据
    • I2C标准的传输速率可以达到100Kbit/s,快速模式下可以达到400Kbit/s,高速模式下可以到达3.4Mbit/s。一般最为常用的传输速率<=100Kbit/s

2. 硬件

2.1 硬件电路

  • I2C硬件电路特征
    • 连接到I2C总线上的设备,必须是以开漏或开集电极的方式连接,这样才能实现线与
    • SCL和SDA必须接上拉电阻,电阻的大小为4.7K到10K之间
    • 连接到总线上的设备数量受400pF电容的限制

2.2 数据传输

  • I2C在进行数据传输时的一般规则如下:
    • 发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制
    • 首先传输的是数据的最高位(MSB),每个字节后必须跟一个响应位,所以,一帧数据共有9位
    • 如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续

3. Linux驱动

以上是关于I2C接口及驱动的主要内容,如果未能解决你的问题,请参考以下文章

RT-Thread 设备驱动I2C浅析及使用

linux驱动之i2c子系统mpu6050设备驱动

linux中I2C驱动函数常用接口

linux驱动之i2c子系统device注册driver注册简单分析

Linux I2C 驱动实验

九i2c设备驱动