在泰凌Wiki網站上提供了多種應用場景的軟件SDK,供客戶選擇使用。本系列的幾篇文章主要講述"Bluetooth LE Single Connection",此SDK是單連接應用的SDK,所謂的單連接就是藍牙芯片做從機跟主機(一般是手機)建立點對點連接,或者藍牙芯片做主機跟其他的從機建立點對點連接的應用場景。
本篇文章詳細講述此SDK中的B85m_ble_sample例程的使用及注意事項,以便客戶盡快熟悉起來,加快項目開發進度。
1
ble_sample例程說明
單連接SDK中B85m_ble_sample適用825x芯片和827x芯片,所以編譯選項中又分為了825x_ble_sample和827x_ble_sample(下文統稱ble_sample)。
ble_sample例程是簡單的slave demo,具有廣播和連接功能。在BLE服務有HID服務,連接后可以枚舉為HID設備,可以控制音量和輸入數字等功能。
2
開發板選擇
以TLSR8258芯片為例子,常用的有兩種開發板,一種是TLSR8258 Development Board(型號C1T139A30_V1.2),如下圖所示:
另一種是TLSR8258 Dongle板(型號C1T139A3_V2.0A),如下圖所示:
同樣,TLSR8278芯片也有上述兩種類型的開發板,此處不再贅述。
3
使用演示
1、代碼中默認使能了電流測試(禁止了按鍵等操作),先禁止電流測試。在ble_sample/app_config.h文件中,修改后如下:
#define TEST_CONN_CURRENT_ENABLE 0
2、根據使用的開發板類型,代碼中使能的宏定義不同,在ble_sample/app_config.h文件中,修改的宏定義如下:
使用TLSR8258 Development Board
#define BOARD_SELECT BOARD_825X_EVK_C1T139A30
此時默認使能了UI_KEYBOARD_ENABLE宏,即使用2行2列的按鍵矩陣,對應開發板的SW2 ~ SW5這4個按鍵。
使用TLSR8258 Dongle
#define BOARD_SELECT BOARD_825X_DONGLE_C1T139A3
此時默認使能了UI_BUTTON_ENABLE宏,即使用2個按鍵,對應TLSR8258 Dongle的SW1和SW2按鍵。
3、clean工程,然后rebuild編譯,并把生成的固件download到開發板中,重新上電或者reset一次。
4、在手機-->設置-->藍牙 頁面,掃描到“VHID”,點擊建立連接并選擇配對。
5、點擊開發板上的按鍵,手機上會有對應的顯示。
在TLSR8258 Development Board上:
按SW2按鍵,手機的音量增加;
按SW4按鍵,手機的音量減小;
按SW3按鍵,在手機的文字輸入頁面,輸入文字“1”;
按SW5按鍵,在手機的文字輸入頁面,輸入文字“2”;
在TLSR8258 Dongle Board上:
按SW1按鍵,手機的音量增加;
按SW2按鍵,手機的音量減小;
*注意:ble_sample例程是HID設備,不需要在手機app中使用。如果使用手機app連接,是看不到上面的按鍵的效果。
4
電流測試
ble_sample例程默認是開啟了電流測試功能,禁止了按鍵和LED的顯示。
#define TEST_CONN_CURRENT_ENABLE 1
如果開發者需要測試各種廣播間隔或者連接間隔的低功耗的數據,主要修改的參數有如下幾個:
1、發射功率
發射功率越大,RF發射時的瞬時電流就越高。宏定義如下:
#define MY_RF_POWER_INDEX RF_POWER_P0dBm
2、廣播間隔
廣播間隔越小,RF發送數據就越頻繁,功耗就越高。宏定義如下:
#define MY_ADV_INTERVAL_MIN ADV_INTERVAL_1S
#define MY_ADV_INTERVAL_MAX ADV_INTERVAL_1S
最大值和最小值最好設置一樣,或者相差5ms。如果設置的最大值遠大于最小值,SDK中默認選擇使用最大值。
3、廣播channel
廣播channel總共有3個,當選擇3個channel時,每次廣播都會在3個channel各發送一次。宏定義如下:
#define MY_APP_ADV_CHANNEL BLT_ENABLE_ADV_ALL
4、廣播內容
廣播數據和掃描回復數據,設置的數據長度越大(最大31bytes),每次廣播發送的耗時就越久,功耗也就越高。tbl_advData[ ]數組是廣播內容數據;tbl_scanRsp[ ]數組是掃描回復數據。
5、連接間隔
建立連接后,從機可以主動更改連接參數,使用的API函數是:
bls_l2cap_requestConnParamUpdate();
具體的函數說明,請在handbook的文檔中搜索。
設置好上述幾點之后,就可以重新編譯ble_sample例程,下載到開發板中,使用電流分析儀等設備做功耗測試。
*注意:測試功耗時,TLSR8258 Development Board開發板上的J29和J35跳線帽需要拔掉。TLSR8258 Dongle Board開發板上的J8跳線帽需要拔掉。
5
低功耗注意點
1、ble_sample例程默認使能了低功耗功能,宏定義為:
#define BLE_APP_PM_ENABLE 1
#define PM_DEEPSLEEP_RETENTION_ENABLE 1
2、ble_sample例程,廣播超過60s會自動進入深睡眠(deepsleep模式)而停止廣播。建立連接,60s內無按鍵事件,會斷開連接并進入deepsleep模式。代碼如下圖所示,在blt_pm_proc()中,開發者可以根據需要做修改。
審核編輯 :李倩
-
HID
+關注
關注
2文章
125瀏覽量
46449 -
開發板
+關注
關注
25文章
4771瀏覽量
96199 -
SDK
+關注
關注
3文章
1007瀏覽量
45427
原文標題:【技術專欄】泰凌微電子BLE單連接SDK(二):B85m_sample例程使用演示
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論