CC1310的收发速率调整
TI工程师,您好!我看到rfWsnNode程序,如果发送和接受的速率不同的话该如何操作。
static void sendDmPacket(struct DualModeSensorPacket sensorPacket, uint8_t maxNumberOfRetries, uint32_t ackTimeoutMs)
{
.......
/* Send packet */
if (EasyLink_transmit(¤tRadioOperation.easyLinkTxPacket) != EasyLink_Status_Success)
{
System_abort("EasyLink_transmit failed");
}
//这里我需要增加接受速率的变化,比如原来是50kbps,现在我改为10kbps
/* Enter RX */
if (EasyLink_receiveAsync(rxDoneCallback, 0) != EasyLink_Status_Success)
{
System_abort("EasyLink_receiveAsync failed");
}
//这里我需要恢复发送速率
}
谢谢!
可以借鉴如下做法:
Use the command RF_control(..,RF_CTRL_UPDATE_SETUP_CMD, ..) after defining the new frequency.
RF_CTRL_UPDATE_SETUP_CMD signals that the change will take effect immidiate on the next power cycle.
The flow could look like this:
RF_open
Start RX (using freq. 1)
Exit Rx
RF_control (RF_CTRL_UPDATE_SETUP_CMD) - change to freq.2
Go to standby or atleast power down RF core (either RF_yield or set inactivityTimeout)
Start Rx (using freq. 2)
Exit Rx
RF_control (RF_CTRL_UPDATE_SETUP_CMD) - change to freq.1
Go to standby or atleast power down RF core (either RF_yield or set inactivityTimeout)
Start Rx (using freq. 1)
Exit Rx
Driver documentation:
http://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_1_30_00_06/docs/tidrivers/doxygen/html/_r_f_8h.html
Description of define RF_CTRL_UPDATE_SETUP_CMD :
Setting this control notifies RF that the setup command is to be updated, so that RF will take proper actions when executing the next setup command. Note the updated setup command will take effect in the next power up cycle when RF executes the setup command. Prior to updating the setup command, user should make sure all pending commands have completed.
可以参考以下链接中关于RF_control 的使用方法和示例
http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/p/140527/395928.aspx#395928