This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

we can't change gap_conn_param in SDK_15.2

Hi,

Previously we used nrf53832+sdk11+s132_2.0.1, we could change the ble_conn_params through sd_ble_gap_ppcp_set(&gap_conn_params) or ble_conn_params_change_params (&new_params),It works well

Now that we are using nrf52840+sdk15.2+s140_6.1.0, we cannot change the connection parameters in either way!

The test steps are as follows:

We use the routine ble_app_uart or ble_app_blinky

Modify these

#define MIN_CONN_INTERVAL MSEC_TO_UNITS(10, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS) 
#define SLAVE_LATENCY 0
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(400, UNIT_10_MS) 

#define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000) 
#define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(30000)
#define MAX_CONN_PARAMS_UPDATE_COUNT 3

or

case BLE_GAP_EVT_CONNECTED:

...

new_params.min_conn_interval = MSEC_TO_UNITS(7.5, UNIT_1_25_MS);
new_params.max_conn_interval = MSEC_TO_UNITS(7.5, UNIT_1_25_MS);
new_params.conn_sup_timeout = 300;
new_params.slave_latency = 0;
sd_ble_gap_conn_param_update(m_conn_handle, &new_params);

...
break;

They don't work

We use

m_current_conn_params = p_ble_evt->evt.gap_evt.params.connected.conn_params;
NRF_LOG_INFO("min=%d,max=%d,timeout=%d,latency=%d\r\n", m_current_conn_params.min_conn_interval, m_current_conn_params.max_conn_interval, m_current_conn_params.conn_sup_timeout, m_current_conn_params.slave_latency);

to see the modified result at BLE_GAP_EVT_CONNECTED and BLE_GAP_EVT_CONN_PARAM_UPDATE

but it always"min=36,max=36,timeout=500,latency=0",No matter how we modify it,We need it to be smaller

Where was I wrong?Is there anything else that needs to be changed?Can you help me?

Thanks in advance.

Parents Reply Children
No Data
Related