工具/软件:
尊敬的专家
我需要查阅 BQ76952随机串电压报告0V 的问题:
在项目的测试过程中、偶尔会发生 AFE 在低功耗放电期间将数据报告为0V 电压。 然而,它后来恢复正常。 由于延迟、未触发 AFE 欠压警报。 这种情况将在何种情况下发生
AFE 的原始数据如下(数据 CRC 正常):
1.获取单个日志的第7个字符串并按如下方式打印:MuxDrvBQ769x2_ReadReg (309)/低电压! ReTryStatus: 0| ReceiveBuffer[0][1][2][3]:0;66;0;0 | reg_addr: 20
读取寄存器0x20、AFE 返回单电芯 IIC 数据:ReceiveBuffe[4]={0、0x66、0、0}、CRC 转换正常、各个电压为0V
2.获取第9串单体日志,如下所示:MuxDrvBQ769x2_ReadReg(309)/低电压! ReTryStatus: 0| ReceiveBuffer[0][1][2][3]:0;cd;0;0 | reg_addr:二十四
读取寄存器0x24、AFE 返回单电芯 IIC 数据:ReceiveBuffe[4]={0、0xcd、0、0}、CRC 转换正常、单个电压为0V
3.获取第10串单体日志如下: MuxDrvBQ769x2_ReadReg(309)/低电压! ReTryStatus:0 | ReceiveBuffer[0][1][2][3]:0;1b;0;0 | reg_addr:二十六
读取寄存器0x26、AFE 返回单电芯 IIC 数据:ReceiveBuffe[4]={0、0x1b、0、0}、CRC 转换正常、单个电压为0V
CRC 低于:μ s
uint8
SrvAlgorithm_CRC8ForForForFor公式(const
uint8
*p_DataBuffer,
uint16
长度)
{
uint16
i;
uint8
Uccrc =
0;
while (len --)
!= 0)
{
对于(i
= 0x80;
i!=
0;i /=
2)
{
if ((UcCRC
和0x80)
!= 0)
{
UcCRC
*= 2;
UcCRC
^= 0x107;
}
暴露
UcCRC
*= 2;
if(*p_DataBuffer
和 i)
!= 0)
UcCRC
^= 0x107;
}
P_DataBuffer++;
}
返回(UcCRC);
}