Thread 中讨论的其他器件:CC1352P、、 SysConfig
工具与软件:
我 在以下路径中找到了该 CC13XX 示例。
ti\simplelink_cc13xx_cc26xx_sdk_7_41_00_17\examples\rtos\CC1352P_2_LAUNCHXL\prop_rf\rfDiagnostics
对于 CC2340R5芯片、我在 prop_rf 文件夹中找到的相关示例都用于蓝牙射频测试、但与 ZigBee 无关。 您能提供一个 示例吗
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.
工具与软件:
我 在以下路径中找到了该 CC13XX 示例。
ti\simplelink_cc13xx_cc26xx_sdk_7_41_00_17\examples\rtos\CC1352P_2_LAUNCHXL\prop_rf\rfDiagnostics
对于 CC2340R5芯片、我在 prop_rf 文件夹中找到的相关示例都用于蓝牙射频测试、但与 ZigBee 无关。 您能提供一个 示例吗
尊敬的 Senjin:
F3 SDK 中当前没有类似的 rfDiagnostics 工程。 您是否能够使用 rfPacketTx/BLE 项目、其中 SysConfig -> RF stack ->自定义模块从 Rx 更改为 IEEE? 通过 SWD 连接、您还可以考虑使用 Smart RF Studio 8。
此致、
Ryan
尊敬的 Senjin:
完全可以将 Rx 添加到 rfPacketTx/UART 项目以满足您的配置要求。 有一个 uart_rfCarrierWave 示例、在执行载波测试时支持 UART 命令来更改 PHY、频率和 TX 功率。 唯一需要注意的是、它当前并不将 IEEE PHY 用作可选的 PHY。 因此、您需要将 "rcl_settings_IEEE-C.c/h"文件添加到设置文件夹(这些文件是 Smart RF Studio 8中的"代码导出"文件、或从 F3 SDK 为 IEEE PHY 生成的 propRF SysConfig 生成的 ti_radio_config.c/h 文件复制 的文件)、并修改 uart_rfCarrierwave.c 以添加新 PHY 或替换现有 PHY。 然后、您可以修改示例以支持载波之外的传播射频模式(数据包 TX/RX 等)。
此致、
Ryan
我测试了 rfPacketTx/BLE 项目、包括将射频配置从 Rx 更改为 IEEE 802.15.4 250kbps 时遇到的编译问题。 目前的工程似乎无法支持802.15.4。
对于 rfPacketRx 工程、它将显示 未解析的符号 rclPacketRxCmdGenericRx。
对于 rfPacketTx 工程、它显示了未声明标识符"RCL_REGISTER_FIELD_PBE_GENERIC_RAM_LENCFG_LENPOS"的使用
尊敬的 Senjin:
对于 rfPacketTx 项目、您可以直接将这些定义添加到项目中。
#define RCL_REGISTER_FIELD_PBE_GENERIC_RAM_LENCFG_LENPOS 0x08 #define RCL_REGISTER_FIELD_PBE_GENERIC_RAM_LENCFG_NUMLENBITS 0x08
对于这两个项目、您都需要使用"Generic 250kbps、O-QPSK"IEEE 802.15.4选项。 否则、您将无法使用现有的 Generic RCL 命令、并需要进行进一步的工程迁移。
此致、
Ryan
您好、Ryan、
当我使用 "Generic 250 kbps、O-QPSK"IEEE 802.15.4时、我的 rfPacketTx projedt 编译成功、谢谢。 现在我正在尝试迁移 ZigBee TX 函数到 rfCarrierWave 项目。
我发现 rfPacketTx 项目使用的构造类型为 RCL_CmdGenericTx、而 UART _ rfCarrierWave 项目中使用的构造类型为 RCL _ CmdGenericTxTest。
其中、包含变量 txBuffers 的构造类型 RCL_ mdGenericTx 可设置要发送的数据、但不能设置变量 txPower。
包含变量 txPower 的结构类型 RCL_CmdGenericTxTest 支持设置发射功率、但没有变量 txBuffer。 我需要这两个函数。
对于变量 txPower、现在包括 Power_Use_Max、LRF_Tx Power_Use_Min、LRF_Tx Power_Use_Raw 选项、如果需要将发射功率设置为10dBm、我应该怎么做。


您提供的两个结构都包含一个 RCL_txPower Command_Tx 字段。 在 rfPacketTx 示例中 、您通常需要在 调用 RCL_Command_Submit 之前、通过修改 rclPacketTxCmdGenericTx.txPower.dBm 来设置 TX 功率 。 载波 本身是测试波、不包括可修改的缓冲器。 最大 CC2340R5 TX 功率为8dBm。
// LRF_TxPowerTable data structure
const LRF_TxPowerTable LRF_txPowerTable = {
.numEntries = 0x0000000E,
.powerTable = {
{ .power = { .fraction = 0, .dBm = -20 }, .tempCoeff = 0, .value = { .reserved = 0, .ib = 18, .gain = 0, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = -16 }, .tempCoeff = 0, .value = { .reserved = 0, .ib = 25, .gain = 0, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = -12 }, .tempCoeff = 5, .value = { .reserved = 0, .ib = 29, .gain = 1, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = -8 }, .tempCoeff = 18, .value = { .reserved = 0, .ib = 44, .gain = 1, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = -4 }, .tempCoeff = 28, .value = { .reserved = 0, .ib = 40, .gain = 3, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 0 }, .tempCoeff = 40, .value = { .reserved = 0, .ib = 21, .gain = 6, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 1 }, .tempCoeff = 65, .value = { .reserved = 0, .ib = 30, .gain = 6, .mode = 0, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 2 }, .tempCoeff = 41, .value = { .reserved = 0, .ib = 39, .gain = 4, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 3 }, .tempCoeff = 43, .value = { .reserved = 0, .ib = 31, .gain = 5, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 4 }, .tempCoeff = 50, .value = { .reserved = 0, .ib = 37, .gain = 5, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 5 }, .tempCoeff = 55, .value = { .reserved = 0, .ib = 27, .gain = 6, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 6 }, .tempCoeff = 75, .value = { .reserved = 0, .ib = 38, .gain = 6, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 7 }, .tempCoeff = 80, .value = { .reserved = 0, .ib = 25, .gain = 7, .mode = 1, .noIfampRfLdoBypass = 0 } },
{ .power = { .fraction = 0, .dBm = 8 }, .tempCoeff = 180, .value = { .reserved = 0, .ib = 63, .gain = 7, .mode = 1, .noIfampRfLdoBypass = 0 } }
}
};
此致、
Ryan
您好、Ryan、
感谢您的答复、我还有一些问题。
1、我发现 rfPacketTx 项目中的宏 NUM_DATA_ENTRIES 设置为5、这是否意味着一次发送5个数据包? 如果要进入连续发送模式、是否可以将 NUM _ DATA _ entries 设置为最大值。
2、 对于 rfPacketRx 工程、我发现宏 NUM_DATA_ENTRIES 设置为 2、如果要进入连续接收模式、该怎么办?
3、 对于 rfPacketRx 项目、 我想获得 PER 结果、应该怎么做?
1.这种情况不会出现、因为代码基本上仅使用建立的两个 TX 缓冲区中的一个。 有关更多详细信息、请参阅缓冲区管理说明。 相反、您应该做的是根据 packet_interval 来确定传输间隔、而 packet_interval 决定了数据包之间的睡眠时间。
2. rfPacketRx 已经连续处于 RECEIVE 模式、 每当收到数据包时提供默认的回调功能、以便切换 LED。 rclPacketRxCmdGenericRx 命令处于重复模式、不会从此项目的默认操作中取消。
3.您可以在 TX 和 RX 设备之间达成一致的事务序列。 例如、rfPacketTx 将用递增的数据包计数填充数据包数据、并让 rfPacketRx 在每次接收数据包时读取该值。 如果序列号丢失或未在预期时间内到达、则这将向 rfPacketRx 代码表明数据包丢失、从而导致总 PER。 还可以从 rfPacketErrorRate 示例中获取灵感。
此致、
Ryan