Hello,
I am working on a project using the CC430F6137.
When I change the state of the radio core from IDLE to TX or RX it can take up to 810µs.
I use the following code:
if((Strobe(RF_SNOP) & CC430_STATE_MASK) != checkState){ // Check if the radio core isn't already in the givven state do{ Strobe(radioState); // Set the state of the radio __delay_cycles(10); setRadioStateTimeOut--; // Decrease timeOut }while(((Strobe(RF_SNOP) & CC430_STATE_MASK)!= checkState) && (setRadioStateTimeOut > 0));// Check if the radio state has been entered if(setRadioStateTimeOut == 0){ // Time out expired? Strobe(RF_SIDLE); // Set radio state in idle mode error = CORESTATE_ERROR_FAIL; } }
So basically:
- Check if not already in the state
- Set the state
- Check the state
This takes up to 810µs, wich is strange since the radio core is never in sleep mode.
So this delay is not the workaround for RF1A7 wich is included in the Strobe command (from the RF1A librarie from TI).
Is it normal that it takes such a long time for the radio core to enter the state?
810µs is ages when you are communicating at 175kBaud.
Does anybody have an idea what causes this long delay?
With kind regards,
Wim