主控(PCA9546A)
介绍
本模块使用PCA9546A芯片作为核心,这是一款基于 I²C 总线的 4 通道双向转换开关,可通过 I²C 命令选择激活 1 路或多路下游 I²C 通道,实现 I²C 总线的扩展与隔离。
特性
- 4 路双向 I²C 转换通道
- 通过 I²C 总线进行通道选择
- 3 个地址引脚(A0、A1、A2),最多支持 8 个器件挂载到同一总线上
- 工作电压:2.3V ~ 5.5V
- 支持热插入
- 上电默认:所有通道不选通
- 支持同时选通多个通道
寄存器
控制寄存器
PCA9546A 只有一个控制寄存器,在 I²C 写入传输中,地址字节后的第一个字节即为控制寄存器,用于选择需要导通的通道。
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 符号 | - | - | - | - | CH3 | CH2 | CH1 | CH0 |
| 默认值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
字段说明:
- CH0 (Bit 0): 通道 0 使能位,置 1 选通通道 0
- CH1 (Bit 1): 通道 1 使能位,置 1 选通通道 1
- CH2 (Bit 2): 通道 2 使能位,置 1 选通通道 2
- CH3 (Bit 3): 通道 3 使能位,置 1 选通通道 3
- Bit 4 ~ 7: 保留位,应写入 0
多个通道位可以同时置 1,实现多通道同时选通。
读取控制寄存器
读取时,主机在发送从机地址 + R/W=1 后,直接读取 1 个字节即可获取当前控制寄存器的状态,从而得知哪些通道当前处于选通状态。
地址
PCA9546A 的 7 位 I²C 从机地址结构如下:
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 固定值 | 1 | 1 | 1 | 0 | A2 | A1 | A0 | R/W |
- 高 4 位固定为
1110 - A0、A1、A2 由硬件引脚电平决定(0 或 1)
- 可用地址范围:
0x70~0x77(7 位地址)
| A2 | A1 | A0 | 7位地址 |
|---|---|---|---|
| 0 | 0 | 0 | 0x70 |
| 0 | 0 | 1 | 0x71 |
| 0 | 1 | 0 | 0x72 |
| 0 | 1 | 1 | 0x73 |
| 1 | 0 | 0 | 0x74 |
| 1 | 0 | 1 | 0x75 |
| 1 | 1 | 0 | 0x76 |
| 1 | 1 | 1 | 0x77 |