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.

CC1310: Ti 15.4 Stack Sensor reset issue

Part Number: CC1310


Hello,

I have a sensor with dynamic reporting interval that is changed by the coordinator through the beacon payload.

The coordinator switch between two reporting intervals.

"Sleep Interval": polling = 6000 ms and reporting = 60000 ms

"Fast Interval": polling = 10 ms and reporting = 100 ms

The coordinator in the "Fast Inverval" have a timer of 250ms of interval that see if in that interval receive any reporting. If receive the dataCount variavel is set to 1, if not stay 0.

All works fine until I turn the sensor down and up again. Some time after that the sensor stop sending the reports on the right time.

Any idea why this happen?

BEFORE:

AFTER:

Best Regards.

  • I am not sure what could be causing this but have you tried using a sniffer log to see if the sensor is actually sending this data over the air or if it is not even being sent. Also with the sniffer you can check how often these packets are actually being sent so you can get a better idea of the period that the sensor is actually using.
  • I only have 2 CC1310, will buy more soon.

    To have the reporting and polling dynamic i set the configSettings.pollingInterval and configSettings.reportingInterval to the values received on the beacon payload. Is this the correct way or i need to do something else? Is the only code i change on the sensor side so i think is the only thing that can do the issue.

    The code i use in the sensor:

    static void beaconIndCB(ApiMac_mlmeBeaconNotifyInd_t *pBeaconNotifyInd) {
        if (pBeaconNotifyInd->beaconData.beacon.sduLength == 4) {
            //LCD_WRITE_STRING("Beacon Received!!!", 1);
            uint8_t *pBuf = pBeaconNotifyInd->beaconData.beacon.pSdu;
    
            uint32_t lastReportingInterval = configSettings.reportingInterval;
    
            configSettings.reportingInterval = *pBuf++ << 8;
            configSettings.reportingInterval |= *pBuf++;
    #ifndef POWER_MEAS
            //LCD_WRITE_STRING_VALUE("reportingInterval: ", configSettings.reportingInterval, 10, 1);
    #endif
    
            configSettings.pollingInterval = *pBuf++ << 8;
            configSettings.pollingInterval |= *pBuf++;
    #ifndef POWER_MEAS
            //LCD_WRITE_STRING_VALUE("pollingInterval: ", configSettings.pollingInterval, 10, 1);
    #endif
    
            if (lastReportingInterval != configSettings.reportingInterval)
                Ssf_setReadingClock(configSettings.reportingInterval);
        }
    }

    Best regards.

  • The sensor is not sending the data. Looks like is busy doing something else.

    The more time passes the less data it sends.

    Before reset:

    After:

    Best regards.

  • can you attach a debugger to the sensor and check if the timer is actually getting triggered and if the send message API is actually returning success