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

cc1310 15.4协议栈中sensor如何控制RF,睡眠和唤醒?

sensor入网成功后,sensor发送数据给你collector,collector回复sensor接收丢包。

这里的collector,收到数据后,会做数据处理,上传给串口,等待串口返回后在发送数据给sensor。(串口回复1-3分钟之内)

sensor的RF超时是7分钟。这种情况是因为sensor,RF接收睡眠?我在sensor RF驱动表里面,RF_cmdPropTxAdv={ .pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx}改为了RF_cmdPropRxAdv,情况还是存在。请问应该如何判断问题所在?

Felix ZF:

底层的RF操作都是由15.4协议栈完成的,你的这个修改应该不会生效的。

user5322468:

回复 Felix ZF:

请问,collector发送sensor接收不到,我应该如何定位问题,我觉得是RF的接收关闭了。应该如何发送后打开RF接收。

YiKai Chen:

回复 user5322468:

你用的是beacon mode還是non-beacon mode?

user5322468:

回复 YiKai Chen:

non-beacon mode

YiKai Chen:

回复 user5322468:

如果是non-beacon mode,要發送給sensor的封包會先暫存在collector的queue等待sensor來polling才會把要發送給sensor的封包發給sensor,你的sensor polling rate是多大呢?

user5322468:

回复 YiKai Chen:

sensor polling是6秒,大哥你看方便加QQ聊下不。3360133878

user5322468:

回复 YiKai Chen:

// CMD_PROP_RX_ADV
rfc_CMD_PROP_RX_ADV_t RF_cmdPropRxAdv =
{.commandNo = 0x3804,.status = 0x0000,.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx.startTime = 0x00000000,.startTrigger.triggerType = 0x0,.startTrigger.bEnaCmd = 0x0,.startTrigger.triggerNo = 0x0,.startTrigger.pastTrig = 0x1,.condition.rule = 0x1,.condition.nSkip = 0x0,.pktConf.bFsOff = 0x0,.pktConf.bRepeatOk = 0x0, // TODO.pktConf.bRepeatNok = 0x0, // TODO.pktConf.bUseCrc = 0x1,.pktConf.bCrcIncSw = 0x0,.pktConf.bCrcIncHdr = 0x0,.pktConf.endType = 0x0, // TODO.pktConf.filterOp = 0x1, // TODO.rxConf.bAutoFlushIgnored = 0x0,.rxConf.bAutoFlushCrcErr = 0x1,.rxConf.bIncludeHdr = 0x1,.rxConf.bIncludeCrc = 0x0,.rxConf.bAppendRssi = 0x1,.rxConf.bAppendTimestamp = 0x1,.rxConf.bAppendStatus = 0x0,.syncWord0 = 0x0055904e,.syncWord1 = 0x00000000,.maxPktLen = 500,/* Will be re-initialized in RX init */.hdrConf.numHdrBits = 16,.hdrConf.lenPos = 0,.hdrConf.numLenBits = 11,.addrConf.addrType = 0,.addrConf.addrSize = 0, // TODO: no address is used for now.addrConf.addrPos = 0,.addrConf.numAddr = 0,.lenOffset = -4,
#ifdef RFCORE49.endTrigger.triggerType = 0x4,.endTrigger.bEnaCmd = 0x0,.endTrigger.triggerNo = 0x0,.endTrigger.pastTrig = 0x0,.endTime = 1680000000,//7 minutes
#else.endTrigger.triggerType = 0x1,.endTrigger.bEnaCmd = 0x0,.endTrigger.triggerNo = 0x0,.endTrigger.pastTrig = 0x0,.endTime = 0x00000000,
#endif.pAddr = 0,.pQueue = 0, // INSERT APPLICABLE POINTER: (dataQueue_t*)&xxx.pOutput = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
};

collector的RF接收队列都是空的。sensor的也是一样。默认就是这样。

Felix ZF:

回复 user5322468:

那么你最长可能需要等待6秒才能看到collector发给sensor的数据。

YiKai Chen:

回复 user5322468:

你多久從collector發送一次信息給sensor?

user5322468:

回复 Felix ZF:

dataIndCBsensor是完全没有响应,sensor也没有挂,就是接收不到collector的数据。tracking的收发无问题,一问一答就出问题了。

你的意思是:collector配置sensor,上传时间和报告时间。sensor发送collector数据后,回复,是放在collector队列里面,等sensor轮询,才可以收回复消息?

赞(0)
未经允许不得转载:TI中文支持网 » cc1310 15.4协议栈中sensor如何控制RF,睡眠和唤醒?
分享到: 更多 (0)