
这个电路是基于PCF8574(或兼容型号)的 I2C 接口 GPIO 扩展方案,核心功能是通过 I2C 总线为 MCU 扩展 8 路可配置的 GPIO 口(功能说明中 "10 路" 应为标注简化或扩展多片的场景),适用于 MCU GPIO 资源不足的场景。下面从元件作用 、工作原理 、设计要点展开分析:
一、关键元件作用拆解
| 元件 | 作用说明 |
|---|---|
| PCF8574(核心芯片) | I2C 接口的 8 位 GPIO 扩展器,支持输入 / 输出双向配置,通过 I2C 与 MCU 通信,扩展 8 路 GPIO(图中标注的OUTPUT P0-P7为实际输出,P8-P9为标注简化或多片扩展的预留)。 |
| R17、R18(4.7KΩ) | I2C 总线(SDA/SCL)的上拉电阻,保证总线空闲时为高电平,维持 I2C 通信的电气特性,4.7KΩ 是 I2C 总线的典型取值。 |
| C14(10uF/25V) | 电源去耦电容,滤除 3.3V 电源的高频噪声,需紧贴芯片 VCC 引脚放置,减少电源波动对 I2C 通信的干扰。 |
| A0/A1/A2(地址引脚) | 上拉至 VCC3V3,配置芯片的 I2C 地址为0x27(7 位地址),最多支持 8 片 PCF8574 通过改变 A0/A1/A2 电平扩展到 64 路 GPIO。 |
| INTN(中断引脚) | 开漏输出引脚,当输入引脚状态变化时,会拉低电平向 MCU 发送中断信号,避免 MCU 轮询输入状态,提升响应效率。 |
二、核心工作原理
PCF8574 通过 I2C 总线与 MCU 实现双向通信,核心流程如下:
- I2C 初始化 :MCU 通过 I2C 总线发送地址帧,匹配 PCF8574 的地址(
0x27),建立通信连接。 - GPIO 配置与控制 :
- 输出模式:MCU 通过 I2C 写入 8 位数据,直接控制每个 GPIO 引脚的高低电平(如驱动 LED、继电器等外设)。
- 输入模式 :MCU 通过 I2C 读取 8 位数据,获取外部输入状态(如按键、传感器信号);当输入状态变化时,
INTN引脚会产生中断,通知 MCU 及时读取数据。
- 中断响应 :
INTN为开漏输出,需 MCU 引脚配置为上拉输入;中断触发时,MCU 通过 I2C 读取输入状态并处理,处理完成后可通过 I2C 写入数据清除中断。
三、设计要点解读
-
I2C 总线设计
- 上拉电阻 R17、R18 的阻值(10KΩ)需匹配 I2C 总线的通信速率(最高 100kHz 标准模式),若需高速模式(400kHz),可适当减小阻值(如 4.7KΩ)。
- 总线长度不宜超过 1 米,否则需增加总线驱动芯片或调整上拉电阻阻值,避免信号衰减。
-
地址配置 A0/A1/A2 上拉至 VCC3V3 时,7 位 I2C 地址为
0x27(二进制0100111),读写地址分别为0x4E(写)和0x4F(读);若需扩展多片 PCF8574,可将 A0/A1/A2 接地或接 VCC,最多支持 8 片设备(地址范围0x20~0x27)。 -
中断引脚处理
INTN为开漏输出,需 MCU 引脚配置为上拉输入模式(内部上拉或外部加 10KΩ 上拉电阻),否则中断信号可能无法被正确检测。 -
电源稳定性去耦电容 C14 必须紧贴芯片 VCC 引脚放置,减少电源噪声对 I2C 通信的干扰;若系统电源波动较大,可增加 10uF 低频滤波电容进一步优化。
四、典型应用场景
该电路广泛用于MCU GPIO 资源不足的场景,例如:
- 工业控制:扩展多路继电器、传感器输入 / 输出接口;
- 智能家居:控制多路 LED 灯、按键输入、温湿度传感器等外设;
- 消费电子:为小型 MCU 扩展外设接口,如智能手表、便携设备等。