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.

CC1121: Loosing communication for few minutes

Part Number: CC1121


Hello,

We have a problem with a number of our deployed systems.

Our system is comprised of end units, sending a status packet every 60 seconds and a hub, that replies to the status packet of the end units. Both the hub and the end units use CC1121 transceiver.

The problem is that every so often, the devices go “offline” for several minutes at a time. The hub marks a device as offline if it hasn’t received a message from it for more than 3.5 minutes.

While communication with one of the devices in the system is lost, it is ok with the rest. The problem appears once per hour in some cases, or even more frequently in others. There are devices in the problematic systems that work without any problem. In some cases, the problem happens only in a period of few hours every day (in the evening for example). The RSSI of all these devices is above -80.

The basic RF settings are:

  • Modulation:                       2GFSK
  • Deviation:                           21.5kHz
  • Data rate:                           38.4kbps
  • RX Filter bandwidth:      100kHz
  • Carrier frequency:             915.000000 MHz
  • Power:                                  5dBm
  • Preamble:                           0xAAAAAA
  • Sync word:                         0x930B51DE

 

I’ve been playing with the radio settings and see noticeable improvements, but the problem still persists. Attached is the file with our current radio setting and comments with what the settings were before.

*Note: frequency and power are set in the code, overwriting the settings from the attached file.

Could you please help me identify the cause or suggest what tests to perform? Could the lack of PA power ramp be causing this?

Thanks,

Borislav

 

 

 cc1121_reg_config.h

  • Hi,

    I suspect the problem could be related to the Frequency offset between the Devices.

    Did you check the Frequency offset on your devices?

    You can widen the Rx Filter Bandwidth (for example 200KHz) and check again. If it a Freq offset issue then it will fix it.

    Are you Calibrating the devices frequently?

    Thanks,

    PM

  • Hi,

    Frequency offset was my first guess and I did already check with 200kHz RX filter BW. Did not help, but at the time IQIC was 0x46 and AGC_REF was 0x20. Do you think the presence of image compensation made my test irrelevant and I should perform it again?

    Unfortunately I am not able to measure the frequency offset of the problematic systems, because they are all over the world and so far I haven't been able to reproduce this in the office.

    We use 10ppm crystal and according to my caluclation the RX filter bandwidth should be at least 118kHz at 915MHz. Is this correct?

    What baffles me is that the device go "dark" for 5-10 consecutive packets and then back to normal for some time (30-90 minutes in most cases). Do you think frequency offset could explain this?

    The devices are calibrated with a SCAL strobe once after reset. For the rest of the time FS_AUTOCAL is set to 1 (When going from IDLE to RX or TX (or FSTXON)).

    Thank you,

    Borislav

  • For me, offset does not explain what you are observing. 

    Are you sure this is not due to interference/ a blocker occurring at given times? Since it happens more on some parts of the day than others it could be other radio traffic that block your node. 

  • Our systems usually comprise of at least 5 end units, and when one of the devices goes offline, the rest are ok.

  • Without knowledge of the network or the software running it's difficult for us to advice exactly what could be causing what you see.

    Is it given that all 5 end nodes see the same interference/ blocker? Is it random which end node that goes offline or is it random?  

  • Hi,

    No, when one device is offline, the rest are ok. It is not random, the problem is always with the same device or devices within a system. 

    The system works as follows:

    Every end unit sends a 15byte payload packet once every 60 seconds. The hub replies to each of the received packets. The network topology is a star. The hub is always in RX. Upon a received packet, the hub makes a context switch to the thread that handles radio communication. I've ruled out missed interrupts, because the radio is configured to go to IDLE after good packet is recieved and RX would not be restarted if the interrupt is missed.

    This is a typical example of the problem:

    In a system with 9 end units, one is problematic and frequently goes offline. No other devices in the system go offline. The average RSSI of the problematic device is -93 (max is -88, min is -99). Below is a 24 hour export:

    Event Time Offline duration Online Duration
    Status changed to Offline 9:53:20 9:53:20
    Status changed to OK 9:55:34 0:02:14
    Status changed to Offline 10:07:30 0:11:56
    Status changed to OK 10:10:35 0:03:05
    Status changed to Offline 10:14:08 0:03:33
    Status changed to OK 10:15:28 0:01:20
    Status changed to Offline 10:19:01 0:03:33
    Status changed to OK 10:30:58 0:11:57
    Status changed to Offline 10:35:20 0:04:22
    Status changed to OK 10:38:23 0:03:03
    Status changed to Offline 10:41:56 0:03:33
    Status changed to OK 10:43:15 0:01:19
    Status changed to Offline 10:54:21 0:11:06
    Status changed to OK 11:20:38 0:26:17
    Status changed to Offline 11:24:11 0:03:33
    Status changed to OK 11:39:56 0:15:45
    Status changed to Offline 11:43:52 0:03:56
    Status changed to OK 11:52:10 0:08:18
    Status changed to Offline 12:18:18 0:26:08
    Status changed to OK 12:23:29 0:05:11
    Status changed to Offline 12:38:24 0:14:55
    Status changed to OK 12:38:28 0:00:04
    Status changed to Offline 12:49:08 0:10:40
    Status changed to OK 12:50:28 0:01:20
    Status changed to Offline 19:33:25 6:42:57
    Status changed to OK 19:33:29 0:00:04
    Status changed to Offline 19:40:05 0:06:36
    Status changed to OK 19:48:29 0:08:24
    Status changed to Offline 19:52:02 0:03:33
    Status changed to OK 19:52:28 0:00:26
    Status changed to Offline 20:01:07 0:08:39
    Status changed to OK 20:07:48 0:06:41
    Status changed to Offline 20:11:21 0:03:33
    Status changed to OK 20:12:19 0:00:58
    Status changed to Offline 20:33:06 0:20:47
    Status changed to OK 20:34:25 0:01:19
    Status changed to Offline 20:37:58 0:03:33
    Status changed to OK 20:38:37 0:00:39
    Status changed to Offline 20:46:14 0:07:37
    Status changed to OK 21:05:17 0:19:03
    Status changed to Offline 21:08:50 0:03:33
    Status changed to OK 21:27:46 0:18:56
    Status changed to Offline 21:31:30 0:03:44
    Status changed to OK 21:51:34 0:20:04
    Status changed to Offline 21:55:07 0:03:33
    Status changed to OK 21:57:05 0:01:58
    Status changed to Offline 22:00:38 0:03:33
    Status changed to OK 22:02:34 0:01:56
    Status changed to Offline 22:06:21 0:03:47
    Status changed to OK 22:07:08 0:00:47
    Status changed to Offline 22:12:41 0:05:33
    Status changed to OK 22:23:00 0:10:19
    Status changed to Offline 22:31:07 0:08:07
    Status changed to OK 22:35:18 0:04:11
    Status changed to Offline 22:41:23 0:06:05
    Status changed to OK 22:52:04 0:10:41
    Status changed to Offline 22:55:37 0:03:33
    Status changed to OK 23:00:12 0:04:35
    Status changed to Offline 23:06:17 0:06:05
    Status changed to OK 23:11:16 0:04:59
    Status changed to Offline 23:15:19 0:04:03
    Status changed to OK 23:29:15 0:13:56
    Status changed to Offline 23:33:49 0:04:34
    Status changed to OK 23:35:21 0:01:32
    Status changed to Offline 23:38:54 0:03:33
    Status changed to OK 23:42:19 0:03:25
  • Is it possible to move the problematic node to a different location for debug purposes? Alternative/ in addition swap the problematic node with a different one to see if it's the location or the physical node that causes an issue. 

  • Unfortunately I can't play with these systems. They are in cutomer properties.

    We did this awhile ago during a beta test and if I recall correctly after the swap, both device were ok. After swapping them a second time, the problematic device behaved the same as before the first swap.

    Just to rule out frequency drift - is enabling FS_AUTOCAL enough, or should an SCAL strobe be issued from time to time? Also is 100kHz ok for 10ppm crystal, or should I increase it to 118kHz?

    Thank you,

    Borislav

  • If your recollection of the swap is correct, it sounds like the two nodes are not equal. Could the problematic node have poorer sensitivity for some reason?

    The minimum RX BW is given as: RX BW = Signal Bandwidth + 4*ppm Crystal * RF Frequency of Operation.

    SCAL vs AUTOCAL: It depends. For the collector, do you run calibration just once, when it enter RX or do you recalibrate from time to time? In theory it should not be required with a recalibration if supply and temp is constant but to ensure a reliable link recalibration every x time unit should be done. The x difficult to be sure about, depends on the system. 

    Are you able to debug on the installed system at all or change some of the sensors and take them back to the lab? I don't see how frequency offset could explain what you are seeing but to be on the safe side it could be interesting to measure the center frequency for this node. 

  • All our devices that leave the factory go through an automatic radio test during production. The test is sending of 100 packets and receiving 100 responses against a device fixed inside the testing jig. PER and Min/max/mean RSSI data is collected for both the sent and received packets and compared against predefined limits. I will review the test results for few of the problematic devices and compare against average.

    So RX BW = 38400 + 2*21500 + 4*10*915 = 118000, correct?

    On the collector, SCAL is issued only once after reset. For the rest of the time I rely on AUTOCAL, which is set to be when going from IDLE to RX or TX. Since devices communicate every 60 seconds, the recalibration should be often enough I think. Is there a difference between SCAL and AUTOCAL?

    I will have to find a problematic device in one of our beta sites.

  • The difference between SCAL and AUTOCAL is just when the calibration is done. (manual vs automatically) Every 60 seconds should be sufficient. Does that mean that the collector is calibrated every 60 seconds too? 

    So RX BW = 38400 + 2*21500 + 4*10*915 = 118000, correct?: Yes, but if you use GFSK the signal bandwidth is lower. Your calculation gives worst case.