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.

CCS/CC2650: CC2650

Part Number: CC2650
Other Parts Discussed in Thread: TIDA-00690, , CC2560

Tool/software: Code Composer Studio

Hi,

I'm using the CC2650LounchPad development board. 

I've implemented a prototype application base on TIDA-00690 Energy Harvesting for Wireless Switch Power Reference Design.

Concerning Firmaware, I started from Simple_Broadcaster_cc2650lp_app/Simple_Broadcaster_cc2650lp_stack.

I've configured ADV TYPE as ADV NON CONN IND, so that it works as beacon, only TX is activated in Adverstasing mode, while the Receiver is not in order to minimize the power consumption.

I'm able to send one ONE packet data on the three channel [37-38-39] both when I press the energy harvserter switch [AFIG-0007] and when I release.

I' would like to send at least TWO packet data on the three channel, both pressing and releasing the switch.

To do that, first I guess I need to reduce the ADV INTERVAL from 100ms to 10ms or around. I know that this is not compliant with BLE protocol, but I do not care.

If I simply try to change value in #define DEFAULT_ADVERTISING_INTERVAL  160, I have no effect. So, my question is how I can do that in Simple_Broadcaster_cc2650lp_app?

Furthermore, I reduce power consumption of Simple_Broadcaster_cc2650lp_app, reducing external Flash Memory consumprion according code modification described in SWRA478C.

Is there any other suggestion to reduce power consumption in this application with CC2650 LounchPad?

Thank you.

Kind Regards.

Paolo Garavaglia

  • Hello. Using a faster advertising interval will increase, not decrease your power consumption since you are transmitting more frequently.

    In any case, the minimum advertising interval is 20 ms; note 100 ms. You can change the advertising interval by using GAP_SetParamValue() with the relevant parameter. In the simple_broadcaster example this can be accomplished with the DEFAULT_ADVERTISING_INTERVAL as you mentioned.
  • Hi Tim,

    thank you for your answer.

    Yes, I know shorter ADV interval,higher power consumption. But I don't care.  It is not a battery power supply application, but "one shot" energy harvester switch, so that I have to use all the energy generated to send as much as packet data I can.

    Anyway, 20ms could be good, but as I wrote before,  changing the value less than160 [100ms]  in DEFAULT_ADVERTISING_INTERVAL, it has no effect. While if I use an higher value I see the effect.

    So, when I set application in ADV NON CONN IND and try to set a value less than 160, I guess there is in somewhere in the APP / Stack code a condition that force the value to 160 again.

    I would like to "remove" this condition. I've check another product in the bluetooth market [Enocean PTM215B] which works in ADV NON CONN IND and send packet data with 20ms interval, optionally you can reduce to 10ms.

    It is also my target for the application we are developping.

    Kind regards

    Paolo G.

  • Hi. Which GAP parameter are you actually setting? Note that there are several advertising interval parameters: (from gap.h)
    - TGAP_LIM_DISC_ADV_INT_MIN
    - TGAP_LIM_DISC_ADV_INT_MAX
    - TGAP_GEN_DISC_ADV_INT_MIN
    - TGAP_GEN_DISC_ADV_INT_MAX
    - TGAP_CONN_ADV_INT_MIN
    - TGAP_CONN_ADV_INT_MAX
  • Hi Tim,

    Thank you for you answer.

    It is LIM DISC ADV INT.

    Thanks for your support.

    Paolo

  • Hi Tim,

    just to know if you had time to analized how to get shorter than 100ms ADV INT in broadcaster/beacon application.

    Thank you

    Paolo G.

  • Are you actually performing limited discovery? This would require setting a specific flag in the advertising data. I would try setting all of the advertising interval parameters I showed above to the same interval to be sure you are setting the correct one.
  • Hi Tim,

    Yes, all the ADV Interval are set with same value in reference design simple_broadcaster.c:

    // Set advertising interval TGAP_CONN_ADV_INT_MIN
    {
    uint16_t advInt = DEFAULT_ADVERTISING_INTERVAL;

    GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MIN, advInt);
    GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MAX, advInt);
    GAP_SetParamValue(TGAP_GEN_DISC_ADV_INT_MIN, advInt);
    GAP_SetParamValue(TGAP_GEN_DISC_ADV_INT_MAX, advInt);
    }

    But when I set a time less than 100ms, as for example

    #define DEFAULT_ADVERTISING_INTERVAL          80

    I have reasult as previously mentioned.

    I have tried with design reference where application is defind as Peripheral, I'm able to set ADV Time interval less than 100ms, but as you know in that application the Radio Reciver is activated to power consumption is higher than in Beacon application, so I can not get my target of two packet data to be sent.

    I'm quite sure it is possible, but too complex for me the refernce design code to understand where to modify.

    Paolo G.

  • Hi I just set this up and am seeing the same behavior as you. I searched this in the spec and found the following:

    "If the advertising event type is either a scannable undirected event
    type or a non-connectable undirected event type, the advInterval shall not be
    less than 100 ms."

    So you are correct. Sorry, I did not realize that there was a different interval for connectable vs non-connectable.
  • That's good Tim you have observe same behavior.

    As I wrote you, I knew that information, therefore that with setting I'm using for my kinetic switch application, the limit of ADV Interval time is 100ms.

    The question concern how to change the example code provided by TI in order to avoid this limit that is not good for my target application.

    Today I was able to do that with another module by Blugiga, so I'm quite sure I can do even with CC2560 for BLE application. I have to start a new project next January, I would like to use CC2560 as BLE Module, but I need to be sure I can send two packet data with kinetic energy harvester switch.

    So, please let me know if it is possible.

    Thank you so much for your support

    Paolo G.
  • There is no way to change this as it is set in the controller. This is because it is part of the spec so changing it would be violating the spec.
  • Note that the limit is only for non-connectable advertising. You can use shorter advertising intervals for connectable advertising.