首页 Home / 技术资讯 Insights / 一条 I²C 总线挂不下了:地址撞车、多路复用和那几颗停产件
选型指南发布 2026-09-28SUNTEC 晟雅泰 技术团队

一条 I²C 总线挂不下了:地址撞车、多路复用和那几颗停产件

设备上 I²C 器件一多就会碰到两件事:地址不够用,以及总线电容超标。常见的坑是 PCF8574、PCF8575 和 MCP23017 三个型号共用同一段 0x20~0x27,混用也只能挂 8 颗。更要紧的是 PCF8574 与 PCF8574A 在原厂已标停产、PCF8575 已停止生产,新设计不该再从这几颗起步。本文说明地址怎么排、什么时候该上 8 路复用器,以及复用器解决不了什么。

先说两个结论

第一,I²C 挂不下不外乎两个原因:地址撞了,或者总线电容超了。这两件事的解法完全不同,先分清楚再选料。第二,很多老图纸上的 PCF8574、PCF8574A、PCF8575 已经不适合进新设计了——前两颗在恩智浦官网上标的是 End of Life,第三颗标的是 No Longer Manufactured。

  • 地址不够:先看能不能换一颗地址段不同的同类件;实在不够再上 I²C 多路复用器。
  • 电容超标:复用器只有在分时只开一路时才等于把总线分段,同时开多路并不解决电容。
  • 新设计选料:I/O 扩展优先看还在产的型号;复用器 PCA9548A 与 TCA9548A 都在产。
  • 别把 8 位写成 7 位:PCF8574A 的 7 位地址是 0x38~0x3F,写成 0x70 是把写字节当成了地址。

什么设备会碰到

典型是三类:一是多传感器的采集箱或机柜,同型号的温湿度、电流传感器要装好几只,地址天生就重;二是带多块子板的设备,每块子板上都有一颗同样的 I/O 扩展或 EEPROM;三是走线比较长的设备,主板到面板、到背板的 I²C 拉了几十厘米,电容上去之后波形爬不起来。前两类是地址问题,第三类是电容问题。

地址撞在哪:三个型号共用一段

把常用的几颗排在一起看就很清楚。PCF8574 的固定高位是 0100,加三根地址脚,7 位地址落在 0x20~0x27;PCF8575 是同样的固定高位,也是 0x20~0x27;MCP23017 固定高位同样是 0100,还是 0x20~0x27。三个型号完全重叠——混着用,这 8 个地址要在三个型号之间分,总数还是 8 颗,不是 24 颗。

唯一错开的是 PCF8574A,它的固定高位是 0111,独占 0x38~0x3F。恩智浦在数据手册里写得很明白:PCF8574 和 PCF8574A 除了从机地址的固定部分不同之外完全相同,三根硬件地址脚让每一种可以挂 8 颗,所以同一条总线上可以有多达 16 颗这两种 I/O 扩展器,支持 128 个 I/O。

这里有个很常见的记法错误:PCF8574A 的「地址字节」是 70h~7Eh,但那是 8 位写字节,7 位地址是 0x38~0x3F。写成 0x70 会让人误以为它和复用器撞车,实际上不撞。

表 1 常用 I²C 器件的地址段与状态
型号厂家功能7 位地址段最多挂温度与生命周期
MCP23017-E/SP微芯16 位 I/O 扩展(GPA7、GPB7 仅输出)0x20~0x278 颗−40~+125℃,只有这一个温档
PCF8574T恩智浦8 位 I/O 扩展,100kHz0x20~0x278 颗−40~+85℃,原厂标 End of Life
PCF8574AT恩智浦8 位 I/O 扩展,100kHz0x38~0x3F8 颗−40~+85℃,原厂标 End of Life
PCF8575TS恩智浦16 位 I/O 扩展,400kHz0x20~0x278 颗−40~+85℃,已停止生产
24LC256-I/P微芯256kb I²C EEPROM,400kHz0x50~0x578 颗−40~+85℃
PCA9548APW恩智浦8 路 I²C 复用,带复位0x70~0x778 颗−40~+85℃,在产
TCA9548APWR德州仪器8 路 I²C 复用,带复位0x70~0x778 颗−40~+85℃,在产

什么时候该上复用器

同型号器件超过 8 只,或者几个型号抢同一段地址且换不掉,就该上 8 路复用器了。PCA9548A 和 TCA9548A 的从机地址都是 0x70~0x77,一条主总线上各能挂 8 颗,单层就是 64 个通道。上电时所有通道都是断开的,靠一个 8 位控制寄存器逐位打开,B0 对应通道 0,一直到 B7。

这两颗在 24 脚 TSSOP 上引脚定义、从机地址、控制寄存器位定义、复位行为都是一致的,3.3V 系统里实际可以互换。但两家手册都没有任何一句声明和对方交叉兼容,而且确实有差别:电源下限一个是 2.3V、一个是 1.65V,I/O 耐压一个是 6V、一个是 5V,封装阵容也不完全一样。要当替代用,这几项要逐条确认,不要因为型号像就直接换。

表 2 两颗 8 路 I²C 复用器的差别
项目PCA9548APW(恩智浦)TCA9548APWR(德州仪器)
24 脚 TSSOP 引脚A0/A1/A2、复位、SD0~SD7、SC0~SC7定义相同
从机地址0x70~0x770x70~0x77
控制寄存器8 位,B0 对应通道 0定义相同
复位与中断有低有效复位,无中断引脚有低有效复位,无中断引脚
电源范围2.3~5.5V1.65~5.5V
I/O 耐压6V5V
电平转换下限供电最低 2.3V,配不到 1.8V 总线供电可到 1.65V,能配 1.8V 总线

复用器解决不了的两件事

一是中断。8 路的 PCA9548A 和 TCA9548A 都没有中断引脚,从器件的中断线只能绕过复用器自己接回主控。恩智浦在应用笔记里介绍的“中断跟着通道走、而且能读控制寄存器判断是哪一路来的中断”,对应的是 2 路和 4 路的型号,不是 8 路这两颗。如果设备确实需要按通道区分中断,这是一个 8 路换 4 路的真实取舍。

二是总线电容。复用器是开关,不是缓冲器。恩智浦在应用笔记里写明:这一族器件在通道之间提供很好的隔离,但不提供额外的驱动能力,所以选上拉电阻时上游和下游的负载都要算进去。德州仪器的手册说的是同一件事——同时打开多个通道时,各通道上的从器件都会累加到总线电容里。也就是说,只有分时只开一路,复用器才等于把总线分段;同时开多路并不能解决电容超标。

电容的上限本身是有明确规定的:I²C 规范里,标准模式和快速模式的每根总线电容上限都是 400pF,快速模式加强版是 550pF。上拉电阻没有单一推荐值,规范给的是两条边界——上限由上升时间和总线电容决定,下限由器件的最小灌电流决定(标准模式和快速模式是 3mA,快速模式加强版是 20mA)。德州仪器和微芯的手册里都把这两条写成了明文公式,取值范围算出来之后,在范围内偏大一点可以省电流,偏小一点边沿更快。

推荐路径

新设计要 I/O 扩展,先看还在产的型号。MCP23017 是 16 位、带两根中断输出和一根硬件复位脚,支持到 1.7MHz(那一档要求 4.5~5.5V 供电且总线电容不超过 100pF),温度是 −40 至 +125℃ 的单一档位。要注意它的 GPA7 和 GPB7 只能做输出,真正可当输入用的是 14 位。另外它的地址脚和复位脚都没有内部偏置,必须外部接死。

老板子上还在用 PCF8574、PCF8574A 或 PCF8575 的,续产阶段照常采购没问题,但新项目立项时建议换掉。恩智浦在 PCF8574 的数据手册里给了官方迁移方向:PCA8574/74A 把速率提到 400kHz、总灌电流从 80mA 提到 200mA;PCA9674/74A 与 PCA9670、PCA9672 支持到 1MHz,且可用地址数量更多。具体选哪一颗要按手册逐项比。

要做电平转换就看最低那条总线的电压。两家的规则一致:复用器的通过电压要等于或低于总线里最低的那个电压。3.3V 主侧配 1.8V 从侧这种组合,PCA9548A 做不到——它供电最低只能到 2.3V,此时通过电压的最坏值已经高于 1.8V;TCA9548A 供电可以到 1.65V,把供电设到 1.8V 一档就能满足。

采购上容易出错的两处

第一处是把停产件当成通用件。PCF8574、PCF8574A 在恩智浦官网的状态是 End of Life,按官方定义是正在停产、可以下单到最后订购日为止;PCF8575 的状态是 No Longer Manufactured,官方定义是不再接单也不再生产。这两种状态对续产和新项目的意义完全不同,报价前要先确认。

第二处是料号后缀。MCP23017 只有 E 这一个温度档位,−40 至 +125℃,原厂在数据手册里专门注明这一系列只提供 E 档,所以不存在 -I 版本,拿 -I/-E 去比这颗是比不出来的。而 24LC256 的 -I 是 −40 至 +85℃、-E 是 −40 至 +125℃,两个系列的后缀含义不能互相套用。

要排地址或选替代可以找我们

以上料号都在晟雅泰在售清单内。如果你手上有一张 I²C 器件清单不知道地址够不够排,或者图纸上的 PCF857x 需要找还在产的替代,把型号和数量发给我们,可以直接给出地址分配方案和对应的在售料号。工作日 24 小时内给报价。

本文出自 SUNTEC 晟雅泰(苏州晟雅泰电子有限公司)技术团队。

常见问题 FAQ

一条 I²C 总线上最多能挂几颗 PCF8574?

8 颗。它有三根硬件地址脚,7 位地址落在 0x20~0x27。如果再加上 PCF8574A,因为后者的固定高位不同、独占 0x38~0x3F,两种合起来可以挂 16 颗、支持 128 个 I/O,这是恩智浦数据手册里的原话。要注意 PCF8575 和 MCP23017 也占 0x20~0x27,和 PCF8574 完全重叠。

PCF8574 和 PCF8575 还能用在新设计里吗?

不建议。恩智浦官网上 PCF8574 与 PCF8574A 的状态是 End of Life,按官方定义是正在停产、可以下单到最后订购日;PCF8575 的状态是 No Longer Manufactured,即不再接单也不再生产。老板子续产可以照常采购,新项目建议按原厂给的迁移方向换到 PCA8574/74A 或 PCA9674 这类还在产的型号。

上了 I²C 多路复用器,总线电容问题是不是就解决了?

只有分时只开一路时才算解决。复用器是开关不是缓冲器,恩智浦在应用笔记里写明它不提供额外驱动能力,选上拉电阻时上下游负载都要算进去;德州仪器的手册也写了同时打开多个通道时各通道的从器件都会累加到总线电容。规范给的电容上限是标准模式和快速模式各 400pF、快速模式加强版 550pF。

PCA9548A 和 TCA9548A 能直接互换吗?

在 24 脚 TSSOP、3.3V 系统里,引脚定义、从机地址(都是 0x70~0x77)、控制寄存器位定义和复位行为都一致,实际可以换。但两家手册都没有声明和对方交叉兼容,而且电源下限(2.3V 对 1.65V)、I/O 耐压(6V 对 5V)和封装阵容确实不同。要配 1.8V 的总线只能用 TCA9548A,PCA9548A 供电下不到那么低。

相关品牌 Related Brands

相关阅读 Related Articles

← 返回技术资讯列表 All Insights