引言
BlueNRG-LP 是意法半導體第三代低功耗藍牙單芯片解決方案,兼容低功耗藍牙 5.2版本。相較于之前的 BlueNRG-1/2 版本,意法半導體對其低功耗藍牙協議棧進行了升級和優(yōu)化,引入了 Radio Task 的概念,客戶在研發(fā)過程中,應切實關注其應用中使用到的Radio Task 數量并在程序中做相應的配置,才能避免相關問題的發(fā)生。
問題描述
客戶使用兩塊 BlueNRG-LP 評估板,搭建一主一從測試平臺,從設備同時發(fā)送傳統(tǒng)廣播包和擴展廣播包,主設備能通過事件 “hci_le_meta_event ”下的子事件“hci_le_extended_advertising_report_event”獲取到傳統(tǒng)廣播數據包,但是始終無法同時掃描到擴展廣播包。
問題分析與定位
第一步測試:
使用相同的 BlueNRG-LP 評估板(STEVAL-IDB011V1)搭建一主一從測試平臺,單從驗證上述客戶問題的角度,本測試無需動用 IDE 工具,可直接燒錄 SDK 中預編譯好的可執(zhí)行示例文件。
問題解決
建議客戶將 BLE Serialport_Client 項目的配置頭文件 “Serialport_config.h ”中對宏NUM_LINKS 中做的更改,加大 NUM_LINKS 配置值,該宏配置的是BlueNRG LP 在該項目中能支持的最大 Radio Task 的數量。客戶需要同時掃描到擴展廣播和傳統(tǒng)廣播,還要求建立連接,所以至少需要支持 3 個 Radio Task。該配置值按要求更改后,重新編譯主設備端程序并下載測試,問題解決。
小結
從 BlueNRG-LP 開始,意法半導體 BlueNRG 系列芯片的協議棧升級到 v3.x 版本,在BLE 不同的應用場景中,如多鏈接,連接并掃描,連接并廣播,連接并掃描和廣播等,都需要考慮所在應用中需要支持的 Radio Task 的數量,即宏 NUM_LINKS 的配置值。該值的計算方法在 BlueNRG-LP/LPS 的編程手冊中有描述,遇到類似問題時,可建議客戶參考相關文檔的對應章節(jié)。