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