主机与 BQ79600-Q1 之间的通信可配置为 SPI 模式。请参阅 Topic Link Label7.3.1.3。主机始终是 SPI 主设备,而 BQ79600-Q1 始终是从设备。在物理层,SPI 是一个五引脚接口,包括 4 个通用引脚(nCS、SCLK、MOSI 和 MISO)以及 SPI_RDY。在 SPI 接口上,每个位在时钟从低电平到高电平转换时被捕捉,在时钟从高电平到低电平转换时被传输,一个字节包括 8 位,如图 7-13 所示。请注意,MISO 在空闲模式下被驱动为高电平。如果 MCU 与多个从器件通信,请在 BQ79600 MISO 和 MCU 之间添加一个三态缓冲器。
注: 虽然 SPI 接口在物理层是全双工的,但在帧层,它实际上是半双工,因为菊花链仅支持半双工。这意味着在给定的时间,MCU 和器件之间只传输一个命令帧或响应帧。
- 当命令从 MCU 发送到器件时,BQ79600 TX FIFO(2 个缓冲器)应为空,0xFF 发送到 MCU(FIFO 诊断模式下除外)。
- 当响应从器件发送到 MCU 时,MCU 应在 0xFF 中计时
- 主机应在 2MHz 至 6MHz 范围内提供 SPI 时钟。此范围由 FIFO 的预定义大小确定。即使 SPI 能够以 6MHz 频率运行,它也不会增加整个系统的吞吐量,因为菊花链速度仍会限制吞吐量。
- 为避免菊花链接口上的冲突,MCU 必须等到接收到所有预期的响应帧(或等待计时器到期)后再向 BQ79600 发送另一个命令帧。请参阅Figure 7-16 中的流程图。
- 当不向器件发送命令帧时,主器件应始终将 MOSI 驱动为 ‘1’。
- 主机读取模式:从主机角度来看,读取模式介于有效读取命令的第一个字节和接收到的最后一个预期字节之间。
- 器件读取模式:从有效读取命令的第一个字节开始,当 TX FIFO 超时且 FIFO 为空时,器件为读取模式。器件读取模式是主机读取模式的子集。(用于理解通信故障寄存器 0x2301 和 0x2302 的概念)
- 除 Comm Clear 外,器件在退出器件读取模式之前拒绝来自 MOSI 的任何数据。
- TX FIFO 超时后,SPI 模块拒绝来自菊花链(堆栈器件)或自身的任何数据GUID-855E27E4-6D46-4C4F-92DB-EEB56BE8F8B7.html#T5922410-89,直到再次进入器件读取模式。
- 对于命令帧,器件使用 nCS 的下降沿指示帧开始,上升沿指示帧结束。MCU 需要在整个帧(最多 14 个字符)内切换并保持 nCS 处于低电平,在该帧结束时将 nCS 切换回高电平。当 nCS 为低电平时,冻结 SCLK 是合法的。不支持命令帧中间的 nCS 脉冲。
- 对于响应帧,nCS 无需始终保持低电平,尽管它可以像发送命令帧一样。主机可以将 nCS 切换为高电平,在帧中间(字节边界处)停止 SPI 读取。