ZHCAEV1 December   2024 BQ79616 , MSPM0G3507

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2硬件设置
    1. 2.1 LP-MSPM0G3507 硬件连接
    2. 2.2 BQ79616EVM 硬件连接
    3. 2.3 TCAN1046VEVM 硬件连接
  6. 3软件结构
    1. 3.1 工程文件结构
    2. 3.2 软件功能和流程图
    3. 3.3 协议说明
      1. 3.3.1 UART 和菊花链
      2. 3.3.2 Ping 和音调
  7. 4系统测试
    1. 4.1 测试设置
    2. 4.2 Read Voltage
  8. 5总结
  9. 6参考资料

UART 和菊花链

在 BQ79616 菊花链通信结构中,MSPM0 通过 UART 直接与 BQ79616 基底器件通信,而 BA79616 基底器件通过菊花链与 BQ79616 堆栈器件通信。

在 MSPM0 和 BQ79616 之间传输的数据结构如图 3-2 所示,每个字节均以标准 UART 协议传输,UART 波特率为 1MHz。数据结构的定义如下:

  • 帧初始化(INIT,1 字节)
  • 器件地址(DEV ADR,1 字节)
  • 寄存器地址(REG ADR,2 字节)
  • 数据(DATA,各种字节长度)
  • 循环冗余校验(CRC,2 字节)
 与主机的 UART 通信图 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 所示。

  • 前导码(半位)
  • SYNC [1:0]
  • 帧起始(1 位)
  • 数据 [7:0]
  • 字节错误 BERR(1 位)
  • 后同步码(半位)
 菊花链字节定义图 3-4 菊花链字节定义

根据 UART 和菊花链通信协议,MSPM0 和 BQ79616 堆栈器件之间的通信可以支持表 3-2 中所示的功能。

表 3-2 MSPM0 和 BQ79616 之间的通信功能
命令 说明
单器件读 从单个器件(基底或堆栈)读取寄存器
单器件写 将寄存器写入单个器件(基底或堆栈)
栈读 仅从堆栈器件读取寄存器。器件必须配置为堆栈器件 (COMM_CTRL[STACK_DEV] = 1) 才能响应堆栈读取命令。
栈写 仅针对堆栈器件写入寄存器。器件必须配置为堆栈器件 (COMM_CTRL[STACK_DEV] = 1) 才能响应堆栈写入命令。
广播读 针对菊花链中的所有器件(包括基底器件)读取寄存器。
广播写 针对菊花链中的所有器件(包括基底器件)写入寄存器。
广播写反向 以 CONTROL1[DIR_SEL] 位设置的相反方向发送广播写入。该命令用于切换与 RING 接口的通信方向。