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.

CMD_TX_TEST not working

Other Parts Discussed in Thread: CC2650STK

I modified the rfCarrierWave example to run on the cc2650STK:

/* Configure the radio for Proprietary mode */
    RF_Params rfParams;
    RF_Params_init(&rfParams);


    /* Request access to the radio */
    rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdRadioSetup, &rfParams);
    if(rfHandle == NULL)
    	UART_write(uart, "RF Open Failed", sizeof("RF Open Failed"));
    else {
        /* Send CMD_FS and wait until it has completed */
    	RF_runCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
    	if(RF_cmdFs.status != 0x0400 || RF_cmdRadioSetup.status !=0x0400) {
        	UART_write(uart, "CMD_FS Failed", sizeof("CMD_FS Failed"));

    	}
    	/* Send CMD_TX_TEST which sends forever */
    	RF_runCmd(rfHandle, (RF_Op*)&RF_cmdTxTest, RF_PriorityNormal, NULL, 0);
    	if(RF_cmdTxTest.status != 0x2) {
    	    UART_write(uart, "CMD_TX_TEST Failed", sizeof("CMD_TX_TEST Failed"));

    	}
    }

    /* Should never come here */
    while (1);

CMD_RADIO_SETUP and CMD_FS both seem to work fine, and their statuses are set to 0x0400. CMD_TX_TEST however doesn't do anything. I have another 2650 running PacketRX on SmartRF Studio and it never receives anything. 

smartrf_settings.c:


// TI-RTOS RF Mode Object
RF_Mode RF_prop =
{
     .rfMode = RF_MODE_IEEE_15_4,
    .cpePatchFxn = 0,
    .mcePatchFxn = 0,
    .rfePatchFxn = 0,
};

// Overrides for CMD_PROP_RADIO_DIV_SETUP
static uint32_t pOverrides[] =
{
    // override_use_patch_prop_genfsk.xml
    // PHY: Use MCE ROM bank 4, RFE RAM patch
	//MCE_RFE_OVERRIDE(0,0,0,1,0,0),
	//MCE_RFE_OVERRIDE(0,4,0,1,0,0),
	HW_REG_OVERRIDE(0x4038,0x0035),
	// Synth: Set Fref to 3.43 MHz
	(uint32_t)0x000784A3,
	// Synth: Set loop bandwidth after lock to 80 kHz
	(uint32_t)0xA47E0583,
	// Synth: Set loop bandwidth after lock to 80 kHz
	(uint32_t)0xEAE00603,
	// Synth: Set loop bandwidth after lock to 80 kHz
	(uint32_t)0x00010623,
	// Synth: Configure PLL bias
	HW32_ARRAY_OVERRIDE(0x405C,1),
	// Synth: Configure PLL bias
	(uint32_t)0x1801F800,
	// Synth: Configure PLL latency
	HW32_ARRAY_OVERRIDE(0x402C,1),
	// Synth: Configure PLL latency
	(uint32_t)0x00608402,
	// Synth: Use 24 MHz XOSC as synth clock, enable extra PLL filtering
	(uint32_t)0x02010403,
	// Synth: Configure extra PLL filtering
	HW32_ARRAY_OVERRIDE(0x4034,1),
	// Synth: Configure extra PLL filtering
	(uint32_t)0x177F0408,
	 // Synth: Configure extra PLL filtering
	(uint32_t)0x38000463,
	// override_phy_ieee_15_4.xml
	(uint32_t)0x05000243,
	// Tx: Configure symbol shape
	(uint32_t)0x002082C3,
	// Tx: Compensate timing offset to match new pilot tone setting
	(uint32_t)0x000288A3,
	// Tx: Compensate timing offset to match new pilot tone setting
	(uint32_t)0x000F8883,
	// override_frontend_id.xml
	HW_REG_OVERRIDE(0x50DC,0x002B),
};


// CMD_RADIO_SETUP
rfc_CMD_RADIO_SETUP_t RF_cmdRadioSetup =
{
    .commandNo = 0x0802,
    .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,
    .mode = 0x01,
    .__dummy0 = 0x00,
    .config.frontEndMode = 0x0,
    .config.biasMode = 0x0,
    .config.analogCfgMode = 0x0,
    .config.bNoFsPowerUp = 0x0,
    .txPower = 0x9330,
    .pRegOverride = pOverrides,
};

// CMD_FS
rfc_CMD_FS_t RF_cmdFs =
{
    .commandNo = 0x0803,
    .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,
    .frequency = 0x0965,
    .fractFreq = 0x0000,
    .synthConf.bTxMode = 0x1,
    .synthConf.refFreq = 0x0,
    .__dummy0 = 0x00,
    .__dummy1 = 0x00,
    .__dummy2 = 0x00,
    .__dummy3 = 0x0000,
};

// CMD_TX_TEST
rfc_CMD_TX_TEST_t RF_cmdTxTest =
{
    .commandNo = CMD_TX_TEST,
    .status = 0x0000,
    .pNextOp = 0x00000000, // 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,
    .config.bUseCw = 0x1,
    .config.bFsOff = 0x0,
    .config.whitenMode = 0x2,
    .__dummy0 = 0x00,
    .txWord = 0xFFFF,
    .__dummy1 = 0x00,
    .endTrigger.triggerType = 0x1,
    .endTrigger.bEnaCmd = 0x0,
    .endTrigger.triggerNo = 0x0,
    .endTrigger.pastTrig = 0x0,
    .syncWord = 0x71764129,
    .endTime = 0x00000000,
};

I copied these settings straight from RF, the overrides were taken from the xml config generated by SmartRF Studio. I need to get this working asap, so any help would be appreciated.