espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.75k stars 7.3k forks source link

esp_ble_gap_ext_adv_params_t参数中type影响蓝牙带宽的问题 (IDFGH-14057) #14876

Open beautifulpeer opened 1 day ago

beautifulpeer commented 1 day ago

Answers checklist.

General issue report

  1. ESP-IDF版本 5.3.1
  2. 芯片ESP32-S3 PICO
  3. BLE5.0

esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { .type = ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,
.interval_min = 0x20, // 32 0.625 = 20ms .interval_max = 0x20, // 32 0.625 = 20ms .channel_map = ADV_CHNL_ALL, .filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, .primary_phy = ESP_BLE_GAP_PHY_1M, .max_skip = 0, .secondary_phy = ESP_BLE_GAP_PHY_2M, .sid = 0, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_PUBLIC, .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, };

  1. 您好,esp_ble_gap_ext_adv_params_t 中type使用的ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE,带宽可以达到1.3Mbit/s;
  2. 但是若将type修改成ESP_BLE_GAP_SET_EXT_ADV_PROP_LEGACY_IND这个类型,其它地方都不改,带宽只可以达到0.7Mbit/s;
  3. 由于需要适配之前的设备,只有使用ESP_BLE_GAP_SET_EXT_ADV_PROP_LEGACY_IND类型,之前的设备才会扫描到ESP32-S3的设备,但使用此类型会影响蓝牙带宽,这是为什么?
beautifulpeer commented 1 day ago

@esp-zhp

esp-zhp commented 1 day ago

ESP_BLE_GAP_SET_EXT_ADV_PROP_LEGACY_IND 不支持 2M phy,ESP_BLE_GAP_PHY_2M 是 BLE50 引入的 feature。

esp-zhp commented 1 day ago

BLE4.2 只能使用 1M phy,所以最大的带宽也不可能超过 1M ,不然就是不遵循 BLE 协议。

beautifulpeer commented 1 day ago

哦哦,这样,我之前旧的设备是nordic的,用的也是BLE5.0,但是使用ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE就扫描不到,不知道是为什么

beautifulpeer commented 1 day ago

哦哦,这样,我之前旧的设备是nordic的,用的也是BLE5.0,但是使用ESP_BLE_GAP_SET_EXT_ADV_PROP_CONNECTABLE就扫描不到,不知道是为什么

esp-zhp commented 1 day ago

广播的 primary phy 要和 scan 的 phy 对应上,要不然没有办法扫到。