Other Parts Discussed in Thread: ADS131M04
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:ADS131M04 ASS131M0x 系列的示例代码(www.ti.com/.../sbac254)包含 CRC 函数中的错误、这会导致函数生成不正确的 CRC。
calculateCRC()函数在定义清单常量 CRC_ANSI 时使用 CCITT 值(0x1021)转置 CCITT 和 ANSI 二进制多项式的值、在定义清单常量 CRC_CCITT 时使用 ANSI 值(0x8005)。
#ifdef CRC_CCITT
/* CCITT CRC 多项式= x^16 + x^12 + x^5 + 1 */
const uint16_t poly = 0x8005;
#endif
#ifdef CRC_ANSI
/* ANSI CRC 多项式= x^16 + x^15 + x^2 + 1 */
const uint16_t poly = 0x1021;
#endif
ADS131M04数据表在第8.3.13节的表9中定义了 CRC 二进制多项式:
CCITT CRC 二进制多项式: 0001 0000 0010 0001 (0x1021)
ANSI CRC 二进制多项式: 1000 0000 0000 0101 (0x8005)
-Nick