----- 正文 -----
先赞↓后看,养成习惯!
一、电气性能
电气性能包含下图时钟频率、IO电平、时序定义等内容,下面将一一介绍(注意:本文只介绍标准模式下的数据,其它模式数据参考协议原文文档)
以下的时序是常见的,项目中I2C实际波形需要符合这些时序的要求,因此测试中应该用示波器抓到实际波形然后查看每个时序,当然以上只是标准协议,不同的器件要求可能有所不同,需要查询相应的数据手册确定极限值。其他的时序可以参考原文,不再赘述。
1. VIH与VIL
VIH:高电平阈值电压,高于此电压才会判断为高电平,一般取VDD+0.5V或5.5V中的小值,例如3.3V的系统中,取3.3+0.5等于3.8V
VIL:低电平阈值电压,低于此电压才会判断为低电平,一般最小值为-0.5V,最大值为0.3VDD,这里的最大最小值器件生产误差或者不同器件的微小差异,后续的最大值最小值也是类似。
2. tlow
指低电平持续时间,也就是SDA或SCL一个时钟周期内电平低于0.3VDD的持续时间。标准模式下最小为4.7us。
3. tHIGH
指高电平持续时间,也就是SDA或SCL在一个周期内电压大于0.7VDD后直到电压再低于0.7VDD时持续的时间。标准模式下最小为4.0us。
4. tr与tf
tr是指数据上升沿时间,即SDA从0.3VDD到0.7VDD这一段时间,标准模式下最大为1us,最小不限
tf是指数据下降沿时间,即SDA从0.7VDD到0.3VDD这一段时间,标准模式下最大为0.3us,最小不限
5. tHD;STA
指开始保持时间,数据SDA变为低电平(SDA低于0.3VDD瞬间开始)一直到SCL开始变为低电平(SCL低于0.7VDD瞬间)这段时长,标准模式下最小值为4.0us
6. tSU;STA
指起始建立时间,只有在发完上一个数据Re-Start时才会有这个时序,从SCL变为高电平(SCL电压大于0.7VDD瞬间)开始到SDA开始变为低电平(SDA低于0.7VDD瞬间)这一段时间的时长,标准模式下最小为4.7us。
7. tSU;DAT
指数据建立时间,数据SDA完成电平变换(指SDA由0V变为0.7VDD瞬间或从VDD变为0.3VDD瞬间开始)一直到时钟SCL开始采集(指SCL大于0.3VDD)这一段时长,标准模式下最小250ns。
8. tHD;DAT
指数据保持时间,时钟SCL高电平结束后变为低电平(指SCL低于0.3VDD瞬间开始)一直到数据SDA完成电平转换(指SDA由0V变为0.7VDD瞬间或从VDD变为0.3VDD瞬间开始)这一段时长,标准模式下最小5us。
9. tSU;STO
指结束建立时间,从SCL变为高电平(指SCL高于0.7VDD瞬间开始)到SDA开始变为高电平(指SDA高于0.3VDD瞬间)这段时间的时长,标准模式下最小4.0us。
二、上拉电阻的计算
对于标准模式(即通信速率为100k),上拉电阻受电源电压、输入电流和总线电容影响,引脚输入电流有限,一般为3mA,总线电容Cb最大为400pF。
由于引脚输入电流有限,过大可能损坏设备,因此可以计算上拉电阻的最小值Rpmin=(VDD-0.3VDD)/0.003,取0.3VDD是因为低电平最大值为0.3VDD。以VDD为3.3V计算,Rp的最小值为(3.3-3.3*0.3)/0.003=0.77kΩ
另外由于前面讲过的上升沿时间tr最大值(标准模式1us)影响,可以计算上拉电阻的最大值。
上升沿其实就是对电容Cb充电的过程,按照tr的定义可以得出以下式子:(其中R为Rp,C为Cb)
以tr最大为1us,Cb最大为400pF计算得:
因此Rp取值范围在0.77k到2.86k之间,建议取靠近中间的值,实际总线电容可能没有400pF,因此也可以稍微取大一些,常见的是4.7k。