笔记本触摸板 I2C通信协议
i2c协议以及其相关bug分析总结

i2c协议以及其相关bug分析总结篇一:I2C协议以及其相关bug分析总结_袁刚20XX1202一、I2C通信协议 ................................................ ................................................... (2)1、I2C 协议:............................................... . (2)2、I2C时序 ................................................ . (3)3、I2C协议中文版本 ................................................ .. (7)二、I2C协议中遇到的BUG分析 ................................................ .. (8)1、项目A72A中时序问题 ................................................ (8)2、T03 Light sensor 无ACK问题................................................. (8)3、S26I 电池以及F01电池问题................................................. (9)4、现象ACK后面的半高的小毛刺分析 ................................................ (10)5、T05C G-sensor无数据问题 ................................................ .. (11)三、I2C协议使用注意事项 ................................................ .. (12)1、I2C level shift 普通MOS以及level shift IC (12)2、I2C使用注意事项以及bug总结 ................................................ (15)文档整理人:袁刚 20XX年12月2日一、I2C通信协议1、I2C 协议:I2C 总线支持任何 IC 生产过程( NMOS、CMOS、双极性)。
I2C总线协议及工作原理

I2C总线【2 】协定及工作道理I2C总线协定及工作道理一.概述1.I2C总线只有两根双向旌旗灯号线.一根是数据线SDA,另一根是时钟线SCL.SCL:上升沿将数据输入到每个EEPROM器件中;降低沿驱动EEPROM器件输出数据.(边沿触发)SDA:双向数据线,为OD门,与其它随意率性数量的OD与OC门成"线与"关系.I2C总线经由过程上拉电阻接正电源.当总线余暇时,两根线均为高电平(SDL=1;SCL=1).连到总线上的任一器件输出的低电平,都将使总线的旌旗灯号变低,即各器件的SDA及SCL都是线“与”关系.2.主装备与从装备体系中的所有外围器件都具有一个7位的"从器件专用地址码",个中高4位为器件类型,由临盆厂家制订,低3位为器件引脚界说地址,由应用者界说.主控器件经由过程地址码树立多机通讯的机制,是以I2C总线省去了外围器件的片选线,如许无论总线上挂接若干个器件,其体系仍然为简约的二线构造.终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在统一总线上统一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容 400pF的限制.主端重要用来驱动SCL line;从装备对主装备产生响应;二者都可以传输数据,但是从装备不能提议传输,且传输是受到主装备掌握的.二、协定1.余暇状况I2C总线总线的SDA和SCL两条旌旗灯号线同时处于高电日常平凡,划定为总线的余暇状况.此时各个器件的输出级场效应管均处在截止状况,即释放总线,由两条旌旗灯号线各自的上拉电阻把电平拉高.2.肇端位与停滞位的界说:肇端旌旗灯号:当SCL为高时代,SDA由高到低的跳变;启动旌旗灯号是一种电平跳变时序旌旗灯号,而不是一个电平旌旗灯号.停滞旌旗灯号:当SCL为高时代,SDA由低到高的跳变;停滞旌旗灯号也是一种电平跳变时序旌旗灯号,而不是一个电平旌旗灯号.肇端和终止旌旗灯号都是由主机发出的,在肇端旌旗灯号产生后,总线就处于被占用的状况;在终止旌旗灯号产生后,总线就处于余暇状况.吸收器件收到一个完全的数据字节后,有可能须要完成一些其它工作,如处理内部中止办事等,可能无法连忙吸收下一个字节,这时吸收器件可以将SCL线拉成低电平,从而使主机处于等待状况.直到吸收器件预备好吸收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以中断进行.3.ACK发送器每发送一个字节,就在时钟脉冲9时代释放数据线,由吸收器反馈一个应答旌旗灯号.应答旌旗灯号为低电日常平凡,划定为有用应答位(ACK简称应答位),表示吸收器已经成功地吸收了该字节;应答旌旗灯号为高电日常平凡,划定为非应答位(NACK),一般表示吸收器吸收该字节没有成功.对于反馈有用应答位ACK的请求是,吸收器在第9个时钟脉冲之前的低电平时代将SDA线拉低,并且确保在该时钟的高电平时代为稳固的低电平.假如吸收器是主控器,则在它收到最后一个字节后,发送一个NACK旌旗灯号,以通知被控发送器停滞数据发送,并释放SDA线,以便主控吸收器发送一个停滞旌旗灯号P.如下图逻辑剖析仪的采样成果:释放总线后,假如没有应答旌旗灯号,sda应当一向中断为高电平,但是如图中蓝色虚线部分所示,它被拉低为低电平,证实收到了应答旌旗灯号.这里面给我们的两个信息是:1)吸收器在SCL的上升沿到来之前的低电平时代拉低SDA;2)应答旌旗灯号一向保持到SCL的降低沿停滞;正如前文红色标识所指出的那样.4.数据的有用性:I2C总线进行数据传送时,时钟旌旗灯号为高电平时代,数据线上的数据必须保持稳固,只有在时钟线上的旌旗灯号为低电平时代,数据线上的高电平或低电平状况才许可变化.5.数据的传送:在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步掌握),即在SCL串行时钟的合营下,在SDA上逐位地串行传送每一位数据.数据位的传输是边沿触发.工作进程总线上的所有通讯都是由主控器激发的.在一次通讯中,主控器与被控器老是在扮演着两种不同的脚色.1.主装备向从装备发送数据主装备发送肇端位,这会通知总线上的所有装备传输开端了,接下来主机发送装备地址,与这一地址匹配的slave将中断这一传输进程,而其它slave将会疏忽接下来的传输并等待下一次传输的开端.主装备寻址到从装备后,发送它所要读取或写入的从装备的内部存放器地址; 之后,发送数据.数据发送完毕后,发送停滞位.(这段看不懂就别看了,没什么用)写入进程如下:发送肇端位1)发送从装备的地址和读/写选择位;释放总线,等到EEPROM拉低总线进行应答;假如E EPROM吸收成功,则进行应答;若没有握手成功或者发送的数据错误时EEPROM不产生应答,此时请求重发或者终止.2)发送想要写入的内部存放器地址;EEPROM对其发出应答;3)发送数据4)发送停滞位.5)EEPROM收到停滞旌旗灯号后,进入到一个内部的写入周期,精确须要10ms,此间任何操作都不会被EEPROM响应具体:须要解释的是:①主控器经由过程发送地址码与对应的被控器树立了通讯关系,而挂接在总线上的其它被控器固然同时也收到了地址码,但因为与其自身的地址不相相符,是以提前退出与主控器的通讯;2.主控器读取数据的进程:读的进程比较庞杂,在从slave读出数据前,你必须先要告知它哪个内部存放器是你想要读取的,是以必须先对其进行写入(dummy write):1)发送肇端位;2)发送slave地址+write bit set;3)发送内部存放器地址;4)从新发送肇端位,即restart;5)从新发送slave地址+read bit set;6)读取数据主机吸收器在吸收到最后一个字节后,也不会发出ACK旌旗灯号.于是,从机发送器释放S DA线,以许可主机发出P旌旗灯号停滞传输.7)发送停滞位具体:2.数据传送格局(1)字节传送与应答每一个字节必须保证是8位长度.数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须追随一位应答位(即一帧共有9位).因为某种原因从机不对主机寻址旌旗灯号应答时(如从机正在进行及时性的处理工作而无法吸收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止旌旗灯号以停滞总线的数据传送.假如从机对主机进行了应答,但在数据传送一段时光后无法中断吸收更多的数据时,从机可以经由过程对无法吸收的第一个数据字节的“非应答”通知主机,主机则应发出终止旌旗灯号以停滞数据的中断传送.当主机吸收数据时,它收到最后一个数据字节后,必须向从机发出一个停滞传送的旌旗灯号.这个旌旗灯号是由对从机的“非应答”来实现的.然后,从机释放SDA线,以许可主机产生终止旌旗灯号.(2)数据帧格局I2C总线上传送的数据旌旗灯号是广义的,既包括地址旌旗灯号,又包括真正的数据旌旗灯号.在肇端旌旗灯号后必须传送一个从机的地址(7位),第8位是数据的传送偏向位(R/),用“0”表示主机发送数据(T),“1”表示主机吸收数据(R).每次数据传送老是由主机产生的终止旌旗灯号停滞.但是,若主机愿望中断占用总线进行新的数据传送,则可以不产生终止旌旗灯号,立时再次发出肇端旌旗灯号对另一从机进行寻址.在总线的一次数据传送进程中,可以有以下几种组合方法:a、主机向从机发送数据,数据传送偏向在全部传送进程中不变:注:有暗影部分表示数据由主机向从机传送,无暗影部分则表示数据由从机向主机传送. A表示应答, 表示非应答(高电平).S表示肇端旌旗灯号,P表示终止旌旗灯号.b.主机在第一个字节后,连忙由从机读数据c.在传送进程中,当须要转变传送偏向时,肇端旌旗灯号和从机地址都被反复产生一次,但两次读/写偏向位正好反相.6、总线的寻址I2C总线协定有明白的划定:采用7位的寻址字节(寻址字节是肇端旌旗灯号后的第一个字节).(1)寻址字节的位界说D7~D1位构成从机的地址.D0位是数据传送偏向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据.主机发送地址时,总线上的每个从机都将这7位地址码与本身的地址进行比较,假如雷同,则以为本身正被主机寻址,依据R/位将本身肯定为发送器或吸收器.从机的地址由固定部分和可编程部分构成.在一个体系中可能愿望接入多个雷同的从机,从机地址中可编程部分决议了可接入总线该类器件的最大数量.如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有8个同样的器件接入到该I2C 总线体系中.(2)寻址字节中的特别地址固定地址编号0000和1111已被保留作为特别用处.肇端旌旗灯号后的第一字节的8位为“00000000”时,称为通用呼叫地址.通用呼叫地址的用意在第二字节中加以解释.格局为:第二字节为06H(0110)时,所有能响应通用呼叫地址的从机械件复位,并由硬件装入从机地址的可编程部分.能响应敕令的从机械件复位时不拉低SDA和SCL线,以免堵塞总线.第二字节为04H(0100)时,所有能响应通用呼叫地址并经由过程硬件来界说其可编程地址的从机械件将锁定地址中的可编程位,但不进行复位.假如第二字节的偏向位B为“1”,则这两个字节敕令称为硬件通用呼叫敕令.在这第二字节的高7位解释本身的地址.接在总线上的智能器件,如单片机或其他微处理器能辨认这个地址,并与之传送数据.硬件主器件作为从机应用时,也用这个地址作为从机地址.格局为:在体系中另一种选择可能是体系复位时硬件主机械件工作在从机吸收器方法,这时由体系中的主机先告知硬件主机械件数据应送往的从机械件地址,当硬件主机械件要发送数据时就可以直接向指定从机械件发送数据了.(3)肇端字节肇端字节是供给应没有I2C总线接口的单片机查询I2C总线时应用的特别字节.不具备I2C总线接口的单片机,则必须经由过程软件不断地检测总线,以便及时地响应总线的请求.单片机的速度与硬件接口器件的速度就消失了较大的差别,为此,I2C总线上的数据传送要由一个较长的肇端进程加以引诱.引诱进程由肇端旌旗灯号.肇端字节.应答位.反复肇端旌旗灯号(Sr)构成.请求拜访总线的主机发出肇端旌旗灯号后,发送肇端字节(00000001),另一个单片机可以用一个比较低的速度采样SDA线,直到检测到肇端字节中的7个“0”中的一个为止.在检测到SDA线上的高电平后,单片机就可以用较高的采样速度,以便查找作为同步旌旗灯号应用的第二个肇端旌旗灯号Sr.在肇端旌旗灯号后的应答时钟脉冲仅仅是为了和总线所应用的格局一致,并不请求器件在这个脉冲时代作应答.总线数据传送的模仿。
iic协议讲解

iic协议讲解
IIC(I2C)是一种用于在电子设备之间进行通信的串行通信协议。
IIC全称是Inter-Integrated Circuit,通常也称作I2C(Inter-IC,简称2-wire)。
由飞利浦(Philips)公司在20世纪80年代初开发并发布。
IIC协议使用双线制(SDA和SCL线)进行通信,其中SDA (Serial Data Line)是数据线,负责发送和接收数据;SCL(Serial Clock Line)是时钟线,用于同步数据传输。
这两条线都是双向的,可以通过连接多个设备实现多主控制。
在IIC协议中,有两种主要的设备,分别是主设备和从设备。
主设备负责发起和控制总线上的通信,而从设备则接受和执行主设备的请求。
从设备可以是各种外设,如传感器、存储器等。
IIC协议的通信过程包括起始信号、地址传输、数据传输和停止信号。
起始信号和停止信号是用于标志一次通信的开始和结束。
在起始信号和停止信号之后是8位的地址传输,其中最高位是设备地址,用于标识目标设备。
地址传输之后是数据传输阶段,可以发送或接收多个字节的数据。
IIC协议还支持两种传输模式,分别是7位地址模式和10位地址模式。
在7位地址模式下,可以有128个不同的设备地址,而在10位地址模式下,可以有1024个不同的设备地址。
总的来说,IIC协议是一种灵活简洁的串行通信协议,广泛应用于各种电子设备之间的通信。
它简化了硬件连接,提供了可靠的数据传输和多主控制的能力,同时也具有较低的通信成本。
I2C通讯协议(中文译版)I2C_Spec

1.1 版本 1.0-1992 .................................................................................................................... 3 1.2 版本 2.0-1998 .................................................................................................................... 3 1.3 版本 2.1-2000 .................................................................................................................... 3 1.4 购买 Philips 的 I2C 总线元件 .............................................................................................. 3
i2c默认电压

i2c默认电压
I2C(Inter-Integrated Circuit)是一种常见的串行通信协议,其默认电压为5V。
它被广泛应用于各种电子设备中,如传感器、存储器、显示屏等。
与其他串行通信协议相比,I2C具有许多独特的特点。
首先,它采用了主从结构,其中一个设备充当主设备,负责发起通信,而其他设备则充当从设备,等待主设备的命令。
这种结构使得多个设备可以通过同一根总线进行通信,提高了系统的灵活性和可扩展性。
I2C具有简单的连接方式和通信协议。
它只需要两根信号线,即时钟线(SCL)和数据线(SDA),这使得连接和布线变得简单方便。
在通信过程中,主设备通过在时钟线上生成时钟信号来同步通信,同时在数据线上发送和接收数据。
这种简洁的通信方式使得I2C在小型设备中得到广泛应用。
I2C还具有多主设备支持的特性。
这意味着多个主设备可以共享同一根总线,并且可以根据优先级来访问总线。
这种特性使得多个设备可以同时进行通信,提高了系统的并发性。
然而,尽管I2C具有许多优点,但也存在一些潜在的问题。
首先,由于I2C是一种串行通信协议,因此其数据传输速度相对较慢。
这对于一些对实时性要求较高的应用来说可能是一个限制因素。
其次,由于I2C使用共享总线的方式进行通信,因此在总线上出现故障或
冲突时,可能会导致通信失败或数据损坏。
I2C作为一种常见的串行通信协议,具有许多优点和特点。
通过了解其默认电压以及其特点和应用,我们可以更好地理解和应用I2C 协议。
I2C总线协议及工作原理

I2C总线协议及工作原理I2C(Inter-Integrated Circuit)是一种串行通信总线协议,由Philips公司提出,适用于在电路板上连接各种集成电路的短距离通信。
I2C总线协议的工作原理是基于主从结构的,其中一个设备作为主设备,其他设备作为从设备。
主设备负责发起通信操作,而从设备则被动响应主设备的指令。
主设备在总线上发出启动信号,然后发送器件地址。
发起通信的主设备控制总线的速度和时序,并且主设备确定读写的类型。
从设备根据地址进行匹配,并根据主设备请求的读写进行响应。
通信完成后,主设备会发送停止信号释放总线。
在I2C总线上,每个设备都有一个唯一的7位或10位地址。
主设备在传输数据之前,会发送起始信号,这个信号告诉从设备通信即将开始。
随后主设备会发送一个地址字节,包含了要通信的从设备的地址和读写控制位。
如果从设备的地址和发送的地址匹配,从设备会发送一个应答(ACK)信号,表示准备好接收数据。
主设备然后才开始发送或接收数据。
数据在I2C总线上传输是以字节为单位的,并且每个字节之后都会有一个应答信号。
主设备负责设置时钟线的电平来控制数据的传输,而从设备负责读取或发送数据位。
在读取数据时,主设备会发送应答位,如果从设备准备好读取下一个字节,会发送应答信号;反之,如果从设备不准备好,会发送非应答信号。
在I2C总线上,主设备还可以使用多主模式,允许多个主设备操作相同的总线。
当多个主设备在通信总线上发起通信时,总线的冲突可能会发生。
为了解决这个问题,I2C总线使用了仲裁机制。
仲裁机制根据优先级决定那个设备能够继续发送数据,优先级高的设备可以中断优先级低的设备的传输,从而保证通信的顺利进行。
总结起来,I2C总线协议是一种简单、高效的串行通信协议。
它通过两根线实现设备之间的通信,并且支持多主模式。
它的工作原理是基于主从结构,主设备发起通信,从设备被动响应。
通过仲裁机制,解决了多主模式下的冲突问题。
i2c通信的详细讲解

i2c通信的详细讲解I2C(Inter-IntegratedCircuit)通信协议是一种用于连接两个不同芯片的系统总线技术,也称为两级串行总线协议或者双总线协议。
I2C协议是由 Philips Semiconductors公司发明的,并被广泛应用于许多不同类型的处理器,特别是嵌入式系统中。
在本文中,我们将讨论I2C协议的原理,它的优点及其在实际应用中的使用方法。
I2C协议使用两根线,一根叫作“时钟”(SCL),另一根叫作“数据”(SDA)。
它们可以用来传输数据,也可以用来控制时钟(SCL)和数据(SDA)的发送和接收。
I2C协议的发明是为了实现多设备的联动,使多个设备之间的信息传输更加高效,性能也更加稳定。
I2C协议的优点:1.省电池电量:I2C协议会在不发送数据时减少时钟信号电平,这样可以有效降低电池电量的消耗;2.单:I2C协议只需要两根电线,可以满足大多数多芯片联动的应用需求;3.能稳定:I2C协议传输稳定,在多设备环境中信号传输时间间隔距离短;4.讯范围宽:I2C协议可以实现多芯片间的远近程度,并通过扩展的协议可以扩大通讯的范围;5.持动态分配:I2C协议允许动态的分配芯片通信地址,以及通过地址捕获技术加快芯片通讯的效率。
I2C协议在实际应用中主要用于在不同芯片之间进行信息传输,比如CPU和外设(例如继电器或者显示器)之间的通讯。
运行I2C协议的系统必须具备以下特性:1. 主从模式:I2C要求两个通讯芯片必须有一个主芯片(Master)来控制所有的通讯,而其他芯片则作为从芯片(Slave)来响应主芯片的指令;2.特率:I2C的数据传输不仅要考虑传输的速度,还需要考虑传输的波特率,这个波特率会影响传输的效率;3.址捕获:I2C需要使用地址捕获技术来增加通信的效率,借此可以最大限度的减少不必要的数据通讯量。
I2C协议的应用非常广泛,它可用于控制多种不同的设备,从简单的温度传感器到复杂的PLC控制器,从内存管理到模拟/数字信号处理,几乎都可以用到I2C协议。
(完整版)I2C总线协议及工作原理

I2C 总线协议及工作原理一、概括1、 I2C 总线只有两根双向信号线。
一根是数据线SDA ,另一根是时钟线SCL 。
SCL :上涨沿将数据输入到每个 EEPROM 器件中;降落沿驱动 EEPROM 器件输出数据。
(边缘触发 )SDA :双向数据线,为OD 门,与其余随意数目的OD 与 OC 门成 " 线与 " 关系。
I2C 总线经过上拉电阻接正电源。
当总线安闲时,两根线均为高电平(SDL=1;SCL=1 )。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的 SDA 及 SCL 都是线“与”关系。
2、主设施与从设施系统中的全部外头器件都拥有一个 7 位的 "从器件专用地点码 " ,此中高 4 位为器件种类,由生产厂家拟订,低 3 位为器件引脚定义地点,由使用者定义。
主控器件经过地点码成立多机通讯的体制,所以 I2C 总线省去了外头器件的片选线,这样不论总线上挂接多少个器件,其系统仍旧为简洁的二线构造。
终端挂载在总线上,有主端和从端之分,主端一定是带有CPU 的逻辑模块,在同一总线上同一时辰使能有一个主端,能够有多个从端,从端的数目受地点空间和总线的最大电容400pF 的限制。
主端主要用来驱动SCL line ;从设施对主设施产生响应;两者都能够传输数据,可是从设施不可以倡始传输,且传输是遇到主设施控制的。
二、协议1.安闲状态I2C 总线总线的SDA 和 SCL 两条信号线同时处于高电平常,规定为总线的安闲状态。
此时各个器件的输出级场效应管均处在截止状态,即开释总线,由两条信号线各自的上拉电阻把电平拉高。
2.开端位与停止位的定义:开端信号:当 SCL 为高时期, SDA 由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
停止信号:当 SCL 为高时期, SDA 由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。