i2cdetect检测不到i2c设备_I2C基础知识入门

本文介绍了I2C的基础知识,包括其背景、硬件层的SDA和SCL引脚、数据传输协议,以及单个主设备连接多个从机的情况。I2C使用2条线进行通信,具有灵活的波特率和多主从架构,常用于微控制器与传感器等设备间的通信。在实际应用中,需注意上拉电阻的选择和数据传输的协议细节。
摘要由CSDN通过智能技术生成

废话

I2C其实肝的我挺难受的,通讯协议这种规范往往可以抠出很多的细节,看了波叔的文章《万变不离其宗之I2C总线要点总结》,很详细。我打赌我还不会I2C,因为涉及到很多技术细节,在实际项目中往往是会被忽略的问题,于是结合自己以前的项目经验,简单再总结一下I2C,由于认知偏差,写完之后,长吁一口气,感觉自己好像懂了。

目录

  • 背景

  • 硬件层

  • 数据传输协议

  • 实际上如何工作?

  • 单个主设备连接多个从机

  • 多个主设备连接多个从机

  • 如何编程?

  • 总结

背景

I2C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980年代初设计的,方便了主板、嵌入式系统或手机与周边设备组件之间的通讯。由于其简单性,它被广泛用于微控制器与传感器阵列,显示器,IoT设备,EEPROM等之间的通信。

I2C最重要的功能包括:

  • 只需要两条总线;
  • 没有严格的波特率要求,例如使用RS232,主设备生成总线时钟;
  • 所有组件之间都存在简单的主/从关系,连接到总线的每个设备均可通过唯一地址进行软件寻址;
  • I2C是真正的多主设备总线,可提供仲裁和冲突检测;
  • 传输速度;
    • 标准模式:Standard Mode=100 Kbps
    • 快速模式:Fast Mode=400 Kbps
    • 高速模式:High speed mode=3.4 Mbps
    • 超快速模式:Ultra fast mode=5 Mbps
  • 最大主设备数:无限制;
  • 最大从机数:理论上是127;

以上是I2C的一些重要特点,下面会进一步对I2C进行介绍。

硬件层

I2C协议仅需要一个SDA和SCL引脚。SDA是串行数据线的缩写,而SCL是串行时钟线的缩写。这两条数据线需要接上拉电阻。

设备间的连接如下所示:

9f13dc33577614dfc1d7107c4a5118fd.png

使用I2C,可以将多个从机(Slave)连接到单个主设备(Master),并且还可以有多个主设备(Master)控制一个或多个从机(Slave)。

假如希望有多个微控制器(MCU)将数据记录到单个存储卡或将文本显示到单个LCD时,这个功能就非常有用。

I2C总线(SDASCL)内部都使用漏极开路驱动器(开漏驱动),因此SDASCL 可以被拉低为低电平,但是不能被驱动为高电平,所以每条线上都要使用一个上拉电阻,默认情况下将其保持在高电平;

a40d8e9e4a75e59f50897482b8672cf6.png

拉电阻的值取决于许多因素。德州仪器TI 建议 使用以下公式来计算正确的上拉电阻值:

其中 是逻辑低电压;

是逻辑低电流;

是信号的最大上升时间;

是总线(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值