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.

[参考译文] RTOS/CC1310:在使用载波侦听命令时测量RSSI

Guru**** 2445440 points
Other Parts Discussed in Thread: CC1020, CC1101, CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/633554/rtos-cc1310-measuring-rssi-while-using-th-carrier-sense-command

部件号:CC1310
主题中讨论的其他部件:CC1101,CC1020

工具/软件:TI-RTOS

我想使用Carrier-Sense命令扫描多个信道,以使用RSSI阈值进行活动。 为了了解什么是合理的阈值,我需要对信道上检测到的RSSI提供一些反馈。

目前,我设置了如下所示的命令链:

cmd_FS [设置信道频率]-> CMD_CS [空闲时等待最长2毫秒,忙碌时立即退出]-> CMD_GET_RSSI [立即命令]-> CMD_FS_OFF[关闭无线电]

这是通过TIRTOS线程中的RF_runCmd函数执行的。

我的问题是,所有RSSI测量值返回-128 (0xFF80)。

是否有办法使用类似这样的命令链获取我需要的RSSI数据,或者我是否需要弄清楚如何异步执行?

CMD_CS命令的参数为:

静态RFC_CMD_PROP_CS_t RF_Scan_cmdCs =

  .commandNo = CMD_PROP_CS,
  .status = 0x0000,
  .pNextOp =(RFC_RADIOP_t *)&RF_Scan_cmdReadRSSI,
  .StartTime = 0x0万,
  .startTrigger.triggerType = 0x0,
  .starttrigger.b EnaCmd = 0x0,
  .startTrigger.triggerNo = 0x0,
  .startTrigger.PastTrig = 0x0,
  .condition.rule = cond_always,
  .condition.nSkip = 0x0,

  .csFSConf = 0,   //保持RF打开,独立于载波检测

  .csConf.bEnaRssi = 1,
  .csConf.bEnaCorr = 0,
  .csConf.operation = 0,
  .csConf.busyOp = 1,     //如果检测到忙状态,则停止载波检测
  .csConf.idleOp = 0,     //只要处于空闲状态,就保持扫描
  csConf.timeoutRes = 1, //如果超时,将无效结果视为空闲

  .rssiThr =-100,  //以-60 dB的RSSI阈值开始
  numRssiIdle = 2,
  numRssiBusy = 2,

  //在我们启动载波检测操作后,将结束触发器设置为2毫秒。
  .csEndTrigger.TriggerType = TRig_REL_START,
  .csEndTime = 8000,
};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CMD_GET_RSSI仅在RX中报告正确的RSSI值。 由于您读出-128,这表明您实际上不是。 看看您的连锁店,我不确定您是否在任何时候都处于RX状态。 将LNA信号路由到引脚(dev.ti.com/.../signal-routing.html )以检查您是否处于RX模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CMD_PROP_CS命令的文档说明:

    当载波侦听命令启动时,对讲机设置为接收模式,
    并执行23.7 .5.5 .1节中所述的操作。 

    因此对讲机将进入RX模式,并在CS命令运行时生成RSSI值。 我将csFSConf.bFsOffIdle和csFSConf.bFsOffBusy两个选项都清零,以使频率合成器保持运行,而不会与CS操作的结束方式更不相关。 我希望这能让我进行RSSI测量。

    我真正想要的是在CS命令期间测量的最后一个RSSI值。 PROP_DON_BUSY或PROP_DON_IDLE的返回状态将告诉我此RSSI代表的是忙还是空闲状态。

    由于它没有写入CS命令对象,我需要单独要求它。

    是否有CMD_READ_RFREG命令可用于获取最近测量的RSSI值,即使在CS命令完成后也是如此?

    如果我使用CMD_PROP_RX_sniff或CMD_RX_TEST命令来代替RX,是否更好? 在大多数情况下,我不会期待收到任何东西。

    这是我仅在尝试使用FHSS使接收器与多个发射器同步时使用的操作。  我已经为CC1020和CC1101芯片实施了此策略,我正在尝试为CC1310芯片重新创建。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CS命令在RX中设置芯片,但仅在命令运行时设置。 我认为您必须与CMD_RX_TEST连锁,以确保在调用CMD_GET_RSSI时芯片处于RX状态

    您还可以使用类似 的工具:dev.ti.com/.../