在泰凌Wiki網(wǎng)站上提供了多種應(yīng)用場景的軟件sdk,供客戶選擇使用。本系列的幾篇文章主要講述"Bluetooth LE Single Connection",此SDK是單連接應(yīng)用的SDK,所謂的單連接就是藍牙芯片做從機跟主機(一般是手機)建立點對點連接,或者藍牙芯片做主機跟其他的從機建立點對點連接的應(yīng)用場景。
本篇文章詳細講述此SDK中的B85m_module例程的使用及注意事項,以便客戶盡快的熟悉起來,加快項目開發(fā)進度。
1module例程說明
單連接sdk中B85m_module是使用825x芯片和827x芯片,所以編譯選項中又分為了825x_module和827x_module。module例程提供了基于BLE的數(shù)據(jù)透傳功能,使得用戶不必關(guān)心BLE復(fù)雜的實現(xiàn)細節(jié),只需要處理傳輸業(yè)務(wù)數(shù)據(jù)即可。數(shù)據(jù)透傳的指令是泰凌自己實現(xiàn)的一套指令集,如果用戶更習(xí)慣使用AT指令,可以將例程中的指令做替換即可。
2module例程編譯問題及解決方法
如果開發(fā)者直接編譯825x_module或者827x_module(下文統(tǒng)稱B85m_module),會出現(xiàn)下文的編譯錯誤。
原因是B85m_module例程實現(xiàn)較復(fù)雜,需要使用32K retention的配置來編譯,而sdk默認是選擇的16K retention的配置。
解決方法:修改retention的配置可以參考Handbook的1.3章節(jié)的Software bootloader介紹,使用32K的boot.link文件和cstartup_*_32K.S啟動文件。
3硬件連接圖
說明:下文以8258芯片為例,來描述B85m_module例程的使用。
在8258開發(fā)板上燒錄編譯成功的825x_module.bin固件,代碼中默認的UART tx是PB1, uart rx是PB0。然后根據(jù)硬件連接圖搭建好環(huán)境。
*注意:芯片的uart tx接串口工具的uart rx,芯片的uart rx接串口的工具uart tx,不要接錯了。
PC端打開串口工具軟件,波特率設(shè)置為115200,data bit為8,無校驗,stop位為1。
手機端的app使用LightBlue軟件,然后掃描到"kModule"的藍牙設(shè)備,然后建立連接。
如果連接時,彈出配對請求,則選擇配對。是因為默認使能了smp配對功能。如果不需要這個功能,則把app_config.h文件的 BLE_SECURITY_ENABLE宏定義設(shè)置為0,再clean后重新編譯生成固件。
4數(shù)據(jù)透傳
當(dāng)手機app和B85m_module建立藍牙連接之后,可以看到module例程的Telink SPP透傳服務(wù),根據(jù)描述符的提示,分成數(shù)據(jù)接收和數(shù)據(jù)發(fā)送兩個方向:
4.1數(shù)據(jù)接收
數(shù)據(jù)接收(Phone->Module)即手機app發(fā)送數(shù)據(jù)給藍牙芯片,然后藍牙芯片通過uart打印出來,最后在PC端的串口工具軟件上顯示。
1、藍牙event事件輸出
當(dāng)在nrf connect軟件上點擊連接或者斷開時,串口工具上會顯示出藍牙連接事件(hex數(shù)據(jù) FF 02 83 07)和藍牙斷開事件(hex數(shù)據(jù) FF 02 84 07),如下圖所示。
*備注:FF 02 8D 07是map channel更換的event事件。
2、手機發(fā)送hex數(shù)據(jù) 00 11 22 33 44 55 66
在LightBlue軟件上,數(shù)據(jù)透傳使用的服務(wù),UUID是0x000102030405060708090a0b0c0d2b11(注意跟代碼中的UUID是反序的),點擊紅色方框處輸入發(fā)送的數(shù)據(jù)。
如下圖所示,PC端的串口工具軟件已經(jīng)顯示了接收到的數(shù)據(jù)。注意接收到的數(shù)據(jù)有格式,前7bytes是數(shù)據(jù)的header。
4.2數(shù)據(jù)發(fā)送
數(shù)據(jù)發(fā)送(Module -> Phone)即PC端串口工具軟件發(fā)送數(shù)據(jù)給藍牙芯片,然后藍牙芯片通過BLE發(fā)送給手機,最后在LightBlue軟件上顯示。
(1)手機app端使能notify權(quán)限
藍牙芯片上報數(shù)據(jù)給手機app,是使用notify方式,手機端必須先使能notify權(quán)限,手機端才會監(jiān)聽到藍牙芯片上報的數(shù)據(jù),否則手機app不會接收的。
在LightBlue軟件上點擊Listen,當(dāng)軟件界面顯示Stop Listening時,表示正在listening,已經(jīng)使能了notify權(quán)限。
(2)藍牙芯片端使能喚醒腳
在B85m_module程序中,默認使能了低功耗,也就是藍牙芯片會自動進入低功耗模式,并定時喚醒保持藍牙連接的心跳,因此大部分時間是處于低功耗模式。在低功耗模式下,芯片的UART是無法接收數(shù)據(jù)的,必須先使用GPIO喚醒芯片,讓芯片處于active模式,uart才能接收數(shù)據(jù)。
代碼中默認設(shè)置為PA2為高電平喚醒腳。手動把芯片的PA2 pin拉高,接到3.3V上。就可以把藍牙芯片喚醒并禁止進入低功耗。在app_config.h文件中對應(yīng)的宏定義:
#define GPIO_WAKEUP_MODULE GPIO_PA2
(3)數(shù)據(jù)發(fā)送
在串口工具中,輸入hex數(shù)據(jù):1c ff 16 00 11 00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09 00,然后點擊send發(fā)送。
數(shù)據(jù)輸入的格式說明,都是hex格式的數(shù)據(jù):
1C FF:表示data send命令
16 00:表示數(shù)據(jù)長度,handle值(2bytes)+ data Length(20bytes)
11 00:數(shù)據(jù)發(fā)送使用的handle值為0x0011,小端字節(jié)序原因。
01 02 …00:實際需要發(fā)送的數(shù)據(jù)。
注意數(shù)據(jù)發(fā)送的長度在20字節(jié)以內(nèi),如果要發(fā)送更長的數(shù)據(jù),可以查看Handbook中的MTU和DLE功能,使能長包后再發(fā)送長包數(shù)據(jù)。
在手機LightBlue軟件上,可以看到收到的數(shù)據(jù),如下圖所示。
關(guān) 于 泰 凌
泰凌微電子致力于為客戶提供一站式的低功耗高性能無線連接SoC芯片解決方案,包括經(jīng)典藍牙,藍牙低功耗,藍牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有協(xié)議等低功耗2.4GHz多協(xié)議無線連接系統(tǒng)級芯片和豐富的固件協(xié)議棧。公司產(chǎn)品廣泛應(yīng)用于智能照明,智能家居/樓宇,智能遙控,無線外設(shè),智能零售,穿戴設(shè)備,無線音頻,智能玩具,物流追蹤,智慧城市等各類消費和商業(yè)應(yīng)用場景中。
審核編輯:湯梓紅
-
藍牙芯片
+關(guān)注
關(guān)注
17文章
399瀏覽量
46598 -
Module
+關(guān)注
關(guān)注
0文章
72瀏覽量
13116 -
SDK
+關(guān)注
關(guān)注
3文章
1057瀏覽量
47281 -
泰凌
+關(guān)注
關(guān)注
1文章
7瀏覽量
4302
原文標(biāo)題:【技術(shù)專欄】泰凌微電子BLE單連接SDK B85m_module例程使用演示
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Cortex-M內(nèi)核使用FreeRTOS特別注意事項

HDMI在TV應(yīng)用中的注意事項

AN-528:設(shè)計5B系列系統(tǒng)的設(shè)計注意事項

SDK中的B85m_ble_sample例程的使用及注意事項
SDK中的B85m_ble_remote例程的使用及注意事項
E8a仿真器用戶手冊附加文檔連接M32C/84、M32C/85、M32C/86、M32C/87和M32C/88時的注意事項

E8仿真器用戶手冊附加文檔(連接M32C/84 M32C/85 M32C/86 M32C/87和M32C/88注意事項)

TAS5825M的EMC設(shè)計注意事項

評論