Hi there, now I set up a BLE to connect peripheral to central via NUS service. The peripheral is a customize board with nRF52832 and the central is nRF52840 DK board. The BLE connection configuration of the peripheral is shown below.
#define APP_BLE_CONN_CFG_TAG 1 /**< A tag identifying the SoftDevice BLE configuration. */ #define DEVICE_NAME "Nordic_UART_SAADC_01" /**< Name of device. Will be included in the advertising data. */ #define NUS_SERVICE_UUID_TYPE BLE_UUID_TYPE_VENDOR_BEGIN /**< UUID type for the Nordic UART Service (vendor specific). */ #define APP_BLE_OBSERVER_PRIO 3 /**< Application's BLE observer priority. You shouldn't need to modify this value. */ #define APP_ADV_INTERVAL 64 /**< The advertising interval (in units of 0.625 ms. This value corresponds to 40 ms). */ #define APP_ADV_DURATION 18000 /**< The advertising duration (180 seconds) in units of 10 milliseconds. */ #define MIN_CONN_INTERVAL MSEC_TO_UNITS(10, UNIT_1_25_MS) // 20 /**< Minimum acceptable connection interval (20 ms), Connection interval uses 1.25 ms units. */ #define MAX_CONN_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS) // 75 /**< Maximum acceptable connection interval (75 ms), Connection interval uses 1.25 ms units. */ #define SLAVE_LATENCY 0 /**< Slave latency. */ #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */ #define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000) /**< Time from initiating event (connect or start of notification) to first time sd_ble_gap_conn_param_update is called (5 seconds). */ #define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(30000) /**< Time between each call to sd_ble_gap_conn_param_update after the first call (30 seconds). */ #define MAX_CONN_PARAMS_UPDATE_COUNT 3 /**< Number of attempts before giving up the connection parameter negotiation. */
The connection configuration of the central is shown below.
// <o> NRF_BLE_SCAN_SCAN_INTERVAL - Scanning interval. Determines the scan interval in units of 0.625 millisecond. #ifndef NRF_BLE_SCAN_SCAN_INTERVAL #define NRF_BLE_SCAN_SCAN_INTERVAL 80 // 160 #endif // <o> NRF_BLE_SCAN_SCAN_DURATION - Duration of a scanning session in units of 10 ms. Range: 0x0001 - 0xFFFF (10 ms to 10.9225 ms). If set to 0x0000, the scanning continues until it is explicitly disabled. #ifndef NRF_BLE_SCAN_SCAN_DURATION #define NRF_BLE_SCAN_SCAN_DURATION 0 #endif // <o> NRF_BLE_SCAN_SCAN_WINDOW - Scanning window. Determines the scanning window in units of 0.625 millisecond. #ifndef NRF_BLE_SCAN_SCAN_WINDOW #define NRF_BLE_SCAN_SCAN_WINDOW 40 // 80 #endif // <o> NRF_BLE_SCAN_MIN_CONNECTION_INTERVAL - Determines minimum connection interval in milliseconds. #ifndef NRF_BLE_SCAN_MIN_CONNECTION_INTERVAL #define NRF_BLE_SCAN_MIN_CONNECTION_INTERVAL 7.5 // 7.5 #endif // <o> NRF_BLE_SCAN_MAX_CONNECTION_INTERVAL - Determines maximum connection interval in milliseconds. #ifndef NRF_BLE_SCAN_MAX_CONNECTION_INTERVAL #define NRF_BLE_SCAN_MAX_CONNECTION_INTERVAL 30 #endif // <o> NRF_BLE_SCAN_SLAVE_LATENCY - Determines the slave latency in counts of connection events. #ifndef NRF_BLE_SCAN_SLAVE_LATENCY #define NRF_BLE_SCAN_SLAVE_LATENCY 0 #endif // <o> NRF_BLE_SCAN_SUPERVISION_TIMEOUT - Determines the supervision time-out in units of 10 millisecond. #ifndef NRF_BLE_SCAN_SUPERVISION_TIMEOUT #define NRF_BLE_SCAN_SUPERVISION_TIMEOUT 4000 #endif
But when I scan the BLE signal with nRF Sniffer, the connection interval is about 24ms as show below.
What else should I do to make the connection interval below 10ms? Thanks.