HCI 电脑串口工具验证CSR8311初始化

一. 声明


本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等

第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等

第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。

第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)

第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等

第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展

第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。

另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

------------------------------------------------------------------------------------------------------------------------------------------

CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144

蓝牙交流扣扣群:970324688

Github代码:https://github.com/sj15712795029/bluetooth_stack

入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

------------------------------------------------------------------------------------------------------------------------------------------

二. 电脑端串口工具验证CSR8311初始化

可能有人会问,我不会蓝牙协议栈,但是我还想验证下模块是否正常,那么这样有没有办法呢,有的,放心!我们不用写一行代码,只需要了解上面的数据格式就OK了。

注意:在这里不是说量产测试工具哈,是我们自己手里有一个模组来验证,如果是量产工具那么肯定有他自己的验证方法。

Step 1) 硬件连接

HCI 电脑串口工具验证CSR8311初始化_第1张图片

看以上接线图,如果我们是PC串口验证的话,那么MCU就相当于我们PC的角色·所以我们拿一个CH340或者CP2102的串口调试板接到电脑就行,如下图:

HCI 电脑串口工具验证CSR8311初始化_第2张图片

Step 2) 串口工具的配置

HCI 电脑串口工具验证CSR8311初始化_第3张图片

主要分几点需要设置:

① 串口配置,8bit数据为,1bit停止位,无奇偶校验

② 设置为16进制发送,16进制显示

③ 把RTS勾选上,相当于开启了流控

注意一点:不要勾选发送新行。

Step 3) 按照以下command来复制到上面就行了

大大的注意字体:只复制send就行了,receive是芯片回来的event,不用复制

假设这组:你只需要复制红色的16进制就行了,还不明白,看我们HCI章节的视频。

send:HCI reset

01 03 0C 00

receive:

04 0E 04 01 03 0C 00

send:HCI reset
01 03 0C 00
receive:
04 0E 04 01 03 0C 00
 
send:PSKEY PSKEY_ANA_FREQ
01 00 FC 13 C2 02 00 09 00 1E 00 03 70 00 00 FE 01 01 00 00 00 90 65
receive
04 FF 13 C2 01 00 09 00 1E 00 03 70 00 00 FE 01 01 00 00 00 90 65 
 
send:PSKEY_HOST_INTERFACE H4
01 00 FC 13 C2 02 00 09 00 04 00 03 70 00 00 F9 01 01 00 00 00 03 00
receive:
04 FF 13 C2 01 00 09 00 04 00 03 70 00 00 F9 01 01 00 00 00 03 00 
 
send:PSKEY PSKEY_UART_CONFIG_H4
01 00 FC 13 C2 02 00 09 00 05 00 03 70 00 00 C0 01 01 00 00 00 A8 08
receive:
04 FF 13 C2 01 00 09 00 05 00 03 70 00 00 C0 01 01 00 00 00 A8 08 
 
send:PSKEY_BDADDR
01 00 FC 19 C2 02 00 0C 00 08 00 03 70 00 00 01 00 04 00 00 00 45 00 46 4F B8 00 64 DC
receive:
04 FF 19 C2 01 00 0C 00 08 00 03 70 00 00 01 00 04 00 00 00 45 00 46 4F B8 00 64 DC 
 
send:PSKEY_UART_BITRATE  
01 00 FC 15 C2 02 00 0A 00 09 00 03 70 00 00 EA 01 02 00 00 00 01 00 00 C2
receive
04 FF 15 C2 01 00 0A 00 09 00 03 70 00 00 EA 01 02 00 00 00 01 00 00 C2 
 
send:warm reset
01 00 FC 13 C2 02 00 09 00 4D 0E 02 40 00 00 00 00 00 00 00 00 00 00
receive:
04 0F 04 00 01 00 00 
 
send:Radio test
01 00 FC 13 C2 02 00 09 00 A0 00 04 50 00 00 1D 00 3A 00 00 00 00 00
receive
04 FF 13 C2 01 00 09 00 A0 00 04 50 00 00 1D 00 3A 00 00 00 00 00 
 
 
send:HCI read bt address
01 09 10 00
receive:刚刚设定的
04 0E 0A 01 09 10 00 46 4F 45 B8 64 DC 
 
send:HCI read buffer size
01 05 10 00
receive:
04 0E 0B 01 05 10 00 36 01 40 0A 00 08 00 
 
send:HCI read locol feature
01 03 10 00
receive:
04 0E 0C 01 03 10 00 FF FF 8F FE DB FF 5B 87 
 
send:HCI set event mask
01 01 0C 08 FF FF FF FF FF FF FF 3F
receive:
04 0E 04 01 01 0C 00 
 
send:HCI weite page timeout
01 18 0C 02 00 20
receive
04 0E 04 01 18 0C 00 
 
send:HCI write cod
01 24 0C 03 04 04 24
receive:
04 0E 04 01 24 0C 00 
 
send:HCI write auth enable
01 20 0C 01 00
receive:
04 0E 04 01 20 0C 00 
 
send:HCI write inquiry active
01 1E 0C 04 00 02 12 00
receive:
04 0E 04 01 1E 0C 00 
 
send:HCI write page scan active
01 1C 0C 04 90 00 12 00
receive:
04 0E 04 01 1C 0C 00 
 
send:HCI write inquiry mode
01 45 0C 01 02
receive:
04 0E 04 01 45 0C 00 

Step 4) 激动人心时刻,让芯片可被搜索

当然以上步骤可以省略一部分哈·,我没做最简化处理,另外自己不要敲了,去我博客复制吧,我自己敲过一遍,再也不想敲了,哈哈。最后一步,最关键,是设置为可搜索可被连接

send:HCI write scan enable
01 1A 0C 01 03
receive:
04 0E 04 01 1A 0C 00  

做完以上步骤你神奇的发现就能被搜索到了

你可能感兴趣的:(蓝牙协议剖析,蓝牙协议栈精讲,蓝牙初始化)