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.

CC430 868MHz MSK 115kBaud Packet Error Rate 45%

Other Parts Discussed in Thread: CC1101, CC430F6137

Hello!

When transmitting and receiving data packets, I have a PER of about 45% at RSSI-Level -60dBm.

I think, this is very high. What value would you expect with my RF settings? Is it possible to get a PER of 1% or better?

At the moment I am developing and testing with 2 boards of the EM430F5137RF900 Evaluation set.

The RF settings are: 865MHz, 115kBaud datarate, MSK, approx. 15 Bytes packet length:

// Rf settings for CC430
WriteSingleReg(IOCFG0,0x06);      //GDO0 Output Configuration
WriteSingleReg(PKTCTRL1,0x46);    // PQT=2 (threshold = 4*2), Append Status, Address check and 0x00 broadcast
WriteSingleReg(PKTCTRL0,0x05);    // Data whitening off
WriteSingleReg(FSCTRL1,0x0C);     //Frequency Synthesizer Control
WriteSingleReg(FREQ2,0x21);       //Frequency Control Word, High Byte
WriteSingleReg(FREQ1,0x46);       //Frequency Control Word, Middle Byte
WriteSingleReg(FREQ0,0x66);       //Frequency Control Word, Low Byte
WriteSingleReg(MDMCFG4,0x6C);     //Modem Configuration
WriteSingleReg(MDMCFG2,0xF3);     //Modem Configuration
WriteSingleReg(MDMCFG1,0x20);     //Modem Configuration
WriteSingleReg(DEVIATN,0x57);     //Modem Deviation Setting
WriteSingleReg(MCSM0,0x10);       //Main Radio Control State Machine Configuration, AutoCal On
WriteSingleReg(FOCCFG,0x1D);      //Frequency Offset Compensation Configuration
WriteSingleReg(BSCFG,0x1C);       //Bit Synchronization Configuration
WriteSingleReg(AGCCTRL2,0xC7);    //AGC Control
WriteSingleReg(AGCCTRL1,0x00);    //AGC Control
WriteSingleReg(AGCCTRL0,0xB0);    //AGC Control
WriteSingleReg(WORCTRL,0xFB);     //Wake On Radio Control
WriteSingleReg(FREND1,0xB6);      //Front End RX Configuration
WriteSingleReg(FSCAL3,0xEA);      //Frequency Synthesizer Calibration
WriteSingleReg(FSCAL2,0x2A);      //Frequency Synthesizer Calibration
WriteSingleReg(FSCAL1,0x00);      //Frequency Synthesizer Calibration
WriteSingleReg(FSCAL0,0x1F);      //Frequency Synthesizer Calibration
WriteSingleReg(TEST0,0x09);       //Various Test Settings

Thank you in advance!

Best regards

Daniel Wiese

  • First thing to do is to use one of the "typical settings" from SmartRF Studio to verify that the HW and SW setup is ok. We know these settings work.

    For MSK use 2-FSK modulation with modulation index = 0.5 (i.e frequency deviation is data rate/4). In your case data rate of 115 kHz and deviation set to +/-28.75 kHz..

  • Thank you for your answer. I will try it.

    I have reduced the data rate (32 kBaud) for test purposes and increased the TX power (-30dBm). With these "ideal" settings, I got a PER of about 2%.

    But our customers demand for a data rate of 115 kBaud.

    Another issue is, that I need to deactivate the RX DC Blocking filter (optimized for current consumption, not for sensitivity). Otherwise the controller crashes. Is there a relation to the errors in transmission?

  • Above the sensitivity limit you should have a PER of 0. Try one of the "typical settings" from Studio before you do anything else. You need to verify your setup using good known register settings. 

    You write that the TX power is -30 dBm. is this using a signal generator as source or another CC430? In case of the latter, I assume you run an RF link. The question is then: what is the RSSI (i.e the input power level) at the receiver.

    It is not clear to me if you have developed your own HW and SW or if you are using our EM and SmartRF Studio to control the boards. In any case, before you set up an RF link you need to test RX and TX (and the antenna) separately before you set up an RF link. Otherwise you have no way of knowing where the problem is: RX, TX, antenna, SW?

    1) Test RX: use an RF signal generator as signal source. Use a good known SW to control the boards (SmartRF Studio)

    2) Test TX: use a spectrumanalyzer. Use a good known SW to control the boards (SmartRF Studio)

    3) Measure antenna performance and tune if needed. Use a network analyzer

    When 1) to 3) are OK you can test with your own SW since you then know the HW is OK

    Next step is then to set up an RF link.

  • Ah okay, then I have to improve the link quality, because I'm far away from 0% PER.

    My description of TX power was not correct. Correct: I set the TX power from one EM and the distance between the EMs so that the RSSI of the receiving board was -30dBm.

    I am using two EM430F5137RF900 boards and the basic setting were made with SmartRF Studio. So I assume, that HW is okay. Now I must configure the RF link right and it depends on my software.

    This leads to my question, if a PER of approx. 45% with MSK and a data rate of 115kBaud is too high. I understood, that it is too high...

    Do you know, if there is an issue with the TX DC blocking filter on MSK modulation? If I use it, the controller crashes.

  • Don't know about sensitivity for MSK (as set in CC430  MDMCFG2 register) at 115 kBaud as I have never tested it. However, once you get one of the "typical settings" to work (0 PER above sensitivity limit) you can move on to 115 kBaud. As I wrote earlier, instead of selecting MSK modulation format you should use 2FSK and a modulation index of 0.5 (i.e deviation = data rate/4). The latter corresponds to MSK.

    If for some reason you are using MSK in MDMCFG2 register you also need to play around with the DEVIATN.DEVIATN_M register to find the best performance. As mentioned above - easier to use 2FSK and a modulation index = 0.5.

  • Thank you Sverre. Your suggestions were right.

    I guess, the problem is a HW issue in the receiving path of one of my EM Boards. When I enable RX DC blocking filter, the program crashes (jumping to address 0x0000 is reported by MSP-FET430UIF) when data is received.

    But then I changed my receiving and tranmitting EM board and the other board doesn't fail and I could enable the RX DC blocking filter. With these settings I get a PER of about 0.5%.

    Now I probably have to buy a new set of EM-CC430F5137 boards to verify, if it is a HW issue.

    Thank you for your support.

  • Sverre, I see that your recommendation is to use FSK rather than MSK (OQPSK).

    I test MSK prefered 500 kBaud setting from SmartRF for CC1101 unit (works on CC430). It works as datasheet says CC430F6137 - Sensitivity about -86dBm.

    I set 499kBaud / 127 khz dev / 812 rx bw filter / 0x0E IF filter / AGC at max  at FSK and sensitivity is about -80 dBm.

    I expected best results with FSK, if is more recommended... ?

  • For CC1101: 500 kbps SmartRF Studio typical setting is MSK modulation. Data sheet provides sensitivity figures

    For CC430: 500 kbps SmartRF Studio typical setting is 2-FSKmodulation, +/-127 kHz deviation. Data sheet provides sensitivity figures

    What I have written previously is that for 115.2 kBaud it is better to use 2-FSK and mod index = 0.5 instead of  MDMCFG.MOD_FORMAT = 7 if you want MSK modulation.

  • @MykroStd: You were right (in the other forum).  My deviation settings were wrong. (Sverre, you also told me to play around with DEVIATN.DEVIATN_M settings). Now I know that this value has to be 0-7 for MSK.

    And it works. With the correct deviation settings (DEVIATN.DEVIATN_M = 0x00) I get a PER of 0% when above the sensitivity limit of -90dBm.

    It is because the SmartRF Studio just sets the Phase transition time when I (re)start the Device Control Panel. If I have any (incorrect) value in this field and then select one of the typical settings, the Deviation value is set correct for 2-(G)FSK. When I then change Modulation to MSK the former incorrect value stays in the Phase transition time field. It is not changed to the correct value. That was my mistake.

    @Sverre: I cannot use 2-GFSK with n=0.5 because our customer requests for MSK and as I noticed the polarity is inverted.

    Thank you for your support. Now I have a robust radio link as expected.

  • DEVIATN for MSK modulation is strange. It is not angle value, but something like "time-to-change-phase".  TIf you use 0x00, the spectrum (98%) with 500 kbps can be larger  than 1 MHz, if you use ie. 0x07, spectrum will be narrower .. I dont understand why and how to set DEVIATN, probably must to play with it.... So conclusion is : narrow spectrum (narrow rx filter) give less noise (higher sensitivity)..

    For me , MSK as FSK with m=0.5 (ie 357kbps/88 kHz/ 464rx bw (obw cca 430 khz) gives worse results as MSK as OQPSK with 350 / 0x00/ 812rx bw ... i´ll expected inverted results :)

    Sverre little correct: 500 MSK for CC430 is not provided in Studio, example is only for CC1101 :)