本帖最后由 eltonchang2001 于 2022-11-24 14:00 编辑
之前读取bmp280的时候,遇到了一个问题,就是iic驱动不起来,可能是线的长度太长了。
后面找到这个答案,才知道原理如此。分享给大家。
I2C协议在标准模式下的总线电容不能超过400pF。那么当总线上挂接的device比较多,或者走线比较长的时候,总线负载电容就会超过400pF,这时候就可以使用I2C buffer/repeater 去中继, 它的作用是将总线电容平均分配,比如总线电容630PF,加上中继器之后,就可以分成两部分,比如一部分310pF,一部分320PF,这样就不会超过400pF。 TCA9803 是repeater,所以衡量I2C repeater的 标准不是能传输多长距离,而是要看总线电容是否超过协议规定,下面是I2C三种工作模式下能够允许的总线电容大小:
standard mode CL=400pF
Fast mode CL=400pF
Fast mode plus Cl=500pF
|