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.

[参考译文] CC1101:CC1101可选数据包长度

Guru**** 2543210 points
Other Parts Discussed in Thread: CC1101

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/631608/cc1101-cc1101-optional-packet-length

部件号:CC1101

你好

我遇到了CC1101的数据包长度问题。 我使用的是可变数据包长度,因此我使用的是可选长度字节。 我要将一个大约300 KB 的文件从一个CC1101 (DeviceA)传输到另一个CC1101 (DeviceB)。 我在将文件发送到另一个设备B时将其分成较小的块,如果收到的数据包没有问题,则此设备必须发送ACK,否则它必须将NAK发送到设备A。 DeviceA必须接收此ACK/NAK并发送新的块或重新发送失败的块。 当设备B发送ACK/NAK消息时,设备A收到消息时消息损坏,但当添加另一个CC1101 (设备C),而该CC1101 (设备C)只需接收设备B发送的ACK/NAK消息时,消息不损坏。  

在DeviceB上调试时,我可以看到数据包的可选长度字节不是预期值,可选长度字节的值是有效负载的第一个字节。 即使我读出RXBYTES寄存器,该值不是预期的长度,但如果我读了多次,该值是一致的。感觉在TX和RX之间切换是一个问题。  有人能帮我解决这个问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否仍从设备B中找到同步,或者您是否正在运行不同的协议?

    您是否通过在GOD上获取PA_PD/ LNA_PD信号来检查时间?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    我在DeviceB上使用相同的协议,DeviceB和deviceC之间的唯一区别是,该deviceC仅侦听DeviceB以块状传输文件的位置,并应在传输块后接收ACK。

    我在上一篇文章中忘记提到的一点是,DeviceB收到第一个ACK,长度是预期的长度,然后CRC通过数据包损坏。

    预期数据包(蓝色行)的示例,即接收到的数据包(红色行)。 正如我提到的,SOF被读取为可选长度字节,但大多数有效负载保持不变,如下所示。 由于存在意外长度,CRC也会失败。

    长度 SOF 有效载荷[0] 有效载荷[1] 有效载荷[2] 有效载荷[3] EOF
    0x06 0x78 0x04 0x09 0x67 0x45 0x87
    0x78 0x78 0x04 0x09 0x67 0x45 此处是随机值

    我目前正在进行有关GDOs的测试,一旦有结果,我将立即返回。

    谢谢你

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

    您好,TER

    1. 您建议我通过获取PA_PD/LNA_PD信号来查看时间,我会对这一建议做出回应。 你建议我怎么做,我不清楚我将从这中学到什么。
    2. 我使用GDO0作为数字I/O,这表示已成功接收数据包中的。 即使我在触发中断时读取FIFO中的第一个字节,长度也不是预期的长度。
    3. 您知道我可以在RX和TX之间切换的任何参考吗?

    很抱歉回复太晚了,过去两周我的另一个项目需要我关注。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    LNA_PD/ PA_PD:这将准确显示两个装置何时处于RX,TX或其他状态。 当A处于TX中时,了解B是否在RX中,或者以另一种方式检查当您认为RX/TX开关发生时,这可能很有用。 我认为我们没有显示RX/TX开关的代码。

    您是否在代码中执行错误处理,检查RX和TX端是否没有FIFO错误(底板/溢出)?