ZHCAEV1 December 2024 BQ79616 , MSPM0G3507
在 BQ79616 菊花链通信结构中,MSPM0 通过 UART 直接与 BQ79616 基底器件通信,而 BA79616 基底器件通过菊花链与 BQ79616 堆栈器件通信。
在 MSPM0 和 BQ79616 之间传输的数据结构如图 3-2 所示,每个字节均以标准 UART 协议传输,UART 波特率为 1MHz。数据结构的定义如下:
图 3-2 与主机的 UART 通信DIR0_ADDR 和 DIR1_ADDR 是两个 6 位器件地址寄存器,这两个寄存器用于识别通过菊花链连接的不同 BQ79616 器件。在系统初始化期间,MSPM0 执行 BQ79616 自动寻址功能,基底器件的地址为 0,堆栈器件的地址从 1 开始并以 1 递增,BQ79616 总数量最多可为 64 个。为了提高通信稳健性,菊花链通过 COMH COML 差分电压信号传输位。电压电平的定义如图 3-3 所示。
图 3-3 菊花链位定义菊花链使用 13 位二进制编码来传输一个字节的数据,其内容与基底器件发送或接收的 UART 字节一一对应。数据结构的定义如图 3-4 所示。
图 3-4 菊花链字节定义根据 UART 和菊花链通信协议,MSPM0 和 BQ79616 堆栈器件之间的通信可以支持表 3-2 中所示的功能。
| 命令 | 说明 |
|---|---|
| 单器件读 | 从单个器件(基底或堆栈)读取寄存器 |
| 单器件写 | 将寄存器写入单个器件(基底或堆栈) |
| 栈读 | 仅从堆栈器件读取寄存器。器件必须配置为堆栈器件 (COMM_CTRL[STACK_DEV] = 1) 才能响应堆栈读取命令。 |
| 栈写 | 仅针对堆栈器件写入寄存器。器件必须配置为堆栈器件 (COMM_CTRL[STACK_DEV] = 1) 才能响应堆栈写入命令。 |
| 广播读 | 针对菊花链中的所有器件(包括基底器件)读取寄存器。 |
| 广播写 | 针对菊花链中的所有器件(包括基底器件)写入寄存器。 |
| 广播写反向 | 以 CONTROL1[DIR_SEL] 位设置的相反方向发送广播写入。该命令用于切换与 RING 接口的通信方向。 |