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.

Get SMPL_TX_CCA_FAIL in SMPL_Send

Other Parts Discussed in Thread: CC430F5137, SIMPLICITIHi,

I'm using a CC430F5137 as a access point and 5 ez430-chronos as end device.My simpliciTI version is 1.1.1.I want to receive data by AP and have a response to ED.

I successful received the data,but when I use SMPL_Send to send response to ED,I always get SMPL_TX_CCA_FAIL.

And I try to turn off receive mode but doesn't work.

What should I do?

Thanks in advance.

Sincerely,

David
  • Try to output the carrier sense signal on a GPIO pin on the access point. SMPL_TX_CCA_FAIL means that a frame transmit failed because of CCA failure. If this is the case you should see that the CS is asserted.

    What you can try to do is to increase the RSSI threshold and see if this will help.

    BR

    Siri

  • Hi,

    Siri,

    Thank for your response.

    I have tried changing some register settings by Smart RF Studio 7.

    I set the FOC_BS_CS_GATE bit,and changed AGCCTRL2 to 0x07,AGCCTRL1 to 0x77,MDMCFG2t to 0x17.But I still get SMPL_TX_CCA_FAIL.

    I have used MRFI_Rssi function to see my RSSI value at -78~-83dB.And I'm working on 433MHz.I'm not sure if it was below the thershold because the user's guide only have 868MHz's table.

    And I run the program step by step.

    char cs_pk = (mrfiRadioInterfaceReadReg(PKTSTATUS) & BV(6));  // When program reach here, cs_pk is 0x40(Bit 6 is set)
    
    MRFI_RxIdle();
    
    SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXIDLE, 0);
    
    cs_pk = (mrfiRadioInterfaceReadReg(PKTSTATUS) & BV(6));// And when program reach here, cs_pk is 0x00
    
    char rc = SMPL_Send(sLID[0], simpliciti_data, 4);
    
    MRFI_DelayMs( 10 );
    MRFI_RxOn();
                     
    switch (rc)
    {
       case SMPL_SUCCESS:ClearScreen(0x00,0x00,0x00);break;
       case SMPL_TX_CCA_FAIL:ClearScreen(0xff,0x00,0x00);break; // Still go to here
       case SMPL_BAD_PARAM:ClearScreen(0x00,0xff,0x00);break;
       case SMPL_NOMEM:ClearScreen(0x00,0x00,0xff);break;
       default:break;
    } 

    I'm not sure that "CS is asserted" means what? What can I know from the status register's values?

    Or I get something wrong in setting?

    Sincerely,

    David

  • Hi

    You should not change the FOC_BS_CS_GATE bit or the SYNC_MODE. To change the threshold you should play with the MAX_LNA_GAIN and MAX_DVGA_GAIN settings.

    When using CCA the channel is considered clear if the RSSI is below threshold (CS signal is not asserted). The CS signal can be output on one of the GDO signals by setting IOCFGx.GDOx_CFG = 14 and in the status register bit PKTSTATUS.CS and the CCA signal can be output on a GDO signals by setting IOCFGx.GDOx_ CFG = 0x09.

    Have you been able to run one any of the examples provided with SimpliciTI to see if they work OK?

    Siri

  • Hi,

    I find that the question is caused by a foolish mistake.In the MRFI the GDO0 is used to PA_PD signal and its value shuold be 0x1E.When I want to use GDO to output CS signal and I checked out my GDO0's value is 0x06.I changed GDO0 to 0x1E,and the SMPL_TX_CCA_FAIL disappeared.

    I'm sorry for my late response and my foolish mistake.

    Thank for your all response.

    David
  • Hi David

    Glad you were able to figure it out and that you have code up and running J

    BR

    Siri