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.

CC2541 time reduction for initialization

Other Parts Discussed in Thread: CC2541, CC2540

Dear TI,

Is there any way to reduce the intialization time of CC2541.

I'm using  the CC2541 with the sample project "SimpleBLEPeripheral" in BLE-CC254x-1.4.0 (IAR EW).

I noticed that the intialization time is about 500ms, and during the 500ms a steady current of about 8mA is flowing when a 3V voltage is supplied.So the power consumption is really large.

(The intialization time refers to the time it takes to start advertising for the first time, in other words, the time it takes to wake up.)

In order to reduce the power consumption for intialization, I want to reduce the initialization time.

Is there anyway to reduce this initialization time?

 

  • Hi,

    I think it would be difficult to reduce initialization time for CC2541. You should focus on reducing power. I see that during initialization in project, peripherals are not in power down mode that's why it may be taking this much power. 

    If you check initialization routine (SimpleBLEPeripheral_Init) there is  code to put CC2540 in powerdown mode and you can use same for CC2541 during main function. Try to put the following code to main function in SimpleBLEPeripheral_main.c. Put code at starting of function. 

      // makes sure LEDs are off
      HalLedSet( (HAL_LED_1 | HAL_LED_2), HAL_LED_MODE_OFF );
    
      // For keyfob board set GPIO pins into a power-optimized state
      // Note that there is still some leakage current from the buzzer,
      // accelerometer, LEDs, and buttons on the PCB.
    
      P0SEL = 0; // Configure Port 0 as GPIO
      P1SEL = 0; // Configure Port 1 as GPIO
      P2SEL = 0; // Configure Port 2 as GPIO
    
      P0DIR = 0xFC; // Port 0 pins P0.0 and P0.1 as input (buttons),
                    // all others (P0.2-P0.7) as output
      P1DIR = 0xFF; // All port 1 pins (P1.0-P1.7) as output
      P2DIR = 0x1F; // All port 1 pins (P2.0-P2.4) as output
    
      P0 = 0x03; // All pins on port 0 to low except for P0.0 and P0.1 (buttons)
      P1 = 0;   // All pins on port 1 to low
      P2 = 0;   // All pins on port 2 to low

    Hope this code would work directly otherwise you may need to do some modification to port settings. Basically they are putting every unused port (except where push button is connected) to output mode and put pin low to reduce current consumption. 

    I think this should reduce current consumption. Please try this and let us know. :)

    Maulik.

  • Hi Maulik,

    Thank you very much.

    I have tried to add the LED-off and Port-setting codes into the main function in SimpleBLEPeripheral_main.c.

    But it doesn`t work. The current is still about 8mA and lasts for 500ms for waking up.

    I also tried to make the LCD False. But the results didn`t change.

    Are there any other methods to reduce the power consumption for intialization?