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.

RTOS/LAUNCHXL-CC2640R2: Power consumption in CC2640R2 LP with Accelerometer board

Part Number: LAUNCHXL-CC2640R2
Other Parts Discussed in Thread: CC2640R2F

Tool/software: TI-RTOS

Hi,

I am using CC2640R2 launchpad and i added an accelerometer board to the lauchpad.
After adding accelerometer board, overall power consumption increased so much.

I made a few experiment to find problem;

When CC2640R2 launchpad works standalone, it draws nearly 48.83uA 
When CC2640R2 laucnhpad is connected to the accelerometer board, it draws nearly 104.20uA.

I am communicating with accelerometer board by using SPI interface.
After launchpad start, i configure the accelerometer as power down mode.
Accelerometer draws nearly 90nA during power down mode according to its datasheet.

I supplied accelerometer's 3.3V from 3.3V pin on the CC2640R2 Launchpad.

The list of connection between accelerometer board and CC2640R2 board

CC2640R2_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,
CC2640R2_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN, 
CC2640R2_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,
ACC_SPI_CS_PIN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH,
ACC_INT_PIN | PIN_INPUT_EN | PIN_PULLDOWN,

ACC_SPI_CS_PIN is a chip select pin for accelerometer board and uses active low. Also, when i do not communicate with accelerometer board, i drive cs pin output high.
ACC_INT_PIN  is an interrupt pin.

I measured that how much current flows through these Vcc and INT and CS pins after accelerometer configuration.
I measured as 0uA because of my measurement device sensitivity. This means that accelerometer board does not have any big contribution to increasing power consumption.

However, there is a difference between 55.37uA. between with accelerometer board and without accelerometer board.

Here is a brief information about accelerometer default pin status;
    SPI serial clock pin > open drain 
    SPI chip select  > input with internal pull-up
    SPI data output > input with internal pull-up
    SPI data input > input open drain
    INT pin > push-pull output forced to GND.

I think, internal pull-up resistor in accelerometer board should not be problem. 
I could not find, what causes this much current flow ?
Any help would appreciated.

Have a nice day.
Thank you .

  • Hello Erdem,

    Have you read the Measuring Bluetooth Low Energy Power Consumption?

    How do you measure the current?

    The flash on the launchpad draw current as well. It refer to the app note mentioned above for code example to shut it off.

  • Hi Eirik,

    I think, you mention pin_shutdown example.
    I tried both case which are closing the external flash and not closing it and result remains same.

    Also, i tried the same test case in our custom board that does not include external flash, nothing changes. Result is still same.

    For measuring power consumption,
    I used two different device and those are sensitive ampermeter and speciliazed current measurment device. I removed all jumpers on the launchpad and i supplied the voltage from batery and i put the ampermeter between battery and launchpad supply.

    Best regards
  • Hello Erdem,
    Have you run the pin shutdown example combined with turning off the external flash and powering down the Accelerometer (90nA)? Please verify that you can power down every peripheral individually and run the pin shutdown example to verify the full system before you try to measure further.

    Have you review the schematic of both boards thoroughly to verify that there is connections or other components that could cause the extra current?
  • Hi,

    I have interfaced Accelerometer to CC2640R2F Launchpad however the interface is I2C. What accelerometer sensor are you using that uses SPI port?

    To achieve low power mode first you need to shutdown the SPI External Flash at initialization using the code from Pin Shutdown Example Program. Then you need like a mosfet circuitry to completely turn off power to your SPI accelerometer. The mosfet circuitry will be switched by a GPIO pin at CC2640R2F.

    So after initialization you Shutdown the SPI External Flash using code. Then you send command to SPI accelerometer to go to low power mode if there is any. Then you switch the mosfet circuitry to cut off power to SPI accelerometer.

    -kel
  • Hi Eirik,

    I am calling these functions in simple_peripheral_init function
    ExtFlash_open();
    ExtFlash_close();

    I did everything that has been listed in Table 5 Measuring Bluetooth Low Energy Power Consumption document.
    I checked board schematics, it seems they are okay.

    When i removed the all jumpers between launchpad and acc board, power consumption returns to the normal level.
    However, i measured current flow in ACC Vcc, CS pins and the current flow is less than 1uA. Is there any possibility that SPI pins causes this much current consumption ?

    Best regards
  • Hi Markel,

    I am using LIS2DW12 accelerometer.
    As you mentioned, i close external flash how pin_shutdown example shows.

    Also, i have two types custom board(Custom boards do not have external flash). One of them includes accelerometer and the other board does not include accelerometer.
    However, there is current consumption gap between these two custom boards with the same firmware. The gap is nearly 70uA.

    Thanks
  • erdem simsek said:
    I am calling these functions in simple_peripheral_init function
    ExtFlash_open();
    ExtFlash_close();

    This code above does not help to achieve low power consumption. That is because the SPI External Flash is in standby mode. So, you need to shutdown the SPI External Flash using the code from Pin Shutdown Example Program. This code line below.

    Board_shutDownExtFlash();

    -kel

  • Hi Eirik,

    I solved my problem. The problem occurs because of SPI MISO line internal resistor settings

  • nicely done. It usually is some pin pull that is the culprit.
  • Hi Eirik,

    I configured spi miso pin with no pull in board gpio init table.
    When i initialize spi, spi driver automatically turns the pin configuration to pull down. This causes extra power consumption.
    I changed TI_BLE_SDK/source/ti/drivers/SPICC26XXDMA.c line 1093
    from piPinTable[i++] = hwAttrs->misoPin | PIN_INPUT_EN | PIN_PULLDOWN to spiPinTable[i++] = hwAttrs->misoPin | PIN_INPUT_EN | PIN_NOPULL. However, the changes did not work. It is still pull down

    How can i configure spi mosi pull resistor settings after spi init ?

    Best regards

  • Please read the Note in the Power Management section in the SPICC26XXDMA.h File Reference:
    dev.ti.com/.../_s_p_i_c_c26_x_x_d_m_a_8h.html

    "The external hardware connected to the SPI might have some pull configured on the SPI lines. When the SPI is inactive, this might cause leakage on the IO and the current consumption to increase. The application must configure a pull configuration that aligns with the external hardware. See Ensure low power during inactive periods for code example."

    dev.ti.com/.../_s_p_i_c_c26_x_x_d_m_a_8h.html