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.

CC430F5137: Using RF Studio Register settings in firmware fails for low baud rates

Part Number: CC430F5137
Other Parts Discussed in Thread: CC1310

Hi,

I am using a CC430 to perform long range radio communication. I have used RF Studio to figure our the best RF Register settings to be used for long range application.

Obviously lower baud rates perform best in terms of range and as I do not need high data rates, this is the way to go for my application.

The following code loads the register settings from RF Studio:

WriteSingleReg(IOCFG0, 0x06);
WriteSingleReg(FIFOTHR, 0x47);
WriteSingleReg(PKTCTRL0, 0x05);
WriteSingleReg(FSCTRL1, 0x06);
WriteSingleReg(FREQ2, 0x21);
WriteSingleReg(FREQ1, 0x62);
WriteSingleReg(FREQ0, 0x76);
WriteSingleReg(MDMCFG4, 0xF5);
WriteSingleReg(MDMCFG3, 0x83);
WriteSingleReg(MDMCFG2, 0x13);
WriteSingleReg(DEVIATN, 0x15);
WriteSingleReg(MCSM0, 0x10);
WriteSingleReg(FOCCFG, 0x16);
WriteSingleReg(WOREVT1, 0x87);
WriteSingleReg(WOREVT0, 0x6B);
WriteSingleReg(WORCTRL, 0xFB);
WriteSingleReg(FSCAL3, 0xE9);
WriteSingleReg(FSCAL2, 0x2A);
WriteSingleReg(FSCAL1, 0x00);
WriteSingleReg(FSCAL0, 0x1F);
WriteSingleReg(TEST2, 0x81);
WriteSingleReg(TEST1, 0x35);
WriteSingleReg(TEST0, 0x09);
WriteSingleReg(LQI, 0x6A);
WriteSingleReg(RSSI, 0x80);
WriteSingleReg(VCO_VC_DAC, 0x94);
WriteSingleReg(RF1AIFCTL1, 0x74);
WriteSingleReg(RF1AIFERR, 0x01);
WriteSingleReg(RF1AIFERRV, 0x02);
WriteSingleReg(RF1AINSTRW, 0xC000);
WriteSingleReg(RF1AINSTR1W, 0xC000);
WriteSingleReg(RF1AINSTR2W, 0xC000);
WriteSingleReg(RF1ADINW, 0xC000);
WriteSingleReg(RF1ASTAT0W, 0x8000);
WriteSingleReg(RF1ASTAT1W, 0x8000);
WriteSingleReg(RF1ASTAT2W, 0x8000);
WriteSingleReg(RF1AIN, 0x04);

While baud rates of 4.8kBaud and higher work perfectly well, the lower rates 1.2kBaud / 0.6kBaud do not work (when implemented in FW). By "do not work" I mean that the firmware seems to send the packet ok but no data packets can be received by the receiver. I run the receiver on RF Studio directly and of course made sure that the settings were matching.

Now my question: Beside the RF register settings, is there anything else in the FW that I need to especially take care when using low baud rates? My feeling is that on the MSP side of things there is something to do (maybe system clock frequency, which is currently 12MHz).

This is how CPU is currently configured:

_BIS_SR(SCG0);              // Disable the FLL control loop
  UCSCTL0 = 0x0000;           // Set lowest possible DCOx, MODx
  UCSCTL1 = DCORSEL_5;          // Select suitable range
  UCSCTL2 = FLLD_1 + 0x16E;    // Set DCO Multiplier
_BIC_SR(SCG0);              // Enable the FLL control loop

Thanks,

Henry 

  • Hello Henry,

    I do not have a h/w to recreate your issue.
    Post your issue on this thread e2e.ti.com/.../
    Hope, you would get an answer faster.
  • For 1.2 kbps, do you use the settings directly from SmartRF Studio?

    I'm not aware of other settings should be required. Could you also check if you have a frequency offset between your TX and RX side?

    Note: Any reason you are looking into CC430 compared to CC1310 or similar?
  • Hi TER,

    I directly export the settings from RF Studio. Before exporting, I tested those exact setting on the exact same hardware and in RF Studio it works. I guess a frequency offset should also have a bad effect in case of using RF Studio, right?
    Any other Idea?

    Best,
    Henry

    Re CC1310: We will consider changing sooner or later. Would the CC1310 be compatible communicating with CC430 (using the same RF settings of course)? Because we have customers in the field which are equipped with cc430 and might by extra units that should also work with the "old" cc430.

  • CC1310 will be able to communicate with CC430 given the same datarate, deviation, modulation and packet format.

    You write: " I mean that the firmware seems to send the packet ". Does that mean that everything seems to work as expected if you step through the code?

    One thing with low datarates is that it takes a long time to send a packet. Could you potentially have a timing issue?
  • Hi TER,
    I will reduce the complexity of my code to rule out the chance of timing issues. Indeed this could be a potential problem... I will update as soon as I was able to test.
    Best,
    Henry