PCA9554 I/O 扩展器
PCA9554 组件允许你在 ESPHome 中使用各种德州仪器 I/O 扩展器,通过 I²C 总线 进行通信。
经测试可与此组件配合使用的设备包括 PCA9554、PCA9554A、PCA9536 和 PCA9535。 具有相同命令接口且最多 16 个 I/O 引脚的等效 TI I/O 扩展器,如 TCA9554 和 TCA9535,应该也可以使用。

配置完成后,你可以在项目中使用 16(PCA9535)、8(PCA9554、PCA9554A)或 4(PCA9536)个引脚中的任意一个。 在 ESPHome 中,它们模拟真实的内部 GPIO 引脚, 因此可以与 ESPHome 的许多组件一起使用,如 GPIO 二进制传感器或 GPIO 开关。
NOTE
7 位 I²C 设备地址范围是:
- PCA9554 和 PCA9535:
0x20至0x27 - PCA9554A:
0x38至0x3F - PCA9536:
0x41
对于 PCA9535、PCA9554 和 PCA9554A,I²C 设备地址的实际选择取决于 3 个地址引脚的状态。 有关设置地址的更多细节,请参阅页面底部链接的各数据手册。
同一 I²C 总线上最多可以放置八个 PCA9535 或 PCA9554,以及额外八个 PCA9554A 设备。 请注意,由于 PCA9536 的地址固定,每条 I²C 总线只允许放置一个 PCA9536。
PCA9535 提供 16 位 GPIO(引脚号 0-15)。
PCA9554 和 PCA9554A 提供 8 位 GPIO(引脚号 0-7)。
PCA9536 提供 4 位 GPIO(引脚号 0-3)。
任何接受 Pin Schema 的选项原则上都可以使用,但某些 更复杂的、通过此 I/O 扩展器进行通信的组件将无法工作。
# 示例配置条目pca9554: - id: 'pca9554a_device' address: 0x38
# 单独的输出switch: - platform: gpio name: "PCF9554A Pin #0" pin: pca9554: pca9554a_device # 使用引脚号 0 number: 0 # 为 INPUT 或 OUTPUT 之一 mode: output: true inverted: false-
id (必选, ID): 用于此
pca9554组件的 id。 -
address (可选, int): 驱动器的 I²C 地址。 默认为
0x20。 -
pin_count (可选, int): 扩展器中实现的位数。默认为 8。使用 PCA9535 时应设为 16,使用 PCA9536 时应设为 4。
-
interrupt_pin (可选, Pin Schema): 连接到 PCA9554/PCA9535 的 INT 输出的引脚。配置后,组件将变为中断驱动而非 轮询——它只在引脚实际改变状态时才读取芯片,从而显著减少 I²C 总线流量 和 CPU 占用。INT 引脚为低电平有效且为开漏,因此需要一个外部或内部上拉电阻。 必须是内部 GPIO 引脚(不能是另一个扩展器的引脚)。
NOTE
除非将 pin_count 设置为 16,否则 PCA9535 将无法工作(即使在低 8 位上)。
引脚配置变量
Section titled “引脚配置变量”-
pca9554 (必选, ID): 引脚的
pca9554组件的 id。 -
number (必选, int): 引脚号。
-
inverted (可选, boolean): 所有读取和写入的值 是否应视为反转的。默认为
false。 -
mode (可选, string): 为此引脚设置的引脚模式。为
INPUT或OUTPUT之一。