ch582 藍(lán)牙開發(fā)問(wèn)題

我目前在用ch582開發(fā)藍(lán)牙hid,我發(fā)現(xiàn)如果在低速?gòu)V播的情況下(廣播間隔為100ms),用windows電腦去連接藍(lán)牙設(shè)備,很容易出現(xiàn)連接失敗的問(wèn)題,當(dāng)我將廣播間隔調(diào)到20ms的時(shí)候,情況會(huì)好,但是我總不能一直20ms間隔廣播,有什么辦法能在低速?gòu)V播的情況下,當(dāng)主機(jī)發(fā)起連接的時(shí)候,設(shè)備端能切換到高速?gòu)V播嘛?

你好,可以查看一下是否直接系統(tǒng)藍(lán)牙連接的582hid從機(jī)官方例程,并提供一下對(duì)應(yīng)的電腦系統(tǒng)。我們這里實(shí)測(cè)win10\win11是可以連接無(wú)問(wèn)題的。

如果是使用切換廣播的間隔,是可以實(shí)現(xiàn)的,但是要注意有外部的觸發(fā)信號(hào),比如在按下某個(gè)按鍵進(jìn)行調(diào)整廣播間隔。

可以參考該博客的動(dòng)態(tài)廣播間隔:

藍(lán)牙BLE從機(jī)Peripheral講解六(動(dòng)態(tài)廣播與連接) - SweetTea_lllpc - 博客園 (cnblogs.com)


你好,謝謝你的回復(fù),就是沒(méi)法在連接回調(diào)(GAPROLE_CONNECTED)里面切換廣播間隔對(duì)嘛?還有一個(gè)問(wèn)題就是,如果我調(diào)用HidDev_Report函數(shù)有發(fā)送完成回調(diào)嗎?


需要處于在廣播的狀態(tài)下進(jìn)行調(diào)整廣播間隔,如果在連接的狀態(tài),此時(shí)的狀態(tài)機(jī)是連接態(tài)。

在廣播態(tài)下進(jìn)行廣播間隔調(diào)整,需要查看進(jìn)入waitingforadvertising狀態(tài)再進(jìn)行開啟廣播。

狀態(tài)查看是否發(fā)送成功:

image.png


這個(gè)GATT_Notification返回的狀態(tài)是成功的時(shí)候,是數(shù)據(jù)已經(jīng)被藍(lán)牙主機(jī)接收到了嗎?還是說(shuō)只是塞進(jìn)藍(lán)牙協(xié)議棧的fifo了?如果是塞進(jìn)藍(lán)牙協(xié)議棧的fifo,那如何知道什么時(shí)候數(shù)據(jù)被藍(lán)牙主機(jī)接收到了呢?


返回狀態(tài)成功代表已經(jīng)將數(shù)據(jù)存放到底層,接下來(lái)只要藍(lán)牙沒(méi)有斷開連接則一定會(huì)發(fā)送出去的。

如果需要確保主機(jī)已經(jīng)接收到數(shù)據(jù)并從應(yīng)用層面的角度來(lái)觀察,則可以做一個(gè)校驗(yàn),如主機(jī)收到數(shù)據(jù)再發(fā)送一個(gè)數(shù)據(jù)給從機(jī)用來(lái)通知從機(jī)。

或者可以使用indication:

藍(lán)牙BLE從機(jī)Peripheral講解二(句柄指示\確認(rèn)(Handle Value Indication\Confirmation)) - SweetTea_lllpc - 博客園 (cnblogs.com)


好的,謝謝你,還有一個(gè)問(wèn)題就是我自己的板子上面用的32Mhz晶振負(fù)載電容是8pf,但是我看芯片手冊(cè)里面最低只能配置10pf負(fù)載電容,我需要怎么外加輔助電容調(diào)節(jié)呢?


晶體標(biāo)稱的規(guī)格是指在該規(guī)格時(shí),晶振的振蕩頻率為最吻合的。

可以通過(guò)公式計(jì)算,芯片內(nèi)置負(fù)載電容選擇最低為10pf,再加上板子的寄生電容約2pf,則負(fù)載電容值最低為7pf左右。

因此如使用8pf的規(guī)格,則不需要外掛電容。

但是需要注意一點(diǎn),使用藍(lán)牙功能的2.4G信號(hào)是通過(guò)32M倍頻上去的,因此32M如果有偏差則2.4G也會(huì)產(chǎn)生對(duì)應(yīng)的頻偏。一般建議的是如果2.4G頻偏最準(zhǔn)的情況下,則頻偏可以調(diào)整為18或者20pf。這與上面選擇10pf的內(nèi)置負(fù)載電容是有偏差的,但是實(shí)際使用理論上不受到影響(針對(duì)藍(lán)牙頻偏則是建議在最準(zhǔn)的情況下使用,偏差范圍在±60K使用也是沒(méi)問(wèn)題的)。

官方建議使用12pf的電容,是因?yàn)樵诓煌陌遄由霞词辜纳娙萜钶^大也可以有較好的調(diào)整空間。

針對(duì)你的需求,當(dāng)前使用的8pf規(guī)格晶振時(shí),可以適當(dāng)調(diào)整芯片的內(nèi)置匹配電容參數(shù),如10\12\14pf進(jìn)行實(shí)際測(cè)試,注意查看晶振起振和藍(lán)牙連接。

但是最終還是建議使用12pf規(guī)格參數(shù)的晶振。

針對(duì)校準(zhǔn)藍(lán)牙2.4G的頻偏,可以通過(guò)頻譜儀測(cè)試或者查看該博客的第二點(diǎn)進(jìn)行簡(jiǎn)單的頻偏測(cè)試:

CH58x嘀嗒定時(shí)器(SysTick) - SweetTea_lllpc - 博客園 (cnblogs.com)



感謝你的回復(fù),能給我一份image.png這個(gè)代碼嗎?我的郵箱是個(gè)人信息保護(hù),已隱藏


已發(fā)送至郵箱,或者可以參考9160的方案,單9160+592完成2K方案。



好的謝謝你,有ble hid 多設(shè)備綁定和切換的例子嘛?


還有個(gè)問(wèn)題就是為什么gpio喚醒有概率會(huì)導(dǎo)致死機(jī)


配對(duì)與綁定的操作與講解參考:

BLE配對(duì)與綁定 - 隨筆分類 - SweetTea_lllpc - 博客園 (cnblogs.com)

GPIO喚醒可以直接參考PM的例程,注意使用最新的例程:

CH583EVT.ZIP - 南京沁恒微電子股份有限公司 (wch.cn)


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频