This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR5969:寻求有关CRC模块的说明和说明

Guru**** 2582405 points
Other Parts Discussed in Thread: MSP430FR5969

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/614660/ccs-msp430fr5969-looking-for-clarification-and-explanation-on-crc-module

部件号:

工具/软件: Code Composer Studio

您好,

我有一些与MSP430FR5969的CRC模块相关的问题。 作为参考,我将使用驱动程序库示例代码下的代码示例中提到的名为“crc_ex1_buildSignature”的示例代码。 如果我说错的话,请纠正我。 我以前没有过多的CRC经验。 但我熟悉模块2的技巧。   

根据TI的CRC指南,我得出结论,MSP430FR5969上的CRC16模块使用位方法进行CRC计算。 在儿童权利中心的单元中似乎有4个登记册: 儿童权利中心,儿童权利中心,儿童权利中心,儿童权利中心和儿童权利中心。  我正在附加
e2e.ti.com/.../Book1.xlsx 

它具有执行指令后示例代码在寄存器中写入/更改的值。 根据在CCS调试程序的文件/或CRC寄存器中看到的观察结果,我有几个问题:

1)我了解必须为CRCINIRES提供初始值,才能使CRC模块开始工作。 但是,该值是生成器多项式G (x)吗? 用户指南说G (x)是在CRC-CCITT多项方程式的帮助下生成的? 它是否在某个时候使用0xBEEF (SEED)?
2)如果CRCDIRB寄存器表示反字节,为什么它在任何时候都不具有CRCDI内容的反字节,就像CRCRCRESR具有CRCINIRES的值一样?
3)由于CRC在末尾附加了位,我的数据在追加CRC后如何不超过16位?
4)我应发送给接收者的最终数据是什么? 我是否应该将CRCINIRES的所有内容发送给接收器,一旦我得到0x7ADB (或),则只发送最后的16位值,即0x5119?
5)最后,接收者将如何提取数据并检查数据是否丢失? 我无法理解接收者需要我提供的所有信息?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Dorman:

    您是否见过MSP430Ware中的CRC代码示例? 这将有助于您解答有关如何使用CRC模块的问题。 可通过CCS中的TI资源浏览器或dev.ti.com找到该示例。 导航至TI资源管理器->软件-> MSP430Ware ->器件-> MSP430FR5xx_6xx -> MSP430FR5969 ->外设示例->寄存器级别-> msp430fr59xx_crc.c

    使用的多边形在《用户指南》的15.1 部分中进行了说明。 此外,您只能在所有数据都通过后发送结果寄存器。 如图15-2所示,最初写入结果寄存器(CRCINIRES)的内容在您第一次启动算法时会循环回算法中作为种子。 随后的结果也会回绕。 用户指南的15.3 集1部分说明了反向位寄存器的工作原理。