Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

  I2C是一种只使用两根线的串行通信协议。一根线是串行数据线SDA,另外一种是串行时钟线SCL。

I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。

  I²C的参考设计使用一个7比特长度的地址空间但保留了16个地址,所以在一组总线最多可和112个节点通信[a]。常

见的I²C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时钟频率可被允

许下降至零,这代表可以暂停通信。而新一代的I²C总线可以和更多的节点(支持10比特长度的地址空间)以更快的

速率通信:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。

  I2C分为主机模式和从机模式,主机通过SDA线发送设备地址(SLAVE_ADDRESS)查找从机,SLAVE_ADDRESS可

以是7位或10位,紧跟着SLAVE_ADDRESS的一个数据位用来表示数据传输方向,即第8位或11位。为0时表示写数据,为

1时表示读数据。

  在我所使用的系统中,I2C可以使用模拟的,也开始使用系统的,模拟的就是只需要配置好I2C的设备信息,就可以直接通过

I2C读写寄存器。系统的就是需要传输数据多的情况下,使用软件队列来进行读写操作。

  I2C调试过程,一般的思路是,先示波器->寄存器打印->收发流程日志确认。

posted on   虚生  阅读(909)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示