I2C | 如何读 I2C 波形?

分析I2C时序波形时需要注意如下几点:

  • I2C 发出字节的bit顺序是从高位-->低位
    注意,这里有个很容易想当然犯错误的地方 – 有些人错误的看波形的方式是"先发出的波形被后发出的波形推着往前(右)走"。
    正确看懂波形的方式是“波形是从左往右增加的,已发出的bit波形位置固定了不会移动;简单理解就是左边的波形是先发出来的,是高位,右边的波形是后发出来的,也就是低位。。
  • Start / Restart 信号波形:SCL 高电平 + SDA 由高变低
  • 每次传输是9 bits = 8 bits data + 1 bit ACK
    8bits data可能的情况是:7bit addr + 1 bit 1/0(读写);8 bits register addr;8 bits tx data;8 bits rx data
    注意:有些 register addr是16 bits 或者 32 bits,这个时候就会连续发 2个或4个 8 bits 来组成 register addr。
  • Stop 信号波形:SCL 高点平 + SDA 由低变高
  • ACK – 拉底SDA
    host send to slave 时:ACK由slave发出;
    slave send to host 时:ACK由host发出;
  • 注意:波形中 Start/7bit addr + 1 bit 1/0(读写)/Restart/Stop 是由I2C host 发出的,在Slave驱动中找不到对应的数据;其余的波形对应的是Slave 驱动代码中 i2c read/write函数中构造的i2c_msg.buf 和 i2c_msg.len。这一点在结合驱动分析波形时很重要哦~

上传一份实际的波形图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值