【记录】如何拼出I2C的时序

接口是小,忘性也大

上面是网上找的图片

归纳一下有几个要素

  • 开始发送段 —— START标志 + 地址 + RW + ACK
  • RW标识 —— 影响开始发送段的R/W,以及后续DATA是读是写
  • 数据段 —— 根据RW,做数据的读写
  • ACK标识 —— 影响开始发送段数据段的ACK/NACK

对应几个寄存器域段

  • ADDR_EN (start)

  • RW

  • DATA

    • 写数据直接写在寄存器中
    • 读数据时,配置寄存器只是让接口去取数据
    • 需要再读寄存器一把,获得数据
  • ACK

  • 以上可以组装出所有的I2C波形,时序参数此处这里不讨论

    Q&A

  • 为什么读的最后一笔需要NACK?

    • 需要告诉slave后面不需要发了,释放sda,让master拉起stop
  • RESTART是什么?

    • 实际器件经常会看到——S- slave_addr - W - register_addr - ACK - register_addr - ACK - restart - slave_addr - R - read_data - ACK- read_data - NACK- stop 的时序
      此时register_addr可以当做数据来看待,restart可以当成另一笔命令(新的start)
    • 可能有超时机制,restart不能离上一笔命令太久

参考

https://www.wangchaochao.top/

官方标准文档下载
目前网上比较详细的介绍I2C文档主要有以下3个:

  1. I2C官方标准文档_UM10204
    I2C的官方文档是原飞利浦(Philips)半导体事业部,现恩智浦(NXP)半导体发布的UM10204文档,全文共64页,是目前最权威最详细的I2C协议介绍文章,最新版本Rev. 6发布于20140404,UM10204_4 April 2014: I2C-bus specification and user manual_Rev.6

  2. TI:理解I2C文档_SLVA704
    TI在2015年发布了一篇SLVA704文档, 全文共8页,精简的概括了I2C协议的电气特性,操作时序,读写时序等,比较适合I2C入门学习。

  3. ZLG:I2C总线规范中文版
    这篇文档发布于2000年左右,是对飞利浦官方文档UM10204_v2.1的翻译。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值