ask about TX power in ANT application

HI Nordic support team.

I have a question relate to TX power in ANT application:

- ANT Tx application using: ant_broadcast ->Tx

ANT Rx application using:  ant_continuous_scanning_controller

- SDK 17.1, segger embedded studio

We using ANT application connect to sensor. Each 6s sensor wakeup Ant appliction by external interupt and transmit data by call ant_message_send();

It mean we can see Tx power each 6s.

When we using power consumtion monitor i see that it seem ANT appliction transmit power each 1s instead 6s as my target.

You can see in PIC bellow:

Here is som configure and function in my code:

// ANT sTx configuration 
static void application_initialize()
{
    uint32_t err_code;
    /* Set library config to report RSSI and Device ID */
    //err_code = sd_ant_lib_config_set(ANT_LIB_CONFIG_MESG_OUT_INC_RSSI | ANT_LIB_CONFIG_MESG_OUT_INC_DEVICE_ID);
    //APP_ERROR_CHECK(err_code);

    const uint16_t dev_num = (uint16_t)NRF_FICR->DEVICEID[0];

    const ant_channel_config_t ms_channel_config =
    {
        .channel_number    = ANT_MS_CHANNEL_NUMBER,
        .channel_type      = CHANNEL_TYPE_MASTER,
        .ext_assign        = 0x00,
        .rf_freq           = RF_FREQ,            // channel 25
        .transmission_type = CHAN_ID_TRANS_TYPE,
        .device_type       = CHAN_ID_DEV_TYPE,
        .device_number     = dev_num,
        .channel_period    = CHAN_PERIOD,       // PERIOD   32767
        .network_number    = ANT_NETWORK_NUM,
    };

    err_code = ant_channel_init(&ms_channel_config);
    APP_ERROR_CHECK(err_code);

    // Fill tx buffer for the first frame
    ant_message_send();

    err_code = sd_ant_channel_open(ANT_MS_CHANNEL_NUMBER);
    APP_ERROR_CHECK(err_code);
}


//Callback function for external interupt
//each time interupt happened will send Tx messa, period is 6s 
static void in_pin_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action)
{
    NRF_LOG_INFO("Int example0\n");
    Qflag = true;
    //nrf_drv_gpiote_out_toggle(PIN_OUT);
    ant_message_send();
    //NRF_LOG_INFO("Message sent %s", string);
    NRF_LOG_INFO("Index  %d", index);
    index++;
    
}

// <o> RF_FREQ - RF Frequency. 
#ifndef RF_FREQ
#define RF_FREQ 25
#endif

// <o> CHAN_PERIOD - Channel Period (in 32 kHz counts). 
#ifndef CHAN_PERIOD
#define CHAN_PERIOD   32767
#endif

Can you help me explain, why Tx power is transmited each 1s instead 6s.

I try to change period of sensor to 30s, i receive same result. Tx transmit power each 1s.

=> it take so much power, and our production cannot running in target time(2-3 year)

Parents
  • Hello,

    I can see you have #define CHAN_PERIOD   32767, this means that the ANT channel will communicate every 1second.

    I believe the slowest channel possible is 2seconds, so you can try to use #define CHAN_PERIOD 65536 (2seconds).

    Do you need bidirectional data? If you don't need bidirectional data you can use CHANNEL_TYPE_MASTER_TX_ONLY instead of CHANNEL_TYPE_MASTER.

    Edit: You can find the following useful for estimation of current consumption:
    https://www.thisisant.com/developer/components/developer 

    The nRF52833 is similar to the nRF52832 in terms of current consumption, example:

    Kenneth

  • hi my friend,

    we are making TPMS(tire pressure monitor system) for our customer, 

    So power consumtion is very important for running application in 3-5 years.

    You said that:"I believe the slowest channel possible is 2seconds, so you can try to use #define CHAN_PERIOD 65536 (2seconds)."

    It is so close time to transmit data, we need at least 30s Tx one time.

    Why Ant need keep transmit each 2s(or smaller time 2s), i think it is not BLE so dont need keep alive connection.

    I mean: RF application only need transmits data base on time we define for it. Why Ant need transmit 2s and how to control the time transmit data by our define time?

    Our customer request qty 500k/year.

    Can you help me connect to get more support from ANT organization? It is so urgent with us.

Reply
  • hi my friend,

    we are making TPMS(tire pressure monitor system) for our customer, 

    So power consumtion is very important for running application in 3-5 years.

    You said that:"I believe the slowest channel possible is 2seconds, so you can try to use #define CHAN_PERIOD 65536 (2seconds)."

    It is so close time to transmit data, we need at least 30s Tx one time.

    Why Ant need keep transmit each 2s(or smaller time 2s), i think it is not BLE so dont need keep alive connection.

    I mean: RF application only need transmits data base on time we define for it. Why Ant need transmit 2s and how to control the time transmit data by our define time?

    Our customer request qty 500k/year.

    Can you help me connect to get more support from ANT organization? It is so urgent with us.

Children
Related