工具与软件:
我们使用 S32K1 MCU 通过 SPI (通过 CRC)与 BQ76952通信。 在我们发送命令的某个时刻、BQ76952仅回显命令。 这会导致问题、因为它会被解释为真实数据(地址匹配且 CRC 有效)。 例如、以下是我们读取带数据的子命令的顺序:
- 将子命令 LSB ID 写入0x3E
- 将子命令 MSB ID 写入0x3F
- 等待 TRM 中表9-2中定义的"运行时间"周期
- 读取响应表单0x61的长度
- 从0x40读取数据以了解预期长度
- 从0x60读取校验和
现在、此过程会在步骤4随机失败、因为 BQ76952回显了命令、因此我们收到错误的数据长度、即
MOSI:61 FF 13、MISO:61 FF 13
由于接收到的地址(61)是我们预期的地址且 CRC 有效、因此 MCU 无法知道这不是"真实"数据。 我知道 BQ76952可能不是"准备就绪"状态、但在这种情况下、它应该以 FF FF 00进行响应。
您是否能够提供任何见解以帮助我了解正在发生的事情? 除了在步骤3中增加不必要的长延迟之外、我们是否可以采取任何措施来解决此问题?
谢谢你。