问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IIC 接口:一文读懂,不再踩坑!

创作时间:
作者:
@小白创作中心

IIC 接口:一文读懂,不再踩坑!

引用
什么值得买
1.
https://post.m.smzdm.com/p/a34p66o7/

IIC(Inter-Integrated Circuit)接口是一种广泛应用于嵌入式系统中的串行通信协议,由飞利浦(现为NXP)公司在1982年发明。它通过两条信号线(SCL和SDA)实现设备间的低速数据传输,具有硬件连接简单、协议易于实现的特点,在消费电子、工业控制等领域得到广泛应用。本文将详细介绍IIC接口的工作原理、电气参数、应用设计以及常见问题的排查方法,帮助读者全面了解这一重要的通信协议。

起源

I²C(Inter-Integrated Circuit)是一种广泛用于短距离通信的串行总线,常用于嵌入式系统、传感器与微控制器之间的数据传输。 I²C总线由飞利浦(现为NXP)在1982年发明,旨在提供一种简单的双线通信方式,以便于微控制器与外设(如EEPROM、ADC、传感器、LCD驱动器等)之间进行低速数据传输。由于其硬件连接简单、协议易于实现,被广泛应用于嵌入式系统、消费电子、工业控制等领域。

信号传输模式

I²C采用主-从(Master-Slave)架构,并基于半双工的串行通信方式。其主要特性如下:

  • 双线设计

  • SCL(Serial Clock Line):时钟信号,由主设备(Master)控制。

  • SDA(Serial Data Line):数据线,双向传输,使用开漏驱动+上拉电阻。

  • 数据传输方式

  • 起始信号(START,S):当SDA在SCL为高电平时,从高电平变为低电平,表示通信开始。

  • 地址传输:主设备发送7位或10位从设备地址,随后跟一个读/写(R/W)位。

  • 应答(ACK/NACK):从设备在接收到地址或数据后,会返回一个ACK(低电平)表示成功接收,或NACK(高电平)表示未响应或数据结束。

  • 数据传输:数据按字节(8-bit)传输,最高位(MSB)优先,每传输一个字节后需要一个ACK信号。

  • 停止信号(STOP,P):当SDA在SCL为高电平时,从低电平变为高电平,表示通信结束。

  • 速率模式

  • 标准模式(Standard Mode,100 kHz

  • 快速模式(Fast Mode,400 kHz

  • 高速模式(High-Speed Mode,3.4 MHz

  • 超高速模式(Ultra-Fast Mode,5 MHz

电气参数

  • 电压范围:典型的I²C设备工作在3.3V或5V,但低功耗设备可能支持1.8V或更低电压。
  • 上拉电阻
  • SDA和SCL线需要上拉电阻(典型值4.7kΩ~10kΩ,但取值依赖于总线电容和速率)。
  • 高速模式可能需要更小的上拉电阻(1kΩ~2kΩ)来确保信号边沿上升足够快。
  • 最大电容
  • I²C总线的最大允许负载电容一般为400 pF,超出可能导致信号失真。

应用设计

I²C 设备连接

  • 单主多从(最常见):多个从设备共享SDA和SCL,由主设备控制。
  • 多主多从:多个主设备可协同工作,但需要仲裁机制避免冲突。

I²C在嵌入式系统中的应用

  • 传感器读取:如温度传感器(如BMP280)、加速度计(如MPU6050)。
  • EEPROM存储:如AT24C系列I²C EEPROM。
  • 显示设备:如OLED/LCD驱动(如SSD1306)。
  • GPIO扩展:如PCF8574(8-bit I/O扩展器)。
  • 音频编解码:如WM8960等音频芯片。

问题排查方式

(1)总线冲突

  • 多个设备同时尝试发送数据,可能导致信号异常。可以检查是否正确设置了主/从设备模式。

(2)信号干扰

  • SDA/SCL线上噪声干扰:可能是上拉电阻过大导致信号上升时间过长,可适当降低电阻值。
  • 长线传输衰减:I²C适用于短距离(一般**<1米),长距离可考虑I²C中继器(如PCA9615)**。

(3)设备地址冲突

  • 确保不同I²C设备地址不同,某些芯片支持更改地址(如通过引脚或软件指令)。
  • 使用i2cdetect工具扫描设备地址。

(4)时序问题

  • 低速模式可尝试降低I²C速率,确保设备能够正确应答。
  • 检查MCU I²C时钟源配置是否正确(如STM32的I2C_TIMINGR寄存器)。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号