Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

PHY update request not triggered in peripheral in case of PHY_CODED

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?

 

Parents Reply Children
No Data
Related