I2C协议

      最后更新:2022-02-18 01:06:14 手机定位技术交流文章

      关于I2C

      I2C最早是飞利浦公司在1982年开发的一种双向二线制串行总线协议。它只需要两根信号线就能完成信息交换,发展至今已经有100kHz、400kHz、1MHz、3.4MHz、5MHz五种通信速率。最终通信速率取决于外设而非主机芯片。

      I2C信号线

      SCL时钟线

      SCL时钟线决定了通信速率,频率越高,传输速率越快,其在高电平时,SDA线数据有效。

      SDA数据线

      SDA数据线决定了传输什么数据,高电平表示1,低电平表示0。在SCL高电平期间,SDA必须稳定。

      I2C 时序

      • 起始标志

        SCL高电平时,SDA从高电平向低电平切换

      • 结束标志

        SCL高电平时,SDA从低电平向高电平切换
        I2CSTART&STOP

      • 应答标志

        SCL处于高电平时,SDA保持低电平

      • 非应答标志

        SCL处于高电平时,SDA保持高电平
        I2CACK

      • 等待应答

        与应答/非应答一样,只不过是把SCL置高,释放SDA后看从机的电平高低

      对于I2C的时序,需要注意的点:

      1. GPIO初始化(硬件I2C要严格使用复用开漏模式,防止大电流倒灌,软件可以用普通的推挽输出模式即可,但是在切换输出输入模式的时候,不要对引脚的高低电平进行操作,以免出现多余电平)
      2. I2C读写速度的计算要确定好MCU时钟速率、从机设备可接受的最大速率

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/18556.html

          热门文章

          文章分类