大家好,在使用AD7768的时候,怎么做CRC检验?我按照手册上来做的时候,等不到ADC输出的检验值。但我按照官网上的AD7779 CRC CALCULATOR 却能等到相应的值。我就是按照这个方式来做的:循环冗余校验确保正确 的数据通信 | 亚德诺半导体。待会儿可以上传代码。
谢谢!
大家好,在使用AD7768的时候,怎么做CRC检验?我按照手册上来做的时候,等不到ADC输出的检验值。但我按照官网上的AD7779 CRC CALCULATOR 却能等到相应的值。我就是按照这个方式来做的:循环冗余校验确保正确 的数据通信 | 亚德诺半导体。待会儿可以上传代码。
谢谢!
AD7779和AD7768的CRC的算法一样,应该是你的CRC函数写错了。下面的函数供参考:
#define AD7768_CRC8_POLYNOMIAL_REPRESENTATION 0x07
unsigned char AD7768_ComputeCRC8(unsigned long * pBuf, unsigned short bufSize)
{
unsigned long i = 0;
unsigned char crc = 0xFF;//***
while(bufSize)
{
for(i = 0x800000; i != 0x000000; i >>= 1)
{
if(((crc & 0x80) != 0) != ((*pBuf & i) != 0)) /* MSB of CRC register XOR input Bit from Data */
{
crc <<= 1;
crc ^= AD7768_CRC8_POLYNOMIAL_REPRESENTATION;
}
else
{
crc <<= 1;
}
}
pBuf++;
bufSize--;
}
return crc;
}