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.

CCS/CC1352R: Current consumption of cc1352 chip with modified version of sensor code.

Part Number: CC1352R


Tool/software: Code Composer Studio

SDK: Simplelink 3.30.xx

Hello, 

I imported the sensor example code and I'm trying to gradually remove things I don't need from the code, but measuring the current consumption of the code posted below I saw a current bias of approximately 4mA.

I'm measuring the current using a small resistor coming from the GND and going to the GND of my board (of course, I removed every other source of current and jumpers).

Below, is the function Sensor_init. and Sensor_process.

void Sensor_init(uint8_t macTaskId) {
    sem = ApiMac_init(macTaskId, CONFIG_FH_ENABLE);
    Jdllc_init(&Sensor_macCallbacks, &jdllcCallbacks);
    ApiMac_registerCallbacks(&Sensor_macCallbacks);
    Ssf_init(sem);

    ApiMac_mlmeSetReqUint8(ApiMac_attribute_phyCurrentDescriptorId, (uint8_t)CONFIG_PHY_ID);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_channelPage, (uint8_t)CONFIG_CHANNEL_PAGE);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_phyTransmitPowerSigned, (uint8_t)CONFIG_TRANSMIT_POWER);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_backoffExponent, (uint8_t)CONFIG_MIN_BE);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_maxBackoffExponent, (uint8_t)CONFIG_MAX_BE);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_maxCsmaBackoffs, (uint8_t)CONFIG_MAC_MAX_CSMA_BACKOFFS);
    ApiMac_mlmeSetReqUint8(ApiMac_attribute_maxFrameRetries, (uint8_t)CONFIG_MAX_RETRIES);

sendScanReq(ApiMac_scantype_active); // I'M SCANNING RIGHT HERE } void sensor_process(void) { Jdllc_process(); if(sensor_events == 0) { ApiMac_processIncoming(); }
}
// ......... //

// jdllc.c //
static void scanCnfCb(ApiMac_mlmeScanCnf_t *pData) {
     ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, CONFIG_RX_ON_IDLE);
}

I am using "TEST MODE" (so POWER_MEAS is defined) and my "CONFIG_RX_ON_IDLE == false" So I would expect a current < 1mA since the Sensor task will be Pending inside `ApiMac_processIncoming()` and the power policy is the standbyPolicy.

Why am I seeing a current of 4mA?

  • Just fyi I'm using Phy_id = 132 and non-beacon.

  • Hey Leoni,

    Please allow me some time to investigate this and reproduce on my end. Which SDK are you basing this off of?

    What is your measured power consumption using the unmodified examples?

    Although I don't suspect any issue with your measurement setup, take a look at the following document for further insight regarding your measurements: http://www.ti.com/lit/an/swra478d/swra478d.pdf

  • Hello Ammar.

    As I said in the description, I'm using the SDK Simplelink 3.30.

            - If before starting the network scan I enable the rxOnWhenIdle the current drops to uA after disabling the rxOnWhenIdle in the scanCnfCb

            - but, If before starting the network scan I disable the rxOnWhenIdle the current never drops to uA (stays at mA). Even if I disable the rxOnWhenIdle in the scanCnfCb.

     

  • Hey Leoni,

    After some investigation, I found a similar issue (see this e2e post) that may resolve this issue. It seemed to work on my end.

    Please let me know if you see the same. The workaround is in the e2e post, but a with a few more modifications, as shown below.

    Add the following in jdllc.c:

    case Jdllc_deviceStates_scanActive:
        /* Active scan */
        ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, true);   // ADD THIS LINE
        sendScanReq(ApiMac_scantype_active);
        break;

    The recommendation from our dev team is to follow the your first approach.