一、 I2C接口简介
I2C最早是Philips公司开发的一款简单的双向总线,实现有效的IC控制。把这个总线写成Inter IC 简称IIC或I2C(PS:说白了2就是两个“I”的意思。)
I2C总线一些特征:
1、 只有两根线分别是串行数据线(SDA),串行时钟线(SCL)。
2、 每个连接到总线的器件有唯一一个地址。
3、 总线中可以存在一个主机多个从机的模式,也存在多个主机的模式(实际应用非常少,本文不做累述)。
4、 使用串行8位双向数据传输方式。有标准模式(Standard mode)传输速度达100kbit/s;快速模式(Fast mode)传输速度达400kbit/s;超快速模式(Fast mode Plus)传输速度达1Mbit/s;高速模式(High speed mode)传输速度达3.4Mbit/s。通常多用到标准模式。
5、 总线上的设备数量只受到总线电容(Bus capacitance)小于400pf的限制。
6、 可以使用普通GPIO口模拟I2C,但要需要将GPIO配置成OD模式(开漏模式)
二、I2C位传输规则
1、起始信号&停止信号
起始条件:当SCL为高电平时,SDA从高电平向低电平切换。
停止信号:当SCL为高电平时,SDA从低电平向高电平切换
2、数据的有效性
I2C信号为电平采样信号(其他很多协议都是信号沿采样,如SPI)。规定SDA上的数据在SCL高电平周期内保持稳定,在SCL低电平周期内允许变化。
3、响应时钟信号(ACK)
数据传输必须带响应 相关的响应时钟脉冲由主机产生 在响应的时钟脉冲期间发送器释放SDA线(高)。
在响应的时钟脉冲期间接收器必须将SDA 线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平。
通常,被寻址的接收器在接收到的每个字节后,必须产生一个响应。
当从机不能响应从机地址时,例如它正在执行一些实时函数不能接收或发送。从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始的传输。
如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输,这个情况用从机在第一个字节后没有产生响应来表示,从机使数据线保持高电平,主机产生一个停止或重复起始条件。
4、地址格式
在发送起始信号后,主机会发送一个从机地址,这个地址共有7位。紧接着第8位(R/ W)“0”表示“写”,“1”表示请求数据“读”。
第一个字节的头7位组成了从机地址最低位(LSB)是第 8 位,它决定了报文的方向
第一个字节的最低位是“0”表示主机会写信息到被选中的从机“1”表示主机会向从机读信息
当发送了一个地址后,系统中的每个器件都在起始条件后将头7位与它自己的地址比较 如果一样,器件认为它被主机寻址,至于从机是接收数据还是发送数据都由 R/ W 位决定。
三、I2C电气特性标准
I2C通讯的时候需要注意时序是否满足条件,特别注意建立时间,保持时间等时序。如出现问题需要测试波形与表格中的电气特性进行详细对比。
四、I2C上拉电阻选择
1、SDA和SCL都是双向的线路,都是通过一个电流源或者上拉电阻接到电源电压,这个电流源的最大值为3mA。
2、开漏状态下有3mA的反向电流,SDA,SCL的低电平的最大值为VOL(max)=0.4V。(I2C协议中可以看到)
通过上述既可以得到:
3、最大上拉电阻的受到上升时间和负载电容的响应,具体的计算公式见下,具体的tr可在电气特性表中找到
所以说有些人说I2C的标准上拉电阻是2.2K是不正确的。
今天的文章i2c接口怎么接线_LPS芯片引脚定义分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/78072.html