Adding BT_LE_ADV_OPT_CODED causes periodic advertising to stop running.

HI

I am currently using nRF54L15 with NCS 3.0.0 SDK, running the periodic_adv_conn example. I made the following modifications to the extended advertising and periodic advertising:

------------------------------------------------------------------
struct
bt_le_adv_param param = { .id = BT_ID_DEFAULT, .sid = 0, .secondary_max_skip = 0, .peer = NULL, .interval_min = BT_GAP_ADV_SLOW_INT_MIN, .interval_max = BT_GAP_ADV_SLOW_INT_MAX, .options = BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | BT_LE_ADV_OPT_USE_IDENTITY }; err = bt_le_ext_adv_create(&param, &adv_cb, &pawr_adv); if (err) { printk("Failed to create advertising set (err %d)\n", err); return; }

---------------------------------------------------------------------
#define NUM_RSP_SLOTS      10
#define NUM_SUBEVENTS      5
#define PACKET_SIZE        5
#define SUBEVENT_INTERVAL  0xAC

static const struct bt_le_per_adv_param per_adv_params = {
    .interval_min = 0x5280,                 
    .interval_max = 0x5280,
    .options = 0,
    .num_subevents = NUM_SUBEVENTS,
    .subevent_interval = SUBEVENT_INTERVAL,  
    .response_slot_delay = 0x5,              
    .response_slot_spacing = 0xA0,          
    .num_response_slots = NUM_RSP_SLOTS,   
};

CONFIG_BT=y
CONFIG_BT_BROADCASTER=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV=y
CONFIG_BT_DEVICE_NAME="xxxx"
CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER=y
CONFIG_BT_PER_ADV_RSP=y

CONFIG_BT_MAX_CONN=1
CONFIG_BT_CENTRAL=y
CONFIG_BT_PRIVACY=y
CONFIG_BT_SMP=y

CONFIG_LOG=y


CONFIG_SERIAL=y
CONFIG_UART_ASYNC_API=y

CONFIG_FLASH=y
CONFIG_FLASH_JESD216_API=y

CONFIG_EVENTS=y

CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=255
CONFIG_BT_CTLR_SDC_PERIODIC_ADV_RSP_TX_MAX_DATA_SIZE=249


CONFIG_BT_CTLR_PHY_CODED=y
CONFIG_BT_CTLR_ADV_EXT=y
# CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_EXT_ADV_CODING_SELECTION=y
 

After making these changes, I found that when starting to run, the periodic advertising operates normally. However, once the extended advertising begins, the periodic advertising stops running, and only the extended advertising continues to operate normally. Why is this happening?

Thanks

Parents
  • I misunderstood the issue. The periodic synchronized advertising is actually running without problems, but the interval time is set relatively long.

    When using BT_LE_ADV_OPT_CODED, what is the maximum number of bytes supported for periodic synchronized advertising? After I set PACKET_SIZE to 140, bt_le_per_adv_set_subevent_data returned an error with status code 0x45 from bt_hci_core (opcode 0x2082), indicating the data bytes are too long.

Reply
  • I misunderstood the issue. The periodic synchronized advertising is actually running without problems, but the interval time is set relatively long.

    When using BT_LE_ADV_OPT_CODED, what is the maximum number of bytes supported for periodic synchronized advertising? After I set PACKET_SIZE to 140, bt_le_per_adv_set_subevent_data returned an error with status code 0x45 from bt_hci_core (opcode 0x2082), indicating the data bytes are too long.

Children
Related