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.

[参考译文] CC430F5137:CRC 校验问题

Guru**** 2392935 points
Other Parts Discussed in Thread: CC430F5137, SIMPLICITI

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/675693/cc430f5137-crc-check-probleam

器件型号:CC430F5137
主题中讨论的其他器件: SimpliciTI

您好!

我正在处理 CC430F5231模块。 我从 SLAA465C 中给出的示例代码开始。 我正在使用 LT_FIFO 代码。 但 TI 提供的就绪代码似乎无法正常工作。 它始终传输数据、但即使数据正确、CRC 校验也始终失败。 有人能帮我解决这个问题吗?  

谢谢。

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

    Piyush、  

    您是否能够使用 SmartRF Studio 确认器件正在正常通信? 我始终建议从 SmartRF Studio 开始、作为发送器和接收器。 然后、您转到后续步骤并根据 SLAA465C 中的示例代码创建自己的软件、但仍将 SmartRF Studio 用作接收器。 通过执行此操作、您可以确认您的发送器代码是否按预期工作、以便能够缩小问题范围。

    此致、
    /TA

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

    Piysussh、  

    在我使用此驱动程序的经历中、我发现了我认为是错误的东西。 我只是想让您了解我发现的内容以及我的周围环境、从而为您提供帮助。 我发现使用代码时、芯片会产生错误、驱动程序会停止响应。 我将其追溯到以下函数:

    //
    //@fn ReadSingleReg
    //@简要从无线电寄存器读取一个字节
    //@param unsigned char addr Target 无线电寄存器地址
    //@返回已读取字节的无符号 char data_out 值
    //
    unsigned char ReadSingleReg (unsigned char addr)

    unsigned char data_out;

    //检查有效的配置寄存器地址,0x3E 指的是 PATABLE
    如果((addr <= 0x2E)||(addr == 0x3E))
    //发送地址+指令+ 1个虚拟字节(自动读取)
    RF1AINSTR1B =(addr | RF_SNGLREGRD);
    其他
    //发送地址+指令+ 1个虚拟字节(自动读取)
    RF1AINSTR1B =(addr | RF_STATREGRD);

    while (!(RF1AIFCTL1 & RFDOUTIFG))

    DATA_OUT = RF1ADOUTB;//读取数据并清除 RFDOUTIFG

    返回 DATA_OUT;

    在需要修改一行代码的地方:

    从: DATA_OUT = RF1ADOUT1B;//读取数据并清除 RFDOUTIFG

    更改为   :data_out = RF1ADOUTB;//此调用不执行自动写入

    这实际上也可以解决您的 CRC 错误问题、但我仍然建议您从 SmartRF Studio 开始、将其作为"已知良好的软件"

    此致、
    /TA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我已经尝试使用 SmartRF Studio 并成功地完成了通信、将数据包丢失/错误降至最低。 在我当前的硬件中、问题是如果我使用 CRC 校验、那么它总是会失败、但如果我点火、那么几乎90%的接收数据是正确的。

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

    我将尝试您的建议并告知您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Piysuh、

    我将指派一名团队成员尝试使用示例代码、看看我们是否可以复制您的发现。

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

    非常感谢。

    我也在尝试,但它仍然不起作用。 如果我得到任何东西、我将在这里发布。

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

    您好、Piyush、

    我在 Smart RF Studio 中为两 个 EM-CC430F5137-900板设置了基本 Rx/Tx 示例、但它们没有成功通信。 然后、我尝试连接随附的天线、以防出现这种问题、事实证明、即使电路板彼此相邻、电路板也确实需要天线进行通信。 现在,我可以确认 TI 的 LT_FIFO 示例代码( SLAA465C)在台式机中工作,没有 CRC 错误,并且无线 LED 可正常切换。

    运行示例代码时、您是否将随附的天线与评估板配合使用?

    -Matt

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

    Matthew、您好!  

    是的、我使用的是与硬件连接的芯片天线。 同一硬件使用 RF Studio 进行了测试、可处理超过10、000个50字节的数据包、故障极少。 但是、当我使用   SLAA465C 中的 LT_FIFO 示例时、它不起作用。 特别是 CRC 校验。 如果我跳过 CRC 校验、则接收到的数据似乎会校正(平均>70%)。

    我正面临着该主题提到的类似问题

    https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/t/569071

    但是,从这次讨论中,我无法找到解决我的问题的办法。  

    无论以何种方式接收到的数据在大多数情况下都是正确的、我尝试在代码中插入手动 CRC 校验。 这将增加有效载荷、但我可以负担得起。  

    谢谢

    -Piyush

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

    我对您的设置有一些疑问:

    1) 1)您使用的确切电路板和器件是什么、因为标题中提到的器件与问题说明中提到的器件之间存在差异
    2) 2)您是否正在使用固定或可变 LT_FIFO 示例?
    3) 3)我在电路板上执行了固定 LT_FIFO 示例的干净导入、并能够确认正确操作。 您是否能够在不对代码进行修改的情况下执行同样的操作?

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

    尊敬的 Matthew:

    1) 1)您使用的确切电路板和器件是什么、因为标题中提到的器件与问题说明中提到的器件之间存在差异

    我正在使用基于 CC430F5137的开发板。 (抱歉、我在初始问题说明中输入错误。) 我在网上购买的这件硬软件。 同一硬件使用 SimpliciTI 协议并经过测试已超过6个月、运行正常。 此硬件以433MHz 运行。 我还使用 RFstudio 7测试了此硬件、如前所述工作正常。

    2) 2)您是否正在使用固定或可变 LT_FIFO 示例?

    是的、我正在使用 SLAA465C 应用报告中提到的 LT_FIFO 示例。 我已从文件夹 CC430x513x RF Examples>RF_Examples_CCS>Fixed_LT_FIFO 导入代码。

    我已经对代码进行了一些修改。 我所做的更改是

    433MHz 的 RFsettings (从 RFstudio 生成的文件)

    一个发送器定期传输数据(*约1秒)并在传输后切换 LED。

    另一个仅接收数据并切换 LED 的接收器、然后将其发送到连接到机器的串行端口(这是可选的)。  

    我没有在没有这些微小更改的情况下使用代码、因为我的硬件具有不同的连接。 但我认为它应该起作用。  

    现在、如果我启用 CRC 校验、则它会显示由于 CRC 故障而未成功接收数据。 但是、如果我跳过 CRC 校验并将数据发送到串行端口、那么大部分时间数据似乎都是正确的。

    3) 3)我在电路板上执行了固定 LT_FIFO 示例的干净导入、并能够确认正确操作。 您是否能够在不对代码进行修改的情况下执行同样的操作?

    是的、它是干净导入的、但有一些小警告、例如项目已使用不同的编译器进行编译等。 等等

    由于我的硬件具有不同的连接和频率、因此我几乎不能说它是否正常工作。  

    如果您需要更多信息、请满足我的要求。

    谢谢

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

    开始调试该问题的最佳方法是查找在移植器件和频率期间更改示例代码时出现的错误。 请重新导入该示例、仅更改运行基本 Tx/Rx 示例所需的代码行、该示例通过按下按钮(P1.7)无线切换 LED (P1.0)。 代码生成后、请对其进行测试并将其发送给我、以便我也可以对其进行测试。

    您说过您是从网上购买硬件的、是否曾尝试使用 TI 为 CC430F5137提供的 EVM 来帮助调试过程? 您使用的是什么硬件?

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

    尊敬的 Matt:

    我也是这样做的、也是按照您的建议开始的。 我将再次尝试、并将进行最小的更改以解决问题。

    我已开始使用套件 http://www.ti.com/tool/MSP-EXPCC430RFX

    稍后、我切换到了与 eZ430类似的另一个硬件。 这与此套件 https://www.aliexpress.com/item/CC430F5137-development-board-CC430F6137-CC430-ez430-development-board-MSP430-CC1101/32642794077.html 类似

    这款新硬件我已经过 RF Studio 测试、与 SimpliciTI 配合使用非常好、也用于某些项目。  

    根据您的建议、我将再次导入代码并尝试解决问题。 如果我遇到类似的问题、会将其发送给您。  

    谢谢

    -Piyush

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

    听起来很棒、我会留意结果和代码!

    此致、

    Matt