Post Go back to editing

AD7768 CRC 检验

大家好,在使用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;
    }