Hi, my two nRF52840 devices are set as peripheral and central respectively. Both devices use nRF52 SDK.
I try to update the PHY in the two devices, after they are connected, by giving the central a serial USB command like in the following code part
and I would expect that a BLE_GAP_EVT_PHY_UPDATE_REQUEST event to trigger in the peripheral device. Is this correct?
case 10:
NRF_LOG_INFO("Request PHY update for conn_handle: %d.", connHandle);
ble_gap_phys_t const phys =
{
.rx_phys = BLE_GAP_PHY_CODED,
.tx_phys = BLE_GAP_PHY_CODED,
};
err_code = sd_ble_gap_phy_update(connHandle, &phys);
APP_ERROR_CHECK(err_code);
break;
The problem is that the BLE_GAP_EVT_PHY_UPDATE_REQUEST is not triggered in the peripheral device after I have executed the phy update function in the central. The strange thing is that it occurs only when I want to change the PHY to BLE_GAP_PHY_CODED (as in the code before)
When I try to set the PHY to 1MBPS (in the previous code) the BLE_GAP_EVT_PHY_UPDATE_REQUEST in the peripheral is triggered correctly (i check it in the debugger) once I execute the serial command in the central.
So, my question is why BLE_GAP_EVT_PHY_UPDATE_REQUEST doesn't trigger in the first case ( BLE_GAP_PHY_CODED ) in the peripheral?
What am I doing wrong?