CC1310以50kbps速率发送完之后,切换到25kbps速率接收,然后再以50kbps速率发送,再切换到25kbps接收,如此循环,该如何配置相关参数?
user6340973:
或者是发送和接收在不同频段,有实现的方法吗?
Kevin Qiu1:
可以利用SmartRF Studio 7进行设置,然后导出smartrf_settings文件到工程中,发射和接收在不同频段是收不到信息的
user6340973:
回复 Kevin Qiu1:
我是打算在一块板子上实现收发的切换,就是该板子具有先以50kbps发送数据,再以25kbps接收数据的功能,该如何实现
Kevin Qiu1:
回复 user6340973:
如果仅是实现不同速率传输数据,可以尝试使用rf_control命令来更新速率配置
1. …use settings from smartrf_settings.c (50kbps)
2. RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0); //Send packet@50kbps
3.//Change from 50kbps to 500kbps with update
RF_cmdPropRadioDivSetup.symbolRate.preScale = 0x6;
RF_cmdPropRadioDivSetup.symbolRate.rateWord = 0x20000;
RF_cmdPropRadioDivSetup.modulation.modType = 0x1;
RF_cmdPropRadioDivSetup.modulation.deviation = 0x2BC;
RF_cmdPropRadioDivSetup.rxBw = 0x2F;4. RF_control(rfHandle, RF_CTRL_UPDATE_SETUP_CMD, NULL); //Signal update Rf core
5. RF_yield(rfHandle);// Force a power down using RF_yield() API. This will power down RF after all pending radio commands are complete.
6. RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0); //Send packet@500kbps
user6340973:
回复 Kevin Qiu1:
我这么修改的,但是发现下到板子里速率还是没有变,代码如下:RF_cmdPropRadioDivSetup.symbolRate.rateWord = 0x4000; //25kbpsRF_control(rfHandle, RF_CTRL_UPDATE_SETUP_CMD, NULL);RF_yield(rfHandle);RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, NULL, 0);
user6340973:
回复 Kevin Qiu1:
我就只改变速率,其余参数不改变,还要写其他参数的设置吗
Viki Shi:
实现的方法之前的帖子里已经讨论过了。修改速率可以通过smartrf_setting.c文件,或者直接用smartrf studio配置好后导出参数
user6340973:
回复 Viki Shi:
同一块板子实现两个速率也是可以用smartrf studio这个配置的吗?收发速率不一致,不需要通过通过配置来修改吗?
Kevin Qiu1:
回复 user6340973:
通过smartrf studio配置的文件是不能自由切换速率的,接收端要改成和发射端相同的速率
user6340973:
回复 Kevin Qiu1:
这么改过之后,速率还是50kbps:RF_cmdPropRadioDivSetup.symbolRate.preScale = 0xF;RF_cmdPropRadioDivSetup.symbolRate.rateWord = 0x4000; //25kbpsRF_cmdPropRadioDivSetup.modulation.modType = 0x1;RF_cmdPropRadioDivSetup.modulation.deviation = 0x64;RF_cmdPropRadioDivSetup.rxBw = 0x24;RF_control(rfHandle, RF_CTRL_UPDATE_SETUP_CMD, NULL);RF_yield(rfHandle);RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, NULL, 0);