前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迷乱的通信协议之IIC时序分析(下)

迷乱的通信协议之IIC时序分析(下)

作者头像
狂人V
发布2020-06-29 10:30:29
9440
发布2020-06-29 10:30:29
举报
文章被收录于专栏:电子狂人

经过昨天的分析,不知你对时序的分析是否有了一定的进步,今天将继续把IIC中关于读操作的分析,今天我自己进行分析的时候,发现寻址方式挺奇特的,慢慢品~

5、当前地址读取(Current AddressRead)

这个读取的方式是指在一次读或写操作后发起读操作,由于器件在完成一次读写操作后,其内部的地址指针会自动加一,因此当前地址读取可以得到加一后的地址中的数据。比如当上次读或写操作的地址为02时,当前地址读取的内容就是地址03处对应的数据。当数据不存在的时候就会出现图中的情况,等待无响应,然后主机发出停止信号结束通信。

6、随机读取(Random Read)

由上面的Current AddressRead可知读取并不方便,所以有了Random Read这种读取方式

注:Dummy Write——虚写操作,被称为虚写是因为它并没有写入数据,而是通过这种操作将地址指针指向虚写操作中的地址。

流程:进行一次虚写操作——等待从机响应——进行 5 步骤“当前地址读取”的操作。

7、连续读取(Sequential Read)

连续读取操作可以允许读遍整个模块,在Current AddressRead或Random Read完成后才会启动,需要主机在收到读取到的数据后,发出一个收到数据的响应反馈给从机,然后从机继续进行地址累加,从而开始下一个地址的数据读取,依次累加,当地址达到了最大的那个限制地址时,地址将进行翻转,然后可以继续开始读取,这里的连续读操作在上述随机读操作的基础上进行,若不需要读取数据时,主机停止对从机发送收到数据的响应反馈,然后等待无响应发出停止信号:

注:主机对从机发送收到数据的响应反馈,就是时序图中上方的那一串ACK,而下方的ACK,NO ACK都是属于从机反馈。

IIC的时序也分析完了,相信对你以后进行相关的驱动模块程序的编写有所帮助,如果之后时间足够的话,会对相关时序进行程序编写,具体以哪种语言实现,敬请期待未来的相遇!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子狂人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档