i2c

作者: Michael_Johnson | 来源:发表于2017-08-04 11:17 被阅读23次

2条双向串行线,一条数据线SDA,一条时钟线SCL。为MSB先传,即大端传输。

IIC标准速率为100kbit/s。

1.I2C位传输   数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit

数据改变:SCL为低电平时,SDA线才能改变传输的bit


I2C开始和结束信号  

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据


 I2C应答信号

  Master每发送完8bit数据后等待Slave的ACK。   即在第9个clock,若从IC发ACK,SDA会被拉低。   若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程


I2C写流程

 I2C写流程写寄存器的标准流程为:

1.    Master发起START

2.    Master发送I2C addr(7bit)和w操作0(1bit),等待ACK

3.    Slave发送ACK

4.    Master发送reg addr(8bit),等待ACK

5.    Slave发送ACK

6.   Master发送data(8bit),即要写入寄存器中的数据,等待ACK

7.    Slave发送ACK

8.    第6步和第7步可以重复多次,即顺序写多个寄存器

9.    Master发起STOP

单个字节 多个字节

 1.5 I2C读流程读寄存器的标准流程为:

1.    Master发送I2Caddr(7bit)和W操作1(1bit),等待ACK

2.    Slave发送ACK

3.    Master发送reg addr(8bit),等待ACK

4.    Slave发送ACK

5.     Master发起START

6.    Master发送I2C addr(7bit)和R操作1(1bit),等待ACK

7.    Slave发送ACK

8.   Slave发送data(8bit),即寄存器里的值

9.   Master发送ACK

10.    第8步和第9步可以重复多次,即顺序读多个寄存器

inout端口 

一个输出端口在高阻态的时候,其状态是由于其相连的其他电路决定的,可以将其看作是输入。

相关文章

  • kernel I2C总线驱动

    I2C总线驱动# I2C体系结构## I2C核心提供I2C总线驱动和设备驱动的注册、注销方法 I2C总线驱动是对I...

  • i2c

    彻底搞懂I2C总线(一)什么是I2C?什么是I2C总线?什么是I2C规范[https://www.163.com/...

  • I2C协议浅谈

    导语:此为个人对I2C总线协议的一点总结,如若想深度了解I2C总线协议可参考相关文档 I2C英文权威手册 I2C中...

  • Ginkgo USB-I2C适配器

    典型应用: - I2C总线设备,芯片控制、调试; - I2C接口传感器测试; - I2C存储器EEPROM数据读写...

  • OSError: [Errno 121] Remote I/O

    打开raspberryPi I2C功能,连接上I2C通信的扩展板即可

  • I2C总线架构 之 I2C核心

    引言 在之前的 《I2C总线架构 之 设备驱动》 和 《I2C总线架构 之 总线驱动》 中一再提到i2c核...

  • 项目15 之 I2C通信方式原理与应用

    项目15 之 I2C通信方式原理与应用 I2C是各类传感器与模块与Arduino通信的最常用方式之一 I2C的全称...

  • LUAT实践 - I2C通讯之定位我们的外设设备

    本实践目标 了解I2C的基本概念以及应用方式 熟悉air20x的I2C API 在使用具体的I2C器件之前,我们首...

  • 第019课 I2C协议详解及裸机程序分析

    第001节_I2C协议与EEPROM I2C协议 I2C在硬件上的接法如下(图19-1)所示,主控芯片引出两条线S...

  • 20151126-2:I2C分析

    20151126-2:I2C分析 一:I2C模组的基本结构和基本函数 The restrictionson rea...

网友评论

      本文标题:i2c

      本文链接:https://www.haomeiwen.com/subject/sujvlxtx.html