您好!
我工作的是基于 CC1310的专有硬件。 您能解释一下改变射频频率的正确方法吗? 我看到过之前的线程、并尝试应用这些线程、但是我的应用程序中有一些问题。
我需要有关更改小于1 MHz 和大于1 MHz 的射频频带的分步说明。 如果您可以指导我或与我分享一些示例代码、那将是非常好的选择。
此致、
克南
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.
尊敬的 Kenan:
如果需要、软件专家将能够提供更多信息、但您是否 看过该主题? https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/858575/cc1310-cc1310-examples-change-of-the-frequency-by-end-program-user
还有以下有关 CC1310的主题帖讨论该主题:
此致、
扎克
我使用 RF_cmdF 更改频率一段时间,但由于某种原因,代码中存在问题。 系统无法正常工作,因此我希望确定更改频率的方式。
尊敬的 Kenan:
您能否说明哪些功能不起作用?
此致、
SID
您好!
我尝试了来自不同线程的几个序列。 尽管我更改的频率超过了1 MHz、但我只更改了 RF_cmdF、而没有更改了 RF_cmdPropRadioDivSetup、并且系统运行良好。 然后组织应用程序代码更改几次、导致通信变得不一致。 这些信息有时被接收,有时不被接收。 然后、我检查了很多主题、并更改了 RF_cmdPropRadioDivSetup、注意了更改。 稍后、我会注意到、如果我在 I alter 和 post cmd 之后立即发出一个 RF 命令、系统将无法正常工作。 如果我延迟或使用 RF_runCmd 而不是发布、则一切都正常。 我当前更改频率的顺序如下:
void Bsp_Rf_switchChannel(uint16_t freq)
{
RF_flushCmd(g_initParams.handle, RF_CMDHANDLE_FLUSH_ALL, 1);
// Update center frequency using RF_cmdPropRadioDivSetup
RF_cmdPropRadioDivSetup.centerFreq = freq;
// Update setup configuration using RF_control
RF_control(g_initParams.handle, RF_CTRL_UPDATE_SETUP_CMD,
(void*) &RF_cmdPropRadioDivSetup);
// Yield the RF core to apply setup configuration changes
RF_yield(g_initParams.handle);
// Change frequency using RF_cmdFs
RF_cmdFs.frequency = freq;
RF_runCmd(g_initParams.handle, (RF_Op*) &RF_cmdFs, RF_PriorityNormal, NULL,
0);
}Kenan Onat Kaplan
尊敬的 Kenan:
1MHz 时调节输出电压。 您需要 使用新的中心频率和 CmdFS 运行新的 RF_cmdPropRadioDivSetup 命令。
这样可确保正确设置频率、并且频率合成器锁定在正确的所需频率。
如果频率差异小于1MHz,则可以简单地 运行新的命令行函数,而不必运行 RF_cmdPropRadioDivSetup。
关于你的第二个问题也是预期行为。
稍后,我注意到,如果我在更改后立即发出了 RF 命令,系统将无法正常工作。 如果我延迟或使用 RF_runCmd 而不是发布、则一切都正常。 [/报价]使用 RF_postCmd ()您只需发布无线电内核运行的命令。 您未等待对讲机完成执行此命令。 但使用 RF_runCmd (),您正在等待 CMDF 完成执行。 您需要先完成该执行、然后才能进行 TX 或 RX。
所以、更改1MHz 以上频率的命令序列是正确的。 只需运行一个新的 RF_cmdF、就可以在小于1MHz 的情况下运行。
此致、
SID