LTC6804 清除电池电压寄存器组、清除辅助寄存器组、清除状态寄存器组

一、写入清除电池电压寄存器组指令步骤

1.拉低CSB电平;
2.发送清除电池电压寄存器组指令(0x07 0x11);
3.通过PEC计算函数计算清除电池电压寄存器组指令的PEC校验码并发送;
4.拉高CSB电平。

二、清除电池电压寄存器组函数

//LTC6804_clrcell:清除电池电压寄存器组函数
void LTC6804_clrcell(Uint8 parallel){
Uint8 i;
Uint8 cmd[4];
Uint16 cmd_pec;

cmd[0] = 0x07;
cmd[1] = 0x11;

cmd_pec = pec15_calc(2,cmd);
cmd[2] = (Uint8)(cmd_pec>>8);
cmd[3] = (Uint8)(cmd_pec);

wakeup_idle(parallel);

LTC6804_CS(parallel,0);
for(i = 0;i<4;i++){
	SPIA_SendReciveData(cmd[i]);
}
LTC6804_CS(parallel,1);

}

三、写入清清除辅助寄存器组指令步骤

1.拉低CSB电平;
2.发送清除辅助寄存器组指令(0x07 0x12);
3.通过PEC计算函数计算清除辅助寄存器组指令的PEC校验码并发送;
4.拉高CSB电平。

四、清除辅助寄存器组函数

//LTC6804_clraux:清除辅助寄存器组函数
void LTC6804_clraux(Uint8 parallel){
Uint8 i;
Uint8 cmd[4];
Uint16 cmd_pec;

cmd[0] = 0x07;
cmd[1] = 0x12;

cmd_pec = pec15_calc(2,cmd);
cmd[2] = (Uint8)(cmd_pec>>8);
cmd[3] = (Uint8)(cmd_pec);

wakeup_idle(1);

LTC6804_CS(parallel,0);
for(i = 0;i<4;i++){
	SPIA_SendReciveData(cmd[i]);
}
LTC6804_CS(parallel,1);

}

五、写入清除状态寄存器组指令步骤

1.拉低CSB电平;
2.发送清除状态寄存器组指令(0x07 0x13);
3.通过PEC计算函数计算清除状态寄存器组指令的PEC校验码并发送;
4.拉高CSB电平。

六、清除状态寄存器组函数

//LTC6804_clrstat:清除状态寄存器组函数
void LTC6804_clrstat(Uint8 parallel){
Uint8 i;
Uint8 cmd[4];
Uint16 cmd_pec;

cmd[0] = 0x07;
cmd[1] = 0x13;

cmd_pec = pec15_calc(2, cmd);
cmd[2] = (Uint8)(cmd_pec >> 8);
cmd[3] = (Uint8)(cmd_pec);

wakeup_idle(1);

LTC6804_CS(parallel,0);
for(i=0;i<4;i++){
  SPIA_SendReciveData(cmd[i]);
 }
LTC6804_CS(parallel,1);

}

猜你喜欢

转载自www.cnblogs.com/fcy1/p/12929321.html