主题中讨论的其他器件:EV2400
工具/软件:
TI 团队大家好、
我使用 STM32U535RET6 作为主机控制器、使用支持 CRC 的事务通过 SPI 与 BQ7697204 AFE 进行通信。 主机 SPI 时钟在配置 1.25MHz 。
SPI 事务序列如下所示:
SPI_SLAVE_SELECT(复位);
HAL_SPI_TransmitReceive (&hspi2、SPI_Tx、SPI_Rx、3、HAL_MAX_DELAY);
SPI_SLAVE_SELECT (SET);
delay_us (800);
SPI_SLAVE_SELECT(复位);
HAL_SPI_TransmitReceive (&hspi2、SPI_Tx、SPI_Rx、3、HAL_MAX_DELAY);
SPI_SLAVE_SELECT (SET);
例如、要读取 CellVoltage1、我在第一个事务中发送地址字节 0x14、0x00 和 CRC 字节、然后重复同一事务以接收电压数据。
当我将事务间延迟降低到 200µs 或 500µs 时、AFE 的读数会变得非常不稳定并且变化频繁。 即使存在 800µs 延迟、我仍然会观察到偶尔出现的异常值、但与较短的延迟相比、它们的频率要低得多。
由于我的 AFE 读取任务每 100ms 运行一次 、并且我需要获取所有 16 个电芯电压、3 个温度、电流和各种状态寄存器、因此 800µs 到 1000µs 或更高的巨大延迟会显著增加开销、这对于我的应用来说是不可接受的。
我希望获得有关如何在不影响与 AFE 的 SPI 通信可靠性的情况下降低此类事务间延迟的指导。
此致、
Sai Varun。