1. IIC(I2C)总线上的设备其地址如何定义
IIC总线
一般串行数据通讯都有时钟和数据之分,有异步和同步之别.
有单线,双线和三线等.
I2C肯定是2线的(不算地线).
I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.
I2C的原则是:
在SCL=1(高电平)时,SDA千万别忽悠!!!
否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".
在SCL=0(低电平)时,SDA随便忽悠!!!(可别忽悠过火到SCL跳高)
每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志.
非应答信号一般在所有字节的最后一个字节后.一般要由双方协议签定.
SCL必须由主机发送,否则天下大乱.
首字节是"片选信号",即7位从机地址加1位方向(读写)控制.
从机收到(听到)自己的地址才能发送应答信号(必须应答!!!)表示自己在线.
其他地址的从机不允许忽悠!!!(当然群呼可以忽悠但只能听不许说话)
读写是站在主机的立场上定义的.
"读"是主机接收从机数据,"写"是主机发送数据给从机.
重复位主要用于主机从发送模式到接收模式的转换"信号",由于只有2线,
所以收发转换肯定要比SPI复杂,因为SPI可用不同的边沿来收发数据,而I2C不行.
在硬件I2C模块,特别是MCU/ARM/DSP等每个阶段都会得到一个准确的状态码,
根据这个状态码可以很容易知道现在在什么状态和什么出错信息.
7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址.
10位I2C总线可以挂接更多的10位I2C设备.
总之,只要掌握I2C的忽悠记,一般很容易掌控... 第一个字节(为slave address)由7位地址和一位R/W读写位组成的,这字节是个器件地址。
首先,你要知道:常用IIC接口通用器件的器件地址是由种类型号,及寻址码组成的,共7位。
如格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
1-器件类型由:D7-D4 共4位决定的。这是由半导公司生产时就已固定此类型的了,也就是说这4位已是固定的。
2-用户自定义地址码:D3-D1共3位。这是由用户自己设置的,通常的作法如EEPROM这些器件是由外部IC的3个引脚所组合电平决定的(用常用的名字如A0,A1,A2)。这也就是寻址码。
所以为什么同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片的原因了。
3-最低一位就是R/W位。这位不用我多说了。
在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。
每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制。
基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。 在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。
每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制。
基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。
2. I2C总线的最大长度是多少
I2C总线的最大长度是:小于200mm~300mm,跟传输速度、布线等有关系,延长距离可以用I2C中继器芯片,NXP如P82B715、P82B96等等;在标准上没有看到明确规定有效的传输距离。
I2C传输的距离应该取决信号的稳定性,而稳定性由总线负载,传输速度,总线电容,甚至外部干扰等因素决定,因此有可能出现5米的通讯距离换个位置或者加个设备就出问题。
(2)i2c总线可以练多少个从设备扩展阅读:
Hs 模式主机器件有一个SDAH 信号的开漏输出缓冲器和一个在SCLH 输出的开漏极下拉和电流源上拉电路,这个电流源电路缩短了SCLH 信号的上升时间,任何时候在Hs 模式,只有一个主机的电流源有效。
在多主机系统的Hs 模式中,不执行仲裁和时钟同步,以加速位处理能力。仲裁过程一般在前面用F/S 模式传输主机码后结束。
Hs 模式主机器件以高电平和低电平是1:2 的比率产生一个串行时钟信号。解除了建立和保持时间的时序要求,
可以选择Hs 模式器件有内建的电桥。在Hs 模式传输中,Hs 模式器件的高速数据(SDAH)和高速串行时钟(SCLH )线通过这个电桥与F/S 模式器件的SDA 和SCL 线分隔开来,减轻了SDAH 和SCLH 线的电容负载,使上升和下降时间更快。
Hs 模式从机器件与F/S 从机器件的唯一差别是它们工作的速度。Hs 模式从机在SCLH 和SDAH输出有开漏输出的缓冲器。SCLH 管脚可选的下拉晶体管可以用于拉长SCLH 信号的低电平,但只允许在Hs 模式传输的响应位后进行。
Hs 模式器件的输出可以抑制毛刺,而且SDAH 和SCLH 输出有一个施密特触发器;Hs 模式器件的输出缓冲器对SDAH 和SCLH 信号的下降沿有斜率控制功能。
参考资料来源:网络-I2C总线
3. 一条I2C总线上挂载两个及两个以上的同一型号传感器(已更改从地址使其不同)怎么同时完成配置。
你的同时读是什么意思?单核MCU不可能同时读的,总有先后顺序。
如果你的本意是一条I2C总线上挂两个MPU6050,那是可以的。这个芯片的第9脚AD0是设备地址的最低位,两个芯片一个拉高,一个拉低,就有两个不同的设备地址了。
这是个传感芯片,读到的数据需要根据不同应用处理,难道你只想要读数据的函数?自己写呗,很简单的。
4. I2C总线,如果两个机器同时拉低电平都想成为主机怎么办
这种情况是不允许出现的。
I2C协议只允许同一时间只能有至多1个设备在操纵数据总线,如果同时拉低电平则违背了I2C原则。
5. 如何获取I2C总线上多个设备的地址
I2C是有统一定义的,不会冲突。
24LC16B.html">24LC16B地址datasheet上肯定说了,仔细看吧。
有些器件会有一个或几个IO来改变I2C的地址。
象24LC16就有A2,A1,A0可以有8个不同的I2C地址。
因此可以同时接8个一样的器件而不冲突。
24LC16的I2C地址为1010xxx,xxx即为A2,A1,A0,所以A0-AF都是。最低位为读写控制。
6. i2c总线上最多可以挂多少个从器件
有IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线支持任何IC 生产过程(CMOS、双极性)。通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。LCD 驱动器只能作为接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。
7. 一般情况下一条i2c总线最多可拥有多个cat24wc02这些cat24wc02该怎样连接
有IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线支持任何IC 生产过程(CMOS、双极性)。通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。LCD 驱动器只能作为接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。
8. IIC总线上最多能连多少个器件,理论值(寻址位数)与实际挂载值有没有差别,原因是什么
iic协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF。
管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。
总线之所以规定电容大小是因为,iic的OD要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。
传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以RC乘积必须更小。
9. i2c总线可以连接几个设备
IIC协议规定,在启动总线后第1字节的高7位是从节点的寻址地址,第8位为方向位。所以在单字节寻址中最多128个从设备。但又不能是同一类设备,因为在地址还要区分设备类型。