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/LAUNCHXL-CC1310:如何在高速模式下设置射频同步字?

Guru**** 2526050 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/649601/rtos-launchxl-cc1310-how-to-set-rf-sync-word-in-high-speed-mode

器件型号:LAUNCHXL-CC1310

工具/软件:TI-RTOS

大家好、

我找到了2个用于在高速模式下设置射频参数的结构:

#define CMD_HS_TX 0x3841
//! 高速传输命令
结构__RFC_STRUCT_RFC_CMD_HS_TX_s {
uint16_t 命令号; //!< 命令 ID 号0x3841
uint16_t status; //!<\brief 显示一个指示命令状态的整数。 该值是
//!< 在运行期间由无线电 CPU 更新并且可由读取
//!< 系统 CPU。
RFC_radioOP_t *pNextOp; //!< 该操作完成后要运行的下一个操作的指针
ratmr_t StartTime; //!< 绝对或相对开始时间(取决于 startTrigger 的值)
struct{
uint8_t 触发器类型:4; //!< 触发器的类型
uint8_t bEnaCmd:1; //!<\brief 0:无备用触发命令 
//!< 1:CMD_TRIGGER 可用作备用触发器 uint8_t 触发器编号:2; //!< 触发此操作的 CMD_TRIGGER 命令的触发器编号 uint8_t pastrig:1; //!<\brief 0:过去从未触发过触发,或者对于命令启动,给出错误
//!< 1:尽快触发过去的触发 器} startTrigger; //!< 启动操作 结构{的触发器的标识 uint8_t 规则:4; //!< 运行下一个命令的条件:如何继续的规则 uint8_t nSkip:4; //!< 如果规则涉及跳过,则跳过次数+1。 0:相同,1:下一个,2:跳下一个,... } 条件; 结构{ uint8_t bFsOff:1; //!<\brief 0:命令后保持频率同步
//!< 1:命令后关闭频率同步 uint8_t bUseCrc:1; //!<\brief 0:不要附加 CRC
//!< 1:附加 CRC uint8_t bVarLen:1; //!<\brief 0:固定长度
//!< 1:发送长度为第一个半字 uint8_t bCheckQAtEnd:1; //!<\brief 0:当数据包已被发送时、始终以 HS_DONE_OK 结束
//!< 1:检查传输数据包时 Tx 队列是否为空 }pktConf; uint8_t __dummy0; dataQueue_t* pQueue; //!< 指向 Tx 队列的指针 };

#define CMD_HS_RX 0x3842//
! 高速接收命令
结构__RFC_STRUCT_RFC_CMD_HS_RX_s {
uint16_t 命令号; //!< 命令 ID 号0x3842
uint16_t status; //!<\brief 显示一个指示命令状态的整数。 该值是
//!< 在运行期间由无线电 CPU 更新并且可由读取
//!< 系统 CPU。
RFC_radioOP_t *pNextOp; //!< 该操作完成后要运行的下一个操作的指针
ratmr_t StartTime; //!< 绝对或相对开始时间(取决于 startTrigger 的值)
struct{
uint8_t 触发器类型:4; //!< 触发器的类型
uint8_t bEnaCmd:1; //!<\brief 0:无备用触发命令 
//!< 1:CMD_TRIGGER 可用作备用触发器 uint8_t 触发器编号:2; //!< 触发此操作的 CMD_TRIGGER 命令的触发器编号 uint8_t pastrig:1; //!<\brief 0:过去从未触发过触发,或者对于命令启动,给出错误
//!< 1:尽快触发过去的触发 器} startTrigger; //!< 启动操作 结构{的触发器的标识 uint8_t 规则:4; //!< 运行下一个命令的条件:如何继续的规则 uint8_t nSkip:4; //!< 如果规则涉及跳过,则跳过次数+1。 0:相同,1:下一个,2:跳下一个,... } 条件; 结构{ uint8_t bFsOff:1; //!<\brief 0:命令后保持频率同步
//!< 1:命令后关闭频率同步 uint8_t bUseCrc:1; //!<\brief 0:不接收或检查 CRC
//!< 1:接收并检查 CRC uint8_t bVarLen:1; //!<\brief 0:固定长度
//!< 1:接收长度为第一个字节 uint8_t b 中继时:1; //!<\brief 0:正确接收数据包后结束操作
//!< 1:正确接收数据包后、返回同步搜索 uint8_t b 中继噪声:1; //!<\brief 0:接收到 CRC 错误的数据包后结束操作
//!< 1:接收到 CRC 错误的数据包后、返回同步搜索 uint8_t 地址模式:2; //!<\brief 0:无地址检查
//!< 1:接受地址0地址1
//!< 2:接受地址0地址1和0x0000
//!< 3:接受地址0地址1、0x0000和0xFFFF }pktConf; struct{ uint8_t bAutoFlushCrcErr:1; //!< 如果该位为1、则自动从 Rx 队列中删除具有 CRC 错误的数据包 uint8_t bIncludeLen:1; //!< 如果为1、则在存储的数据包中包含接收长度字段;否则将其丢弃 uint8_t bIncludeCrc:1; //!< 如果该位为1、则将接收到的 CRC 位域包含在存储的数据包中;否则请将其加3 uint8_t bAppendStatus:1; //!< 如果为1、则在 Rx 队列中的数据包中附加一个状态字 uint8_t bAppendTimestamp:1; //!< 如果为1、则在 Rx 队列 中的数据包中附加时间戳} rxConf; uint16_t maxPktLen; //!< 固定长度的数据包长度;变量长度 uint16_t address 0的最大数据包长度; //!< 地址 uint16_t 地址1; //!< 地址(设置为等于 address 0以仅接受一个地址) uint8_t __dummy0; struct{ uint8_t 触发器类型:4; //!< 触发器的类型 uint8_t bEnaCmd:1; //!<\brief 0:无备用触发命令
//!< 1:CMD_TRIGGER 可用作备用触发器 uint8_t 触发器编号:2; //!< 触发此操作的 CMD_TRIGGER 命令的触发器编号 uint8_t pastrig:1; //!<\brief 0:过去从未触发过触发,或者对于命令启动,给出错误
//!< 1:尽快触发过去的触发 器} endTrigger; //!< 用于结束操作 ratmr_t EndTime 的触发分类器; //!< 与 endTrigger 一起用于结束操作 dataQueue_t* pQueue 的时间; //!< 接收队列 RFC_hsRxOutput_t *pOutput 的指针; //!< 指向输出结构 的指针};

但我没有找到 任何用于同步字的变量?  

我想知道它是否在其他结构定义中的某个位置、或者它是否无法在 HSM 模式下设置?

谢谢你。

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

    为什么要更改同步字?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、我想使用同步字作为 Rx 限定符、类似于 address0和 address1字段。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    无论物理层如何、使用同步字都不是一个好主意、因为很容易使用会导致 RX 问题的较差同步字。 使用地址过滤。