i2cdetect检测不到i2c设备_关于I2C的点滴总结

本文介绍了I²C总线的基本概念,包括其起源、重要特性、硬件连接方式、数据传输协议,以及如何处理多个主设备和从机的连接问题。I²C仅需两条线,具有灵活的波特率和主从设备架构,广泛应用在微控制器与传感器通信中。文章还详细阐述了I²C的数据传输协议,包括开始条件、地址位、读写位、应答位、数据块和停止条件,并给出了编程示例。
摘要由CSDN通过智能技术生成

5e533c24151b9eb439f56eb6c03ec8b2.png
  • 背景
  • 硬件层
  • 数据传输协议
  • 实际上如何工作?
  • 单个主设备连接多个从机
  • 多个主设备连接多个从机
  • 如何编程?
  • 总结

背景

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

I²C最重要的功能包括:

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

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

硬件层

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

设备间的连接如下所示:

f9bbecc7720c64a40eaac16755c59708.png

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

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

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

27f7c6115efd9063e14f8c6e79dd870f.png

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

其中

是逻辑低电压;

是逻辑低电流;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值