TI中文支持网
TI专业的中文技术问题搜集分享网站

请教:案例rfWakeOnRadioRx什么时候能触发进入PROP_DONE_RXTIMEOUT状态?

麻烦您了!

我们在学习分析TI公司CC1310 SDK中的例程rfWakeOnRadioTx.c与rfWakeOnRadioRx.c,测试时能够正常运行与数据传输。在rfWakeOnRadioRx.c主循环while(1) 中,读取RF_cmdPropRxSniff.status,并有几种状态进行处理,其中有个状态是PROP_DONE_RXTIMEOUT,对应的代码上注释是“Got valid preamble on the air, but did not find sync word”,意思是发现了前导同步码,但没有找到syncword。代码段是:

       /* Schedule RX */

      RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRxSniff,RF_PriorityNormal, &callback, RF_EventRxEntryDone);

 

       /* Log RX_SNIFF status */

      switch(RF_cmdPropRxSniff.status) {

          case PROP_DONE_IDLE:

               /* Idle based on RSSI */

               worStatistics.doneIdle++;

              break;

          case PROP_DONE_IDLETIMEOUT:

               /* Idle based on PQT */

               worStatistics.doneIdleTimeout++;

              break;

          case PROP_DONE_RXTIMEOUT: //0x3401

               /* Got valid preamble on the air, but did not find sync word */

               worStatistics.doneRxTimeout++;

              break;

          case PROP_DONE_OK:

               /* Received packet */

               worStatistics.doneOk++;

              break;

          default:

               /* Unhandled status */

              break;

       };

 

我们测试时已经能够正常运行与数据传输,我们的问题是:

 

1、请问PROP_DONE_RXTIMEOUT这个这个状态在什么情况下会发生?

2、我们在能够数据正常传输情况下,人为有意只将rfWakeOnRadioTx.c中的syncWord由原来的0x930B51DE改成0x930B51DF,并在“worStatistics.doneRxTimeout++”处设置断点,再次测试。此时无法进行正常的数据传输,但也无法运行至断点。

根据代码上的注释“Got valid preamble on the air, but did not find sync word”(即发现了前导同步码,但没有找到syncword),应该会运行到断点处。请问:为什么此时不能运行到断点处?是不是还有什么需要设置

 

麻烦高手指点,万分感谢!

 

Viki Shi:

请看详细解释:
The RX command have an end trigger, given by endTrigger and endTime. If this trigger occurs while the receiver is searching for sync, the operation ends with the status PROP_DONE_RXTIMEOUT. If the trigger occurs while receiving a packet, the action depends on pktConf.endType.
If pktConf.endType = 0, the packet is received to the end and the operation then ends with PROP_DONE_ENDED as the status. If pktConf.endType = 1, the packet reception is aborted and the operation ends with PROP_DONE_BREAK as the status.

0574119:

回复 Viki Shi:

首先谢谢您的回复。这些原理基本上清楚,不过具体怎么实现还是不知道。难道TI公司的例程没有考虑这些吗?

我们查了例程,发现已经考虑了 trigger的结束时间:

既然TI已经考虑了,例程发布时测试过吗?

是不是这些参数还需要调整才能有效触发进入PROP_DONE_RXTIMEOUT状态?

望能得到指点!谢谢!

Viki Shi:

回复 0574119:

您好,这个帖子已经由E2E工程师接手,后续的跟进请查看这边:e2e.ti.com/…/896812

赞(0)
未经允许不得转载:TI中文支持网 » 请教:案例rfWakeOnRadioRx什么时候能触发进入PROP_DONE_RXTIMEOUT状态?
分享到: 更多 (0)