linux驱动开发之i2c时序简析
2018-02-02 00:39
162 查看
先看i2c基本协议帧:
结合时序图理解:
SCL时钟频率是固定的
sda默认为高电平,从高电平变化到低电平,表示开始;接着发送7bit从设备地址,接着区分读写位,sda高电平时候读数据,sda低电平时候写数据, 第9个周期(不包括起始周期)是ACK,接下来8个周期发送8bit数据,接着又一个ACK(强行拉高。然后拉低点平),接下来8个周期发送8bit数据,接着又一个ACK(强行拉高。然后拉低电平)……..当SCL为高电平,sda从低电平变化成高电平,表示停止位。
规则:SCL为高电平的时候,sda数据才有效,即只看SCL为高电平时候,如果sda稳定为某一个值,则sda数据有效。
结合时序图理解:
SCL时钟频率是固定的
sda默认为高电平,从高电平变化到低电平,表示开始;接着发送7bit从设备地址,接着区分读写位,sda高电平时候读数据,sda低电平时候写数据, 第9个周期(不包括起始周期)是ACK,接下来8个周期发送8bit数据,接着又一个ACK(强行拉高。然后拉低点平),接下来8个周期发送8bit数据,接着又一个ACK(强行拉高。然后拉低电平)……..当SCL为高电平,sda从低电平变化成高电平,表示停止位。
规则:SCL为高电平的时候,sda数据才有效,即只看SCL为高电平时候,如果sda稳定为某一个值,则sda数据有效。
相关文章推荐
- linux驱动开发之i2c从设备驱动at24c02的编程
- linux下i2c接口的电容触摸屏驱动开发
- Linux下I2C设备驱动开发和实现
- Linux下I2C设备驱动开发和实现
- Linux设备驱动简析—基于I2C的E2PROM驱动
- Linux下I2C设备驱动开发和实现
- Linux下I2C设备驱动开发和实现
- Linux下I2C设备驱动开发和实现
- Linux下I2C设备驱动开发和实现
- Linux驱动开发、18-I2C子系统之用户态驱动设计
- Linux下I2C设备驱动开发和实现
- Linux驱动之I2C总线驱动开发
- linux下I2C驱动的开发
- linux下i2c接口的电容触摸屏驱动开发
- linux下i2c接口的电容触摸屏驱动开发
- Linux开发十二_i2c驱动
- Linux驱动开发、19-I2C子系统之客户驱动分析与移植
- Linux下I2C设备驱动开发和实现(转)
- Linux驱动开发之 五 (那些必须要了解的硬件知识 之 I2C)