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.

No RF interrupt with SmartRF Studio settings with SimpliciTI stack

Other Parts Discussed in Thread: CC430F5137, SIMPLICITI

Hello folks,

I've managed to get my custom board with a CC430F5137 to work decently well with the following settings:

/***************************************************************
 *  SmartRF Studio(tm) Export
 *
 *  Radio register settings specifed with C-code
 *  compatible #define statements.
 *
 *  RF device: CC430
 *
 ***************************************************************/

#ifndef SMARTRF_CC430_H
#define SMARTRF_CC430_H

#define SMARTRF_RADIO_CC430
#define SMARTRF_SETTING_IOCFG0     0x06
#define SMARTRF_SETTING_PKTCTRL0   0x05
#define SMARTRF_SETTING_FSCTRL1    0x0C
#define SMARTRF_SETTING_FREQ2      0x10
#define SMARTRF_SETTING_FREQ1      0xA7
#define SMARTRF_SETTING_FREQ0      0x62
#define SMARTRF_SETTING_MDMCFG4    0x3C
#define SMARTRF_SETTING_MDMCFG3    0xB9
#define SMARTRF_SETTING_MDMCFG2    0x13
#define SMARTRF_SETTING_DEVIATN    0x57
#define SMARTRF_SETTING_MCSM0      0x10
#define SMARTRF_SETTING_FOCCFG     0x1D
#define SMARTRF_SETTING_BSCFG      0x1C
#define SMARTRF_SETTING_AGCCTRL2   0xC7
#define SMARTRF_SETTING_AGCCTRL1   0x00
#define SMARTRF_SETTING_AGCCTRL0   0xB0
#define SMARTRF_SETTING_WORCTRL    0xFB
#define SMARTRF_SETTING_FREND1     0xB6
#define SMARTRF_SETTING_FSCAL3     0xEA
#define SMARTRF_SETTING_FSCAL2     0x2A
#define SMARTRF_SETTING_FSCAL1     0x00
#define SMARTRF_SETTING_FSCAL0     0x1F
#define SMARTRF_SETTING_TEST0      0x09

#define SMARTRF_SETTING_CHANNR      0x00
#define SMARTRF_SETTING_FIFOTHR     0x07
#define SMARTRF_SETTING_FREND0      0x10
#define SMARTRF_SETTING_FSCTRL0     0x00
#define SMARTRF_SETTING_MDMCFG0     0xF8
#define SMARTRF_SETTING_MDMCFG1     0x22
#define SMARTRF_SETTING_TEST1       0x31
#define SMARTRF_SETTING_TEST2       0x88

#endif

However, I'm trying to lower the baud rate from 175 kbaud to 38 kbaud to improve receive sensitivity. So, from the Smart RF studio, I'm using the following settings:

/***************************************************************
 *  SmartRF Studio(tm) Export
 *
 *  Radio register settings specifed with C-code
 *  compatible #define statements.
 *
 *  RF device: CC430
 *
 ***************************************************************/

#ifndef SMARTRF_CC430_H
#define SMARTRF_CC430_H

#define SMARTRF_RADIO_CC430
#define SMARTRF_SETTING_IOCFG0     0x06
#define SMARTRF_SETTING_FIFOTHR    0x47
#define SMARTRF_SETTING_PKTCTRL0   0x05
#define SMARTRF_SETTING_FSCTRL1    0x06
#define SMARTRF_SETTING_FREQ2      0x10
#define SMARTRF_SETTING_FREQ1      0xA7
#define SMARTRF_SETTING_FREQ0      0x62
#define SMARTRF_SETTING_MDMCFG4    0xCA
#define SMARTRF_SETTING_MDMCFG3    0x83
#define SMARTRF_SETTING_MDMCFG2    0x13
#define SMARTRF_SETTING_DEVIATN    0x35
#define SMARTRF_SETTING_MCSM0      0x10
#define SMARTRF_SETTING_FOCCFG     0x16
#define SMARTRF_SETTING_AGCCTRL2   0x43
#define SMARTRF_SETTING_WORCTRL    0xFB
#define SMARTRF_SETTING_FSCAL3     0xE9
#define SMARTRF_SETTING_FSCAL2     0x2A
#define SMARTRF_SETTING_FSCAL1     0x00
#define SMARTRF_SETTING_FSCAL0     0x1F
#define SMARTRF_SETTING_TEST2      0x81
#define SMARTRF_SETTING_TEST1      0x35
#define SMARTRF_SETTING_TEST0      0x09

#define SMARTRF_SETTING_AGCCTRL0    0x91
#define SMARTRF_SETTING_AGCCTRL1    0x40
#define SMARTRF_SETTING_BSCFG       0x6C
#define SMARTRF_SETTING_CHANNR      0x00
#define SMARTRF_SETTING_FREND0      0x10
#define SMARTRF_SETTING_FREND1      0x56
#define SMARTRF_SETTING_FSCTRL0     0x00
#define SMARTRF_SETTING_MDMCFG0     0xF8
#define SMARTRF_SETTING_MDMCFG1     0x22

#endif

Unfortunately, I'm not seeing any RF interrupts being fired after switching to the 38 kBaud config. I tried looking at the RF error registers and I did see an OPERR but I saw it in the 175 kBaud config that worked as well. In addition, using a spectrometer, I see a pretty good RF signal coming from the sender (that are using the exact same settings as well). Any ideas how to investigate this problem efficiently? Or do I need to do some trial and error between the working and non-working configs?

  • Hi

    You are using the recommended 38.4 kbps register settings so the settings should be fine. Have you checked that there is no timing issue? Not knowing your code, there could potentially occur timing issues when you reduce the data rate.
  • I'm following the AP_as_Data_Hub SimpliciTI example quite closely. I can try running those register settings with the actual sample code from the SimpliciTI download to see if this problem can be reproduced. But as far as I can remember, I tried a really low baud rate when playing around with the original SimpliciTI sample code about 2 weeks ago and I observed the same problem of no RF interrupts being picked up.

    Also, it looks like problem (1) at http://e2e.ti.com/support/wireless_connectivity/f/155/t/378974 seems very similar but there were no (real) answers to the question :(. Another question, are there any sample configurations for the baud rates between 38 kbaud and 175 kbaud? I didn't see any in the SmartRF studio.

  • Ok, I messed around with the code a little more. Here are some findings:

    1. The AP listens on channel 0 and will listen on other channels based on a button press. The ED scans for channels by pinging each channel.
    2. If there is no button press, the ED cannot find the channel that the AP is listening on, which causes the problem as I described above.
    3. If the AP cycles through the available channels, the ED eventually finds the channel and the devices are able to pair.

    (3) seems to imply that there is some kind of asymmetry between the TX/RX, which is curious since they are the same board with the same RF settings.
  • @Martin: I can reproduce the no interrupt problem at 38.4 kbaud on my custom CC430F5137 board with the default AP_as_Data_Hub SimpliciTI sample code. Do you mind checking if you can reproduce this on your end with TI evaluation/debug boards as well?
  • Hello.

    You are using a data rate much lower than the default data rate in the sample application. See the Note in Section 3.4.1 in the SimpliciTI Sample Application User's Guide.

    It is likely that at the low data rate a frame is being sampled and interpreted as noise. Either disable Frequency Agility or modify the code that samples RSSI and declares "noisy channel".

    Hope this helps.

    lfriedman

  • @: Yup, I came to the exact same conclusion on Friday evening. I guess this was the timing issue that Martin was talking about earlier. Although, if any TI folks are reading this, it seems like an easy fix in Simpliciti to vary the checkChannelChange() code based on the baud rate.