Hi
我们在测试BQ7695204时发现SPI读写的速度太慢,远超我们的预期,严重影响到其他代码的运行。
经过测试发现在读取时,在第二次读取时才能将想要的数据及CRC值读取出来,这就导致BQ7695204读写寄存器所花费的时间远超我们预期值,
请问在保证CRC功能的前提下,有没有办法解决SPI读写寄存器过慢的问题?
当前SPI 时钟频率为0.26MHz,我们最高能提高到0.31MHz,但这容易导致SPI CRC校验失败从而重试
下表是我们测试读取不同数量寄存器所花费的时间
寄存器读取时间 |
||
register name |
address |
time(ms) |
cell1 voltage |
0x14-0x15 |
1.66 |
cell1-cell15 voltage |
0x14-0x31 |
36.3 |
DASTATUS5 |
0x0075 |
39.7 |
以下是这几种情况的实际波形
图1 读取cell1 voltage(0x14~0x15)的波形
从波形很明显能看出,在读取cell1 voltage时,读取了两次0x14寄存器和两次0x15寄存器,这就导致SPI 读写时间近乎翻倍
图2 读取cell1~cell15 voltage的波形
和前一个波形一样,每个寄存器都读取了两遍