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.

CC2652P: How to stop 2.4G cw when it has been started?

Part Number: CC2652P

Hi, I use CC2652P, SimpleLink SDKv4.20. My application is based on TI154stack sensor_2_4g.

I need to control cw test.

I use RF_open() with RF_cmdRadioSetup(command No 0x0802).

Then, I use RF_runCmd() with RF_cmdFs(command No 0x0803).

Finally, I use  RF_postCmd with RF_cmdTxTest(command No 0x0808) to tx cw.

In RF_cmdTxTest, end trigger type is 0x1, so that cw will never stop.

Now, cw works fine. I can observe 2.4G spectrum on a spectrum analyzer.

And, after some time, I need to stop cw.

I tried 2 different ways to stop cw but they all fail.

1st way is:

When I want to stop cw, I set RF_cmdTxTest as below:

.endTrigger.triggerType = 0x4,
.endTime = 4000

Then, I call RF_runCmd() with RF_cmdFs and RF_postCmd with RF_cmdTxTest again.

I expect that cw will restart and continue for 1ms, and then stop.

2nd way is :

When I want to stop cw, I use RF_runCmd with RF_cmdTrigger as below:

rfc_CMD_TRIGGER_t RF_cmdTrigger =
    {
         .commandNo = 0x0808,
         .triggerNo = 0x33
    };

End trigger No. in RF_cmdTxTest is also 0x33 as below:

rfc_CMD_TX_TEST_t RF_cmdTxTest_ieee154_0 =
    {
        .commandNo = 0x0808,
        .status = 0x0000,
        .pNextOp = 0,
        .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 = 0xABCD,
        .__dummy1 = 0x00,
        .endTrigger.triggerType = 1,
        .endTrigger.bEnaCmd = 0x1,
        .endTrigger.triggerNo = 0x33,
        .endTrigger.pastTrig = 0x00,
        .syncWord = 0x71764129,
        .endTime = 0x00000000
    };

These 2 ways all fail to stop cw and trigger errors, goes into Main_excHandler().

So, How to stop cw when it has been started?