0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C子系统定义术语介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-25 09:36 次阅读

定义术语

图片

1、数据有效性

在 SCL 高电平期间,SDA 必须稳定,所以一般情况下,SCL 高电平宽度小,SDA 高电平宽度大,用示波器看也是这样的。

图片

2、起始条件和停止条件

起始条件:SCL 高电平时,SDA 由高变低。

停止条件:SCL 高电平时,SDA 由低变高。

图片

一般每传输一个字节(8 bit),就会重新开始。SDA 在 SCL 是低电平期间变换数据,不可以在 SCL 高电平期间变换数据,否则会认为是起始和停止条件。

传输长度必须是一个字节(8 bit)

每次传输的字节不受限制

数据必须以 MSB 开头进行传输,也就是先传输最高位

从机可以将时钟线 SCL 保持在低位,迫使主机进入等待状态。

图片图片

3、ACK or NACK

每次传输完一个字节以后,从设备要进行一个回应,回应 ACK 或者 NACK。

ACK :在传输 8 bit 以后,在第九个 bit ,SCL 高电平,如果 SDA 是低电平,说明回应了 ACK。

NACK:在传输 8 bit 以后,在第九个 bit ,SCL 高电平,如果 SDA 是高电平,说明回应了 NACK。

图片

4、write data

图片

5、read data

图片

6、复合格式

图片

7、I2C Transfer Regulation

以 START 条件开始

以 STOP 条件结束

传输的第一个字节为 7bit 从机地址 + 1bit 读写位

每个总线上的设备都会比较 STRAT 信号后面的 7bit 地址与自己的地址是否匹配

每个 byte(8 bits) 后面都会有 ACK 或者 NACK

在 START 信号或者 repeated START 信号后,从机必须重置自己的总线逻辑

一个 START 后面紧跟着一个 STOP 信号,是非法格式

主机 master 可以不产生 STOP 信号,而是直接产生一个 repeated START信号+另外一个设备地址,直接开始访问另外一个设备

8、10-bit addressing

图片图片

解析如下:

图片

A9-A0 表示 10bits 地址

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1482

    浏览量

    123378
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17040
  • 系统
    +关注

    关注

    1

    文章

    1011

    浏览量

    21320
收藏 人收藏

    评论

    相关推荐

    Linux内核中I2C系统的设计思路

    [ 导读] 本文通过阅读内核代码,来梳理一下I2C子系统的整体视图。在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,没有一个清晰的思路。所以从高层级来分析一下
    发表于 09-06 09:40 481次阅读
    Linux内核中<b class='flag-5'>I2C</b><b class='flag-5'>系统</b>的设计思路

    linux I2C子系统的相关资料分享

    文章目录linux I2C子系统框架在设备树中添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实现linux
    发表于 02-10 06:06

    i2c总线介绍

    I2C介绍   I2C总线是两线式串行总线。    I2C总线最主要的优点是其简单性和有效性,支持多主控(multimastering)。&nb
    发表于 08-13 17:29 0次下载

    i2c总线ppt(I2C总线器件应用)

    I2C总线器件应用第一节 I2C总线器件应用概述I2C总线工作原理I2C总线系统结构I2C总线
    发表于 08-13 17:34 0次下载

    I2C总线在Linux系统中的驱动设计

    介绍I2C总线的基本概念和工作原理,叙述I2C总线扩展器件ZLG7290的功能特点。在以S3C2410为微控制器,ZLG7290为I2C总线
    发表于 12-29 16:52 40次下载

    I2C总线的结构介绍

    内容摘要:介绍I2C总线的结构、工作原理、数据传输方式,讨论了基于I2C总线的多机通信软硬件设计,实现了程控交换多机通信调度指挥系统
    发表于 02-29 15:44 6次下载

    Linux内核中I2C子系统的整体视图

    本文通过阅读内核代码,来梳理一下I2C子系统的整体视图。在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,没有一个清晰的思路。所以从高层级来分析一下
    的头像 发表于 12-31 10:40 2160次阅读
    Linux内核中<b class='flag-5'>I2C</b><b class='flag-5'>子系统</b>的整体视图

    linux I2C子系统(及相关程序设计MPU6050)

    文章目录linux I2C子系统框架在设备树中添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实现linux
    发表于 12-06 13:36 9次下载
    linux <b class='flag-5'>I2C</b><b class='flag-5'>子系统</b>(及相关程序设计MPU6050)

    嵌入式内核及驱动开发-09IIC子系统框架使用(I2C协议和时序,I2C驱动框架,I2C从设备驱动开发,MPU6050硬件连接

    文章目录I2c协议和时序I2c介绍I2c硬件连接I2c总线的信号I2c总线写时序
    发表于 12-06 14:06 17次下载
    嵌入式内核及驱动开发-09IIC<b class='flag-5'>子系统</b>框架使用(<b class='flag-5'>I2C</b>协议和时序,<b class='flag-5'>I2C</b>驱动框架,<b class='flag-5'>I2C</b>从设备驱动开发,MPU6050硬件连接

    硬件I2C与模拟I2C

    硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    I2C子系统ACK error

    在应该收到 ACK 信号的时候没有收到 ACK 信号,i2c controller 就会产生一个 ACK error 的中断,告诉 i2cdriver 发生了 ACK error。通常
    的头像 发表于 07-22 14:39 1783次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>子系统</b>ACK error

    I2C子系统debug的常见问题

    常见问题 1、同一条 i2c bus 上所有的外设的 i2c addr 要不同 1)相同 address 注册时冲突 [ 2.059184 ][xxx]i2c i2c- 1 :Fail
    的头像 发表于 07-22 14:52 910次阅读

    I2C子系统SW Architecture

    I2C SW Architecture 【driver 驱动层】由普通驱动工程师负责,【i2c 核心层】由 Linux 提供,【i2c 核心层】以下由芯片原厂负责。 I2C
    的头像 发表于 07-22 16:01 915次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>子系统</b>SW Architecture

    I2C子系统几个主要的结构体

    I2C Data Structure 我们要搞懂一个 Linux 子系统,必须研究它的数据结构,搞懂每个结构体存储了什么东西,才能梳理清楚该子系统的架构。 I2C
    的头像 发表于 07-22 16:04 793次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>子系统</b>几个主要的结构体

    I2C转UART子系统设计

    电子发烧友网站提供《I2C转UART子系统设计.pdf》资料免费下载
    发表于 08-28 10:27 1次下载
    <b class='flag-5'>I2C</b>转UART<b class='flag-5'>子系统</b>设计