Part Number:CC2674P10Other Parts Discussed in Thread:CC1354P10, , SYSCONFIG
目前下载了官方最新固件simplelink_cc13xx_cc26xx_sdk_7_10_01_24,安装后发现里面没有CC2674P10这个型号,之后选择LP_EM_CC1354P10_1的串口例程,修改了targetConfigs文件,将型号改成了CC2674P10
之后通过编译烧录,可以正常使用串口功能。
接着在smart RF strudio 7里面找到了CC2674P10型号,并进行了通信,说明模块无异常
之后下载CC1354P10的例程rfPacketTx以及rfPacketRx,烧录到两个板子发现不能通信,体现在rx回调函数没反应,接着检查syscfg配置,发现只能配置779-930频段,因此,说明不能用此例程
问题:我应该选择哪一个型号,或者哪一个例程,才能用于CC2674P10进行通信。如果一个个试的话,会加长开发周期。
Alex Zhang:
您好,已经跟进您的问题,这需要一些时间
,
?? ?:
我在syscfg里面吧之前的Proprietary删了,改成了BLE
但是主函数会在发送的时候卡住,我把/RF_cmdBle5AdvAux_bt5le1m_0.pParams->pAdvPkt这个注释掉之后,可以跑,同时频谱仪也能出功率,
但是对于这个参数,我需要自己定义我的广播数据,同时让接收例程能够收到我自己的数据,因为我在这个结构体内,没有发现对于数据长度的相关说明,也没有相关例程来参考这个如何设置
,
Alex Zhang:
?? ? said:问题:我应该选择哪一个型号,或者哪一个例程,才能用于CC2674P10进行通信。如果一个个试的话,会加长开发周期。
您这边CC1354P10的sdk可以进行参考。
https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/thread/html/cc13xx_cc26xx/software-on-cc13x4-26×4.html
您参考这个迁移指南
,
?? ?:
我昨天已经按照这个迁移指南迁移过了,但这并不是我目前遇到的问题,现在的问题如我上面回复的一致,当我迁移过去之后,我的Syscfg文件里面可以选择的Custom只有BLE 和IEEE 802
。
我已经在smart RF 7上面验证过当我使用BLE是可以正常通信的,但是当我在工程里将其设置为BLE之后,我发现例程里面的一些初始化的内容是需要修改的,部分结构体参数差别,在我上一个回复中可以提现出来。而当我注释掉旧参数并将其修改为新参数后,我的接收模块能触发callback函数,但事件e的参数值为2,不匹配接收完成。
目前我需要的解决方法是,是否有途径能找到关于一个例程,是关于将Syscfg文件里面的Custom修改为BLE 1Mbps LE 1M之后,射频的通信例程或初始化参考。
,
Alex Zhang:
我想问一下您这边的sysconfig版本是哪个?
,
?? ?:
版本是1.16.2
,
Alex Zhang:
我这边刚刚尝试去进行迁移,跟您显示的结果不太一样呢
,
?? ?:
这边是已经转过来了的,按照教程来的
,
Alex Zhang:
您好,请您现在总结一下您的问题,以及需求,我这边收集进行升级到e2e,等待工程师的回复。
,
?? ?:
主要现在我转来后,需要一个例程告诉我下面图片里面的应该怎么做
因为,现在有个问题是,我把syscfg里面把射频改成BLE,之后,这些配置参数的结构体变了,导致我不知道我应该如何初始化我的这些参数,才能正常通信,就像那个callback函数,当我rx工程接收到了tx发过来的数据,但我无法和RF_EventRxEntryDone匹配,也可能里面的函数不能用现在截图中的。
,
Alex Zhang:
这个里面的内容您这边阅读了吗
,
?? ?:
总结一下,我现在的问题就是,我已经将工程变成了CC2674P10的工程,我现在需要一个针对于BLE这个Custom的例程,包括Tx、Rx的初始化参数配置,以及callback函数如何获取射频数据。
,
Alex Zhang:
好的,我将会跟进您的问题,有更新会立即回复您
,
?? ?:
我看过了,但是这个并不能解决我的问题,就像我说的,因为修改为BLE之后,我初始化函数的结构体发生了变化,例如Tx工程中,我原本的结构体包括了发送字节数和发送包地址两个参数,但是修改后,只有发送包地址,而没有字节数,这就意味着我并没有一个参考来让我分析,我到底是初始化阶段还是后面的回调函数出现的问题
,
Alex Zhang:
好的,明白了,我这边会跟进的,谢谢您的回复
,
Alex Zhang:
工程师这边提供了完成您正在寻找的功能的说明:
使用 rfPacketRX 示例的 rfPacketTX 作为起点,并执行以下步骤将其移植到正确的设备。
使用您想要使用的 BLE 设置构建项目(不会编译,因为您使用的是 BLE 设置,并且示例使用 prop 命令,但这并不重要)。
获取 sysConfig 生成的 ti_radio_config.c/h 并将它们手动添加到您的项目中,然后将它们从 sysConfig 中排除。
以 SmartRF Studio 为例,打开一个 prop 示例。使用使用正常 RX 和 TX 命令(不是高级)的设置,并且
将所需命令(CMD_PROP_TX 和 CMD_PROP_RX)复制到 ti_radio_config.c/h
重命名 CMD_FS
更改示例中请求访问无线电的方式:/* Request access to the radio */ rfHandle = RF_open(&rfObject, &RF_prop_bt5le1m_0, (RF_RadioSetup*)&RF_cmdBle5RadioSetup_bt5le1mp10_1, &rfParams); // CMD_PROP_TX // Proprietary Mode Transmit Command rfc_CMD_PROP_TX_t RF_cmdPropTx = {.commandNo = 0x3801,.status = 0x0000,.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx.startTime = 0x00000000,.startTrigger.triggerType = 0x0,.startTrigger.bEnaCmd = 0x0,.startTrigger.triggerNo = 0x0,.startTrigger.pastTrig = 0x0,.condition.rule = 0x1,.condition.nSkip = 0x0,.pktConf.bFsOff = 0x0,.pktConf.bUseCrc = 0x1,.pktConf.bVarLen = 0x1,.pktLen = 0x14,.syncWord = 0x930B51DE,.pPkt = 0 // INSERT APPLICABLE POINTER: (uint8_t*)&xxx };// CMD_PROP_RX // Proprietary Mode Receive Command rfc_CMD_PROP_RX_t RF_cmdPropRx = {.commandNo = 0x3802,.status = 0x0000,.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx.startTime = 0x00000000,.startTrigger.triggerType = 0x0,.startTrigger.bEnaCmd = 0x0,.startTrigger.triggerNo = 0x0,.startTrigger.pastTrig = 0x0,.condition.rule = 0x1,.condition.nSkip = 0x0,.pktConf.bFsOff = 0x0,.pktConf.bRepeatOk = 0x0,.pktConf.bRepeatNok = 0x0,.pktConf.bUseCrc = 0x1,.pktConf.bVarLen = 0x1,.pktConf.bChkAddress = 0x0,.pktConf.endType = 0x0,.pktConf.filterOp = 0x0,.rxConf.bAutoFlushIgnored = 0x0,.rxConf.bAutoFlushCrcErr = 0x0,.rxConf.bIncludeHdr = 0x1,.rxConf.bIncludeCrc = 0x0,.rxConf.bAppendRssi = 0x0,.rxConf.bAppendTimestamp = 0x0,.rxConf.bAppendStatus = 0x1,.syncWord = 0x930B51DE,.maxPktLen = 0xFF,.address0 = 0xAA,.address1 = 0xBB,.endTrigger.triggerType = 0x1,.endTrigger.bEnaCmd = 0x0,.endTrigger.triggerNo = 0x0,.endTrigger.pastTrig = 0x0,.endTime = 0x00000000,.pQueue = 0, // INSERT APPLICABLE POINTER: (dataQueue_t*)&xxx.pOutput = 0 // INSERT APPLICABLE POINTER: (uint8_t*)&xxx }; // CMD_FS // Frequency Synthesizer Programming Command rfc_CMD_FS_t RF_cmdFs = {.commandNo = 0x0803,.status = 0x0000,.pNextOp = 0,.startTime = 0x00000000,.startTrigger.triggerType = 0x0,.startTrigger.bEnaCmd = 0x0,.startTrigger.triggerNo = 0x0,.startTrigger.pastTrig = 0x0,.condition.rule = 0x1,.condition.nSkip = 0x0,.frequency = 0x0988,.fractFreq = 0x0000,.synthConf.bTxMode = 0x0,.synthConf.refFreq = 0x0,.__dummy0 = 0x00,.__dummy1 = 0x00,.__dummy2 = 0x00,.__dummy3 = 0x0000 };#ifndef _TI_RADIO_CONFIG_H_ #define _TI_RADIO_CONFIG_H_#include <ti/devices/DeviceFamily.h> #include DeviceFamily_constructPath(driverlib/rf_mailbox.h) #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h) #include DeviceFamily_constructPath(driverlib/rf_ble_cmd.h) #include DeviceFamily_constructPath(driverlib/rf_prop_cmd.h) #include <ti/drivers/rf/RF.h>// TI-RTOS RF Mode object extern RF_Mode RF_prop_bt5le1m_0;// RF Core API commands extern rfc_CMD_BLE5_RADIO_SETUP_t RF_cmdBle5RadioSetup_bt5le1m_0; extern rfc_CMD_FS_t RF_cmdFs; extern rfc_CMD_BLE5_ADV_AUX_t RF_cmdBle5AdvAux_bt5le1m_0; extern rfc_CMD_BLE5_GENERIC_RX_t RF_cmdBle5GenericRx_bt5le1m_0; extern rfc_CMD_PROP_TX_t RF_cmdPropTx; extern rfc_CMD_PROP_RX_t RF_cmdPropRx;// RF Core API overrides extern uint32_t pOverrides_bt5le1m_0Common[]; extern uint32_t pOverrides_bt5le1m_01Mbps[]; extern uint32_t pOverrides_bt5le1m_02Mbps[]; extern uint32_t pOverrides_bt5le1m_0Coded[];#endif // _TI_RADIO_CONFIG_H_我能够成功使用 CC1345P10-6 rfPacketTx 项目将 BLE RF 数据包发送到自定义 CC2674P10 LaunchPad rfPacketRx 项目。
,
?? ?:
是否可以理解为,打开射频的时候选择BLE模式,即RF_open()这个API选择RF_cmdBle5RadioSetup_bt5le1mp10_1,同时RF_prop也被RF_prop_bt5le1m_0替换,只是后面的Tx,Rx模式就不选择RF_cmdBle5AdvAux_bt5le1m_0以及RF_cmdBle5GenericRx_bt5le1m_0这两个结构体,而选择
RF_cmdPropTx还有RF_cmdPropRx结构体
,
Alex Zhang:
您好, 已经跟进您的问题,有更新会立即回复您,谢谢。
,
?? ?:
我现在用你们提供的方法,Rx可以接收到Tx发来的消息,但是现在我有个疑问就是,我必须在callback里面再次post一次Rx,才能触发callback函数,否则就只能触发第一次,请问这是什么原因呢?
,
Alex Zhang:
您好, 已经跟进您的问题,有更新会立即回复您,谢谢。
,
Alex Zhang:
使用RF_runCmd时,我没有观察到类似的行为,我建议您查看 RF 驱动程序命令差异,如无线电软件包 (rflib) API中所述。