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.

CC2540 Power Consumtion

Other Parts Discussed in Thread: CC2540

Hi,

I`m facing the problem that if I reset (HW Reset Pin) than my current consuption is around 1uA.

BUT after the first transmission I have a current consumtion of around 300 uA.

I also have 300uA after the power on reset.

All my peripherie(ACC) is turned off so it can't affect the measurements. 

Debbuging the sleep procedure, I discovered that the MCU always goes to PM3.

All Pins are configured as inputs.

Does anyone has a hint for this issue?

 

  • Hi Marco,

    Have you made sure that all the IO pins are at defined voltage levels. I.e. that they are not left floating.Floating pins can affect the current consumption measured.

    Most of the pins have pull up /pull down capabilities that can be used. But the high drive capability pins (20 mA pins) don't have pull up/down resistors, so they should be driven to either ground/supply externally to avoid floating pins.

    -M

  • Hi,

    I checked them again. I tried pullup, pulldown output, I have still the same behaviour.

    Marco

  • Try to set all of unused GPIO pins to tristate.

  • Hi Marco,

    How does the current consumption vary with supply voltage? Please measure at 2, 3 and 3.6 V. How are your GPIOs connected? Could you share your schematic?

    Cheers,
    Fredrik

  • Hi,

    If I set it up to tristate, the lowest power consumtion I can achieve is 22uA.

    M.

  • Hi Frederik,

    After HW reset :  2.1 V -> 1.0 uA, 3.6V -> 1.5uA (Constant behaviour)

    After the first BLE Communication: 2.1V -> 70uA,  3.2V -> 270uA (Values are varying alot)

     

    Greets,

    M.

     

  • Hi Marco,

    The User Guide recommendation is that no pins should be floating. By simply tristating all pins you are most likely violationg this (uless all your pins are externally connected to firm voltage levels). Your GPIOs must probably be configured individually based on what they are connected to.

    If you want me to help you further I really need to see your schematic.

    Cheers,

    Fredrik

    [EDIT]: I did not see the post above. I will have a look at the schematic.

  • Hi Marco,

    Since you are not using USB you can disable the USB_controller by setting USBCTRL.USB_EN to 0 (this is the reset value).

    All unconnected pins should be either configured with pull-ups or downs, this includes the debug pins. When you are doing the current measurements, what is the status of the ADXL? Do you know how much current it consumes?

    Why are you using two different set og SPI pins?

    Pins 2 and 4 on the 32 MHz crystal should be grounded. L1 is not required, however it will not harm either. R7 is not required, the reset pin has internal pull-up.

    Cheers,

    Fredrik

  • Hi Fredrik,

    I really appreciate your help.

    I included the USBCTRL. Removed R7 and removed L1. Quarz connected to GND.

    The ADXL consumes in worst case 30 uA. For the current measurement it is configured to 250nA. The ADXL wakes the CC2540 to send a BLE frame.

    ACCSPI is for the ADXL and the other one is only for the programming interface and during normal operation unconnected.

    I haven't configured the I/O so they should have the reset value so pullup.

    Things have changed now, if the voltage is down to 2.1V -> Power On -> HW Reset -> Then I have the right behaviour (Current before and after sending 1 uA)

    Power-on problem still remaining.

    If I turn the voltage up to 3.2V still the same behaviour.  -> Power On -> HW Reset -> First BLE Frame then high curren consumtion(270uA)

    M.

     

     

  • The SPI interface on the programming header is not required for programming and debugging. However it is needed if you plan to use your module as a packet sniffer. What is the states of INT1 and INT2 of the ADXL when it is in powerdown? Do they ahve some kind of internal pull? What is the configuration of P0_0 and P1_6?


    F

  • Hi,

    CC2540 INT1 -> Input/pullup; INT2 -> Input Interrupt on falling edge

    ADXL INT1 -> high ( held with buskeeper); INT2-> Configured to give a falling edge on motion

    Measured with Oszi, both high +2.1V

     

    M.

     

  • Hi,

    Found the issues:

    The startup problem was caused by the point of init of the ACC.

    The high current problem after first sent i solved by changing the SPI timing.

    M.

     

     

  • hi, Yikai

    If I want to set the GPIO as tristate, except PxSEL, PxDIR and PxINP, what else should I set?

  • For tristate, you only need to set PxINP.