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.

CC2640R2F: Tx power consumption too high with RCOSC setting

Part Number: CC2640R2F

Hi,

The use case is just advertising with 1 second interval, 31 bytes adv data, 31 bytes scan response and need to enable USE_RCOSC.

We also remove calibration for power consumption reason.

Without RCOSC with 0db tx power, the peak is around 7mA.

But with RCOSE with 0 db, the peak is around 10~11 mA

The average current with RCOSC is really jumping around 21~25 uA (mostly in 24uA), we target to around 20 uA.

So is there any possible to fix the peak power when USE_RCOSC ?

  • Hi,

    The second image shows a scan response being received - hence the longer Rx window.

    In addition to that, RCOSC calibration consumes power. If the device is not expected to join any connection, I guess you could disable RCOSC calibration.

    To save power, make sure of the following:

    • Make sure to disable all the code related to display – make sure to not enable UART to make sure no energy is used for this.
    • Make sure code optimization for speed is enabled.
    • If possible use non-connectable, non-scannable advertisements
    • Consider advertising on only one channel
    • Consider slightly increasing the advertisement interval
    • Make sure no application code is run at each advertisement – it should not be the case if you are using the oob example.

    Best regards,

  • Thanks a lot for your quick reply. but I am talking about tx peak current instead of rx window...and the first image also have rx ... both image are same condition except RCOSC.

    Regard to your suggestions,

    1. I have done disable calibration by remove this line: "// RCOSC_enableCalibration();"

    2. I have done disable all log output by "Display_DISABLE_ALL" and "BOARD_DISPLAY_USE_UART=0" and disable debug symbol  in advance debug menu.

    3. I have done code speed optimization included stack and use simple broadcast example.

    4. We cant change to non-scannable and single channel as customer request.... Disappointed

    But is that possible to add while list for scan response?? like only response to specific scan request??

  •  Hi,

    I have done some testing and I think if we are using internal RC, no matter enable/disable calibration it will have spike current. Please see my testing result:

    All the setting are the same and use suggestions mentioned.

    Use internal clock:

     uint8_t advType = GAP_ADTYPE_ADV_NONCONN_IND; // use non-connectable adv

    Without scan response and Tx 0 db:

    Without scan response and Tx 4 db:

    With scan response 0 db:

    With scan response and tx power 4 db:

     

    Use external 32k (brand new evm to test)

    Without scan response and Tx 0 db:

    Use internal RC (brand new evm to test)

    Without scan response and Tx 0 db with internal RC:

     

  • Hi Aichi,

    It seems to me that there's a lot of variation from event-to-event on all these screenshots. For example, your final screenshot 

    Use internal RC (brand new evm to test)

    Without scan response and Tx 0 db with internal RC:

    Seems to have a "spike current" of 6 mA even though it's using the internal RC oscillator.

    However, your second to last screenshot...

    Use external 32k (brand new evm to test)

    Without scan response and Tx 0 db:

    ... seems to show 9-10 mA of "spike current" even though it's using the crystal oscillator.

    There may be a difference in the pre-processing current draw between the RC Oscillator and the crystal, and I have asked the hardware team to comment too, but I don't see a consistent difference in the measurements you've shown. You can always decrease current consumption through the steps Clement highlighted above too.

  • Hi Aichi,

    I believe you may find the Measuring CC13xx and CC26xx current consumption application report helpful. It contains the procedure for how to measure current consumption on your device in a way that maximizes accuracy. Do you have access to a power analyzer? If so, then can you take a measurement with it and provided us with a screenshot? Looking through your attached screenshots, they seem mostly in-line with the expected current draw of a beacon, as shown in Figure 29 in the attached application report.

    Best Regards,

    Jan

  • Hi,

    please focus on the spikes current on TX RX event, not the pre-processing event!

  • As Gary said, I really just wanna focus on spike current on Tx/Rx events...all the optima are done.

  • Hi Aichi,

    Got it. I have reached out to some subject-matter experts to see if they have any insight to share. Once I have heard back from them I will provide an update.

    Best Regards,

    Jan

  • Hi Aichi,

    After discussing this with an expert on this topic, it is possible that those spikes you are seeing may be due to the RCOSC_LF calibration. For more information on RCOSC_LF and the calibration that it undergoes, I believe you may find the following app note useful: Running Bluetooth® Low Energy on CC13x2/CC26xx Without a 32 kHz Crystal

    Can you tell us what the maximum slave latency is in the firmware currently? What is the advertising interval? 

    Best Regards,

    Jan

  • Hi Jan,

    Thanks for your reply.

    The calibration is remove by sw, so just use RCOSC_LF without calibration. The maximum slave latency is default value. The advertising interval is 1 second.

    I do also read it. Helpful and follow the guide to setup everything.

    You maybe able to reproduce my issue easily just use simple broadcaster and change setting to RCOSC and latest SDK.

    Or, download my image for cc2640r2f launchpad if you need to test it.

    https://www.dropbox.com/s/mfbo23c5uj5o56d/useRCOSC.7z?dl=0

    Thanks again.

  • Hi Aichi,

    Got it! Thanks for the information. I will run this example and try to reproduce in the next few days. In the meantime, can you attach the zip file as a response to this message? 

    Best Regards,

    Jan

  • Here you are.

    useRCOSC.zip

  • Hi Aichi,

    I was able to reproduce the behavior you observed on my end using the provided hex file. I was able to measure the following advertisement event:

    Which matches closely with the current usage you observed. I will look further into this and get back to you. In the meantime, you are observing this on the CC2640R2 5.10 SDK, correct?

    Best Regards,

    Jan

  • Hi Aichi,

    Upon doing some further testing and code modification, I believe I was able to eliminate the current spike. After making the needed modifications, I have observed the following power measurement:

    I made the modifications detailed in the Using 32-kHz Crystal-Less Mode section of the User's Guide. I made an additional modification in the board file. Specifically, the CC2640R2_LAUNCHXL.c file (board file for the LaunchPad). I changed calibrateRCOSC_LF to false as shown below:

    I have the project to this post. Can you verify if this code modification is able to eliminate the current spikes on your end?

    Modified_SimpleBroadcaster.zip

    Best Regards,

    Jan

  • Hi Jan,

    I did the change on my side and got same result like yours.

    So is this a fix? or just a testing??If yes, any impact if I am just using advertising mode? If its a fix i would like to resolve this ticket.

    BTW, Can we also turn false for "calibrateRCOSC_HF"?

    I did a testing to turn "calibrateRCOSC_HF = false" seems power consumption has slightly improvement and still advertising over 30 mins. But I worry any side effect..

  • Hi Aichi,

    I am glad to see you were able to see the same result. Upon doing some research, it seems that it is viable to disable the calibration of the RCOSC_LF when using applications that do not require sleep clock accuracy. An example of these applications would be non-connectable advertisement used by beacon applications. This is detailed in section 2.2 Constraints of the Running Bluetooth® Low Energy on CC2640 Without 32 kHz Crystal. The relevant section is shown below:

    If your application fits into this use-case, then I believe it should be okay to disable the calibration.

    Best Regards,

    Jan