1.拉低CSB电平;
2.发送起动自测试状态组转换和轮询状态指令(0x05 0x4F);
3.通过PEC计算函数计算发送起动自测试状态组转换和轮询状态指令的PEC校验码;
4.拉高C写入起动自测试状态组转换和轮询状态函数SB电平。
//LTC6804_statst:起动自测试状态组转换和轮询状态函数
void LTC6804_statst(Uint8 parallel){
Uint8 i;
Uint8 ST[2];
Uint8 cmd[4]; //定义一个4字节数组,两个字节作为数据,两个字节作为PEC校验
Uint16 cmd_pec;
ST[0]=0x05; //MD=0x10:7kHz,ST=0x10:test 2
ST[1]=0x4F;
//指令
cmd[0] = ST[0];
cmd[1] = ST[1];
//PEC
cmd_pec = pec15_calc(2, ST); // PEC转换函数
cmd[2] = (Uint8)((cmd_pec&0xff00) >> 8); //PEC0,第14-7位PEC
cmd[3] = (Uint8)(cmd_pec&0xff); //PEC1,第6-0位PEC
//唤醒
wakeup_idle(parallel); //This will guarantee that the LTC6804 isoSPI port is awake. This command can be removed.
LTC6804_CS(parallel,0); //使能
//将STATST轮询指令写入
for(i=0; i<4;i++){
SPIA_SendReciveData(cmd[i]);
}
LTC6804_CS(parallel,1); //未使能
}
原文:https://www.cnblogs.com/fcy1/p/12929077.html