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.

[参考译文] CC2543:最小发送间隔

Guru**** 2394305 points
Other Parts Discussed in Thread: CC2543

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/638478/cc2543-minimum-transmit-interval

器件型号:CC2543

我想设置 CC2543的最小传输间隔。  具体而言、我希望实现500us 或更短的间隔。  我使用"per_test"软件项目作为起点。

在"per_test_cc254x.c"的第289行,我可以使用 halRfPacketTxInterval()参数缩短 TX 间隔。  但是、低于600的任何参数都不会导致数据包之间的持续时间更短。

您能否为如何实现更短的 Tx 间隔提供指导?  我猜无线电配置中缺少了一些东西。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可能已经回答了我自己的问题:如果我通过设置 REPEUST_CONF=1和 SYNTH_ON=1来禁用合成器整流、我可以实现更短的 TX 间隔。 我不会在 TX 消息之间更改通道、因此这可能是一个可行的选择。 我猜测、不重新校准合成器会导致性能下降。

    请告诉我、是否有其他方法可以实现更短的间隔、或这种方法有明显的缺点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nick、

    我将向您转至以下帖子: e2e.ti.com/.../2354950
    但我看到您已经找到了它! 尽管我们不会执行这种情况、但您的结果似乎表明它是可以接受的。

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

    然后、只需重复以下操作即可将其发回2back:

    //使用命令
    PRF.task_CONF.START_CONF 立即开始每个接收/发送 = 0;
    
    while (1){
    //启动发送器。
    halRfStartTx();
    
    //等待 TASKDONE。
    while (!(rfirqF1 & RFIRQ1_TASKDONE));
    if (PRF.ENDCAUSE == task_ENDOK){
    if (rfirqF1 & RFIRQ1_TXDONE){
    halRfCommand (CMD_TXFIFO_RETRY);
    } 否则{
    //处理其他可能的中断标志
    。}
    }否则{
    //处理错误
    }
    

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

    除非我缺少某些内容、否则您发布的是每个示例的设置方式、并且我尚未修改该循环。 除非禁用 SYNTH 重校准、否则无法实现低于~600 μ s 的数据包间隔。

    事实证明、我需要在发射之间更改通道。 因此、禁用 SYNTH 重校准不是一种好方法。

    -Nick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的评论的第一部分就不用介意了。 我看到您使用的是 RETRY 命令、它与示例软件不同。 我将给它一个机会。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发送第二个数据包后、使用 TXFIFO_RETRY 命令会导致 TASKERR_TXFIFO。 我没有按照上面的示例将另一个数据包重新载入 FIFO。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我将有效负载缩短到12字节、我可以实现500us 的数据包传输间隔、包括更改每个数据包的频率通道。 我正在使用2Mbps 5ookHz 基本固定长度模式、忘记之前说过。

    请告诉我是否有特定的设置可以用来恢复100秒左右的周转时间。 我们需要支持大约30字节的有效载荷。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我忘记了、您需要启用重用功能、以确保 FIFO 中的数据包在传输后不会被解分配。
    PRF.ADDR_Entry[0].CONF.REUS使用率= 1;//重新使用 FIFO 中的数据包
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我最终确定了很大一部分延迟是由于内核软件 while 循环内的 LCD 更新造成的。

    删除这些语句后、在传输的500 μ 秒数据包间隔内即可实现无问题的传输。