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:在可变长度模式下发送超过64字节的数据包

Guru**** 2542200 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/680367/cc1101-cc1101-tx-of-a-packet-longer-than-64-bytes-in-variable-length-mode

器件型号:CC1101

大家好

我尝试使用 CC1101收发器传输长度可变的数据包、但当数据包大于64字节(FIFO 的维度)时、我面临失败。

我了解了检查 GDO0/GDO2引脚以监测 FIFO 电平的机制、但现在我不确定如何将数据包拆分为 CC1101的 SPI 突发。

假设我必须发送90字节的数据、将消息拆分为2个突发、每个突发有45字节的数据。 让我使用 Data0作为数据有效载荷的字节0、data45作为数据有效载荷的字节45、等等。

我以这种方式构建第一个突发、对于47字节的 SPI 传输:

字节0 = FIFO_ADDR | BURST_FLAG_BIT;

字节1 =数据总长度(90)

字节2 =数据0

(笑声)

字节46 = data45。

第二次突发怎么样? 我是否应该重复 pakcet 的总长度?

字节0 = FIFO_ADDR | BURST_FLAG_BIT;

字节1 =数据总长度(90)还是数据46?

字节2 = data46或 data47?

提前感谢您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    假设您设置 FIFO_THR = 0x04。 这意味着、当 GDO 引脚上有一个与 TX FIFO 相关的下降沿中断时、TX FIFO 中还有44个字节、这意味着还有20个字节的空间。

    我本来应该先填充 TX FIFO (全部为64字节)。
    然后、您计算剩余多少字节可写入。 如果数据包为90字节、则意味着您还有26个字节可供写入。

    然后、计算写入数据包其余部分时应使用的 FIFO 中断数。 在本例中、您知道第一次获得此中断时、您写入20个字节、下一次写入6个最后字节。

    如果数据包为200字节、那么第一次填充 FIFO 后、剩余的数据包为200 - 64 = 136字节。 这意味着当您获得 FIFO 中断(下降沿)时、您应该写入6次20个字节。 然后,您写入64 + 6*20 = 184个字节,剩下16个字节。 应在下一个中断上写入这些值。

    BR
    Siri
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siri、感谢您的详细解释、我可以肯定地用于传输调度
    我对在第一个传输之后如何取消格式化 SPI 传输仍有疑问。
    后续 SPI 传输的第一个字节仍然是 TX_FIFO_ADDRESS + BURST_BIT_FLAG?
    第二个字节被分页重复将要发送到天线 o 的消息的总页长度可以直接是要发送的另一个字节的消息?
    在处理中断问题之前、我想确保 SPI 块为 CC1101进行了正确格式化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您不会再次发送长度字节。 只需继续数据包中的下一个字节:

    如果数据包总共为90字节、并且您使用可变长度:

    数据包(90字节):89、1、2、3、4、 5、6、 ,89,89

    第一个 SPI 传输(64字节): TXFIFO addr+ 89、1、2、3、4、 5、... 62、63 (再次将 CSn 拉至高电平)
    第二个 SPI 串行传输(20字节):TXFIFO addr+ 64、65、66、67、68、 ...82、83 (再次将 CSn 拉高)
    第三个 SPI 串行传输(6字节): TXFIFO addr+ 84、85、86、87、88、 89 (再次将 CSn 拉至高电平)

    BR
    Siri
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Siri、根据您的建议修复了代码、现在它可以正常工作了。 谢谢你。