请问I2C协议的问题

leetow2006 2020-04-12 02:48:21
我看写I2C通信协议的,比如启动协议有:
SDA=1; //发送起始条件的数据信号
_Nop();
SCL=1;
_Nop(); //起始条件建立时间大于4.7us,延时
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; //发送起始信号
_Nop(); //起始条件锁定时间大于4μ
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; //钳住I2C总线,准备发送或接收数据
_Nop();
_Nop();

可是我上网去查资料,都没有写需要延时4.7us,或起始条件锁定时间大于4,
请问I2C协议是不是有协议延迟的时间?哪里可以查到?
...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyaqi029 2020-04-13
  • 打赏
  • 举报
回复
这和你使用的器件有关,不同的器件不完全一样,你要看你使用器件的数据手册。这个是at2c02的数据手册。
leetow2006 2020-04-13
  • 打赏
  • 举报
回复
引用 1 楼 xuyaqi029 的回复:
I2C协议有高速,低速之分所以不能统一规定,具体要查你通讯的器件数据手册,比如I2C AT24C02数据手册上就有。

再请教问题:
我看Table 5中,t(SU.STA)是开始创建的时间,t(HD.STA)是开始保持的时间,
但是我看不懂Figure 2,Figure 2是什么图?好像不是启动协议的时序图,
SDA IN和SDA OUT是读数据与写数据的时序图吗?这与启动协议时序图有关系吗?
另外t(SU.STA)的间隔线一边画在SCL上,一边画在SDA IN上,请问t(SU.STA)
到底是表示SCL的延迟时间还是SDA的延迟时间呢?
leetow2006 2020-04-13
  • 打赏
  • 举报
回复
谢谢,我看看
xuyaqi029 2020-04-12
  • 打赏
  • 举报
回复
I2C协议有高速,低速之分所以不能统一规定,具体要查你通讯的器件数据手册,比如I2C AT24C02数据手册上就有。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧