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.

BMA250 is drawing lot of current for CC2541 peripheral

Other Parts Discussed in Thread: CC2541

We have a CC2541 based peripheral (taken from KeyFob reference design) and are facing an issue with BMA250 Accelerometer.

1. VDDIO of BMA250 is connected to coin cell battery (3v)

2. VDD of BMA250 is connected to P2_0 of CC2541

When the P2_0 is set to 0, the current draw of the board is measured as 1.6uA (CC2541 is in sleep mode) but the problem is when P2_0 is set to 1.

- when the BMA250 is set to Low Power Mode or Suspend mode the current draw of the board is recorded as 140uA (Ideally it should be 1.6+2uA)

- when the BMA250 is set to Normal Mode the current draw is recorded as 280uA (Ideally it should be 1.6+140uA)

Can anyone help me here... I need this to be solved asap as the coin cell battery would die in a month with this current draw.

Thanks, Arjun

  • Can you try to power the BMA250 externally and see if you are still seeing 280uA during normal mode?
  • Yes Christin,

    We tried powering BMA250 externally (connected VDD and VDDIO to Coin Cell Battery - 3v) and observed that the current draw is 180uA.

    And also found that the current draw did not change irrespective of the Mode we set - Normal mode or Low Power mode or Suspend mode.
  • Hi Arjun,

    Based on what you write above, it seems like the accelerometer does not enter the correct power mode. Have you looked at the I2C lines to verify that the correct commands are sent?

    Cheers,
    Fredrik
  • Thanks Fredrik,

    I checked the commands and I also read back the the ACC_PM (Accelerometer power mode register) to verify if the command is written correctly or not.

    Here is the command that I used to set the power mode to Low Power
    /////
    CS = CS_ENABLED;
    SPI_WRITE_BYTE(ACC_PM); Register address
    SPI_WRITE_BYTE(0x5E); Value => ACC_PM_LP | ACC_PM_SLEEP_1000MS => 0x40 | 0x1E
    CS = CS_DISABLED;
    ////

    And I do the see the difference in current draw if VDD of BMA250 is connected to P2_0 (reduces from 280uA to 140uA) but that current is still high. It should be close 2-4uA.

    Thanks,
    Arjun

  • Fredrik,

    I've to point out one more thing here,

    In my code I've enabled Interrupt for Single Tap (STAP). I would like to know if I can receive interrupts if BMA250 is set to Low Power mode. Currently I'm not getting interrupts if BMA is set to Low Power Mode.

    Thanks,
    Arjun
  • Fredrik,

    I think I found the root cause of the current draw issue -

    Since I configured the Interrupt on BMA250, the Interrupt (INT1) line connected to CC2541 (Pin P1_7) is configured as INPUT and is causing for the current draw even if BMA250 is set to LOW POWER or SUSPEND mode.

    I changed the P1_7 as OUTPUT and set the BMA250 mode to LOW POWER. Observed the current draw to be around 2.6uA and if mode is set to SUSPEND then the current draw fell to 1.6uA even though the P2_0 (VDD of BMA250) is set to HIGH.

    So, now the question is - how do I get interrupts while keeping the current draw close to 2-4uA. Please help me.

    Thanks,
    Arjun
  • Ok, here is the solution -

    1. Keep P2_0 (VDD) high
    2. Set Interrupt pin P1_7 (in my project) of CC2541 as Input
    3. Set the P1_7 as "Pull down" (Thanks Lenio Cacula)
    4. Set Power Mode register to LOW POWER + HIGH SLEEP (0x40 | 0x1A)
    5. Total board current draw is around 4-5uA

    Thanks,
    Arjun

  • Arjun,

    I am working a similar issue.  I have the similar BMC150 accelerometer configured in Low Power Mode 1 with sleep duration = 10msec.  Datasheet calculations estimate 14.5uAmp current draw, but I'm seeing 38 uAmp draw differential between the BMC150 configured as mentioned and being unpowered (VDD and VDDIO=0V).  Since my interrupt input port P1_6 is high impedance I do not understand how adding a pull down on the port can do anything but increase power draw. Can you explain?

    Thanks,GiGi