我们在器件初始化的时候遇到了这样的问题:当发送setlastaddress命令的时候最后PEC字节ic没有响应,导致通讯失败;之前的helloall和ROLLCALL命令均得到了正确的数据。现在是两个芯片连接,helloall设置的地址是0XE0,即第一个芯片的地址是A[0-4] 100000;ROLLCALL命令读回来的地址是1FA0和1F90,芯片个数也是正确的2个。紧接着发送setlastaddress命令,发送的数据书序是:广播命令、地址寄存器0X01、0X02、0X02和PEC字节,前面四个字节都得到了ic的响应,第五个PEC字节IC没有回应,导致通讯失败。PEC的数据是由前面四个字节按照CRC-8的算法生成的,算法源代码也一并附上。
void MAX11068_PEC_Calculation(U8 * pByteList, U32 NumberOfBytes, U8 *pCRCByte)
{
#define CRC8_POLY (0x07)
xdata U32 i;
xdata U8 j;
xdata U8 Remainder;
*pCRCByte = 0x00;
for(i = 0;i < NumberOfBytes;i++)
{
Remainder = *pCRCByte^pByteList[i];
for(j = 0;j < 8;j++)
{
if(Remainder&0x80 == 0x80)
{
Remainder = (Remainder << 1)^CRC8_POLY;
}
else
{
Remainder = (Remainder << 1);
}
Remainder = Remainder&0xff;
}
*pCRCByte = Remainder;
}
}
打赏帖 | |
---|---|
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 | |
LP‑MSPM0L1306开发版试用结果被打赏10分 |