k30u蓝牙支持的协议(KT6368A蓝牙芯片双模用户手册)
同时支持SPP和BLE 。但是只能任选其中一个协议使用。
备注:这款芯片最大的特点,就是成本低,使用简单,生产简单。无其他。同时支持低功耗详见3.7章节
1.2 硬件说明
细节 |
参数说明 |
UART接口 |
标准串口,TTL电平,波特率可设,连接PC需要电平转换[如:CH340G--USB转TTL] |
输入电压 |
建议给3.3V的电压【2.2V--3.4V】 |
额定电流 |
芯片上电启动是20mA,马上进入低功耗广播20uA 和唤醒4mA交替。 连接成功就一直都是4mA |
低功耗电流 |
芯片算的是平均电流,因为内部是不断的低功耗、唤醒交替进行 |
工作温度 |
[-40度] -- [80度] |
湿度 |
5% ~ 95% |
主芯片型号 |
KT6368A[SOP8][管装出货]-----KT6328A[SOP8][管装出货] |
1、我们目前分KT6368A 和 KT6328A两个版本
| |
序号 |
操作说明 |
第一步 |
搭建好芯片的外围电路,供电3.3V即可。蓝牙天线可以直接焊一根线即可 |
第二步 |
查询芯片的2脚是否开机有1秒钟的高电平输出,接个指示灯出来 |
第三步 |
连接好电脑的串口助手,看看芯片的TX脚是否有数据返回,115200的波特率 |
第四步 |
做自己实际的板子,搭配MCU进行调试 |
序号 |
Layout的注意事项 |
UART注意点 |
|
电源注意点 |
芯片的供电电压,最高位为3.4V 。一定不能超过这个电压,最好给3.3v |
2脚注意点 |
第2脚,为连接状态脚。连接成功输出高电平。未连接则是高组态。调试时建议接一个指示灯出来。或者连接到外部MCU 。注意下拉一个10K电阻到地 |
细节描述 |
升级的测试点排列,建议是 1/7/8/3 这4个脚顺序排列。引出测试点,很重要 |
(1)、注意芯片的蓝牙天线引脚,出去,要预留安全间距
(2)、天线四周,一定要注意,包地处理
(3)、天线周边一定要隔空,不要铺绿油,背面和正面不要有金属
1.7 硬件设计--蓝牙搭配的晶振说明(1)、由于蓝牙对频偏要求比较高,所以晶振的品质对蓝牙的性能至关重要,选型过程中
必须保证晶振的一致性和稳定性。晶振的频率偏差必须≤±10ppm,负载CL 推荐12pF。
(2)、体积无要求的,推荐我DEMO上面的晶振,成本低,性能好
(3)、体积要求小的,推荐24M-3225的,成本稍高,性能好
建议直接用我们配套的晶体,相信比外面随意采购的要优惠和质量保障
串口通讯协议AT串口指令作为一种在控制领域常用的通信,我们进行了优化和定制,这样大大简化了用户使用的难度,请严格按照我们给出的指令格式进行操作
3.1 通讯格式
支持异步串口通讯模式,通过串口接受上位机发送的命令通讯标准:115200 bps --- 用户可以通过串口指令设置详见3.2数据位 :8 停止位 :1 校验位 :none 流控制 :none 注意:所有的指令的设计,都是有规律的,不是随意划分的,可以对照下面找一下规律 | |
控制指令格式:AT <CMD>[<param>]\r\n ---- 所有的都是字符,不是十六进制数 数据反馈格式:<IND>[<param>]\r\n | |
数据反馈格式:<IND>[<param>]\r\n | |
数据特性 |
详细说明 |
AT |
控制指令是控制主机给BT201的控制命令,以“AT ”开始 |
<CMD> |
后面紧跟<CMD>控制 ,通常是2个字符 指令 |
[<param>] |
如果CMD后面有参数,则紧跟着[<param>] |
\r\n |
最后以”\r\n”结束,字符型为换行,windows就是回车键。十六进制为0x0D,0x0A |
<IND> |
1、数据反馈是蓝牙把各种状态和数据信息反馈给主机,以<IND>作为开头 ,<IND>是反馈指 数,则紧跟<IND>之后继续传输<param>参数。 |
2、后面紧跟着的是芯片回传的参数 |
这里<CMD>重点说明: 由于芯片内部是跑的系统,主体的程序划分如下: | ||
功能划分 |
命令 |
备注 |
公共指令特性 |
AT C? |
公共指令是以AT C开头,后面的“?”就是具体细化的功能命令 |
音乐指令特性 |
AT A? |
音乐指令是以AT A开头,后面的“?”就是具体细化的功能命令 |
蓝牙指令特性 |
AT B? |
蓝牙指令是以AT B开头,后面的“?”就是具体细化的功能命令 |
这里<CMD>重点说明: 由于芯片内部是跑的系统,主体的程序划分如下: | ||
举例 |
命令 |
备注 |
控制指令1 |
AT CZ\r\n |
代表系统复位 |
查询返回的结果1 |
QA 01 |
详见4.4.1 返回的查询信息永远是Qn xx 其中n和前面是相对应的 |
查询返回的结果2 |
QG 01 |
详见4.2.12 |
公共部分--控制指令 -- 说明 | ||
CMD |
对应的功能 |
详细说明 |
AT CT |
设置波特率 |
后面有参数,详见3.3 举例:AT CT01/r/n |
AT UT |
设置蓝牙BLE的广播间隔 |
后面有参数,详见3.11 举例:AT UT01/r/n |
AT CZ |
芯片复位 |
芯片软件复位,详见3.3 举例:AT CZ/r/n |
AT CW |
芯片恢复出厂设置 |
恢复出厂设置,清除所有之前记忆的参数 ,详见3.3 举例:AT CW/r/n |
AT CL |
芯片低功耗设置 |
详见3.7章节 |
AT CR |
芯片上电回传信息关闭 |
详见3.10章节 .注意默认是开启的 |
AT BM |
设置BLE蓝牙名称 |
详见3.4章节 |
AT BN |
设置BLE的MAC地址 |
详见3.4章节 |
AT BD |
设置SPP蓝牙名称 |
详见3.4章节 |
AT BS |
设置BLE连接密码 |
详见3.4章节 ,此功能没有实现,主要在于手机的兼容性不行 |
AT QT |
查询系统的波特率 |
详见3.3章节.返回的数据为 |
AT QL |
查询系统的低功耗状态 |
详见3.7章节.返回的数据为QL 00 |
AT TM |
查询BLE蓝牙名称 |
详见3.5章节 |
AT TN |
查询BLE蓝牙地址 |
详见3.5章节 |
AT TD |
查询SPP蓝牙名称 |
详见3.5章节 |
AT TS |
查询BLE蓝牙连接密码 |
保留 |
测试推荐的指令
AT BM1234\r\n -- 设置BLE的名称 AT BN112233445566\r\n --ble的地址 AT BD223344\r\n -- 设置SPP的名称 AT CT01\r\n AT CZ\r\n AT CW\r\n AT QT\r\n AT TM\r\n AT TN\r\n AT TD\r\n |
|
AT CT01\r\n == 9600 |
AT CT06\r\n == 256000 |
AT CT11\r\n == 31250 |
AT CT02\r\n == 19200 |
AT CT07\r\n == 512000 |
AT CT12\r\n == 2400 |
AT CT03\r\n == 38400 |
AT CT08\r\n == 230400 |
AT CT13\r\n == 4800 |
AT CT04\r\n == 57600 |
AT CT09\r\n == 460800 | |
AT CT05\r\n == 115200 |
AT CT10\r\n == 1000000 | |
1、一旦设置了波特率之后,芯片会记忆。下一次开机,波特率就变成了您所设置的.当然可以查询[AT QT] | ||
2、设置完波特率之后,请等待1秒钟,再发送复位[AT CZ],或者断电一下即可 | ||
3、如果要恢复默认的波特率,请发送恢复出厂设置的命令,此时芯片会自动擦除所有的配置 | ||
4、由于我们芯片的主频很高,所以尽量把串口的波特率调高,越高越好 |
AT BMBLE-1234\r\n |
设置蓝牙名称为“BLE-1234” |
AT BN112233445566\r\n |
设置BLE的地址。手机端显示的地址是:66 55 44 33 22 11 |
AT BDSPP-1234\r\n |
设置蓝牙名称为“SPP-1234” |
1、设置蓝牙名称之后,需要让芯片复位,发指令或者断电上电都可以,这样会显示新的蓝牙名称。我们默认的蓝牙名为“KT6368A-BLE”。设置的蓝牙名最长为“30”个字节,请不要超过这个范围 |
2、如果AT指令修改蓝牙名称之后,注意,你的手机端可能没有同步更新,还是显示之前的名称
(3)、只要设置了蓝牙名,蓝牙名一定是更新过来了的,不用怀疑。芯片上电也会返回蓝牙名给您查看 |
AT TM\r\n |
返回TM 1234\r\n 代表蓝牙名为1234 |
AT TN\r\n |
返回TN 12345678AABB\r\n BLE的蓝牙地址:0xBB、0xAA、0x78、0x56、0x34、0x12 |
AT TD\r\n |
返回TD SPP1234\r\n 代表蓝牙名为SPP1234 |
2、SPP的地址,是在BLE地址的最高字节加1处理的 。所以只用设置BLE的地址即可。SPP的地址也就没做查询指令,可以自己计算一下 |
测试环境:KT6368A测试板 串口软件:串口调试助手_aithinker_serial_tool_v1.2.3 | |
==》这个数据的返回,无任何意义。主要是方便客户,上电测试串口是否连接正常,以及查看芯片运行状态 ==》芯片上电是一定会返回的,如果没有返回,说明硬件连接有误 | |
TM KT6368A-BLE-1.7 |
代表的是当前芯片的BLE的名称,以及对应手册的版本为1.7 |
TN 220CB1C8A22C |
代表的是当前芯片的BLE的地址 |
TD KT6368A-SPP-1.7 |
代表的是当前芯片的SPP的名称,以及对应手册的版本为1.7 |
TS 220CB1C8A22D |
代表的是当前芯片的SPP的地址 此地址是根据BLE的地址计算得来的 |
T4 01 |
代表的是当前BLE功能是打开的,详见3.8章节 |
T5 01 |
代表的是当前SPP功能是打开的,详见3.8章节 |
QL 00 |
代表的是当前是正常工作模式,详见3.7章节 |
这里面的很多返回的信息,用户可以不必关注,因为这个存在的目的是方便客户初次调试的时候看
3.7芯片低功耗指令说明【CL】
AT CL00\r\n |
不进入低功耗模式。下次上电有效 。设置之后注意要重新上电 |
AT CL01\r\n |
进入低功耗模式 。下次上电有效。设置之后注意要重新上电 --- 芯片默认进入此状态,不用设置 |
|
4、当然芯片,出厂上电默认是,正常工作模式。 |
|
而这5秒之类,是可以正常识别AT指令的
|
序号 |
电流 |
说明 | |
AT CL01 状态,进入低功耗工作模式 |
开机瞬间 |
11mA |
1、芯片开机需要初始化外设。瞬间电流比较大 2、这个时间维持300ms,就进入低功耗状态了 |
工作状态-未连接 |
20uA 4mA 交替 |
3、芯片正常工作状态,正常对外广播,处于一个睡眠、唤醒广播、睡眠这样的周期性状态 。目的为了节省功耗 4、周期500ms。100ms广播一次,400ms睡眠 5、广播一次电流就是4mA。进入睡眠,就变成20uA | |
工作状态-以连接 |
4.3mA |
6、当连接成功之后,芯片就不再进入睡眠。而是一次处于工作状态了 | |
AT CL00 进入正常工作模式 |
开机瞬间 |
25mA |
1、芯片开机需要初始化外设。瞬间电流比较大 2、这个时间维持300ms,就进入5mA工作状态 |
不管连接还是未连接。 |
5mA |
3、芯片一直处于工作状态。电流很小的波动,忽略不计 |
- 可以看到开机瞬间的电流在5mA ,随后降到4mA 等待几秒之后,就进入低功耗广播状态了
- 低功耗的广播状态,平均电流是185.4uA
- 最低的时候,是20uA 。由于此uA表软件采样率不够,所以曲线上面体现不出来
|
AT VER2.0-20211111 TM KT6328A-BLE-2.0 --- 手机端会搜索到这个名字 TN 3031E54D77D9 T4 01 T5 00 QL 01 -- 进入低功耗模式 |
AT B401\r\n |
开启BLE的功能。当然AT B400\r\n则是关闭了 |
AT B500\r\n |
关闭SPP的功能。当然AT B501\r\n则是开启了 |
AT T4\r\n |
查询BLE功能是否开启。芯片会返回T4 01或者T4 00 |
AT T5\r\n |
查询SPP功能是否开启。芯片会返回T5 01或者T5 00 |
|
只用设置一次,芯片自动保存参数,下一次不用设置了。关闭SPP功能之后,手机就搜不到SPP的名称了 |
ER 1\r\n |
接收的数据帧不对 |
ER 2\r\n |
接收的命令不存在,也就是你发的AT KK这样的字符串查找不到 |
ER 3\r\n |
接收的AT指令,没有收到回车换行,也就是\r\n |
ER 4\r\n |
发送的指令给的参数超范围了,或者指令的格式不对 。请检查您的AT指令 |
ER 7\r\n |
MCU发送数据给手机,但是手机端没有打开notify 。在ble连接成功状态下 |
ER 8\r\n |
保留--无意义 |
芯片内部对一些错误的状态,会进行实时的反馈。具体的请对照上面的表格
重点描述一下notify [监听],手机端的测试APP连接上蓝牙芯片之后,必须打开notify。蓝牙芯片才能发送数据给手机。手机发数据给蓝牙芯片,用write这个特征就足够了。
3.10芯片上电回传信息关闭指令【CR】
AT CR00\r\n |
关闭上电的回传信息 。设置之后注意要重新上电 |
AT CR01\r\n |
开启芯片上电的回传信息 。下次上电有效。设置之后注意要重新上电 |
|
目前此功能,仅限于KT6328A的版本,也就是单模BLE的低功耗版本
对应的指令 |
代表的含义 |
参考的功耗 |
AT UT00\r\n |
0--对应--250ms 广播间隔 |
平均功耗是300uA |
AT UT01\r\n |
1--对应--500ms 广播间隔 |
平均功耗是180uA |
AT UT02\r\n |
2--对应--750ms 广播间隔 |
平均功耗是140uA |
AT UT03\r\n |
3--对应--1000ms 广播间隔 |
平均功耗是100uA |
AT UT04\r\n |
4--对应--1500ms 广播间隔 |
平均功耗是70uA |
AT UT05\r\n |
5--对应--2000ms 广播间隔 |
平均功耗是62uA |
AT UT06\r\n |
6--对应--3000ms 广播间隔 |
平均功耗是40uA |
AT UT07\r\n |
7--对应--4000ms 广播间隔 |
平均功耗是30uA |
1、一旦设置了广播间隔参数之后,芯片会记忆。下一次开机,广播间隔就变成了您所设置的.不支持查询 |
2、但是芯片每次上电会主动的返回当前的连接间隔参数,详见上面的截图 |
3、如果要恢复默认的广播间隔,请发送恢复出厂设置的命令,此时芯片会自动擦除所有的配置 |
4、具体的间隔时间,还是要根据自己的产品,来定义。因为广播间隔越长,手机搜索到的时间就越长 |
目前支持BLE纯数传,芯片可以实现透传。目前BLE和SPP均只能作为从。也就是“SERVER”端。
请注意,一旦蓝牙被连接之后,芯片自动进入透传模式。不再识别AT指令 。一定要在app里面去搜索
BLE的透传说明
1、单次吞吐的数据最大为1024个字节,支持16位或者128位的UUID --- 128位的需要特别定制 |
2、如果使用BLE作为数传,请连接模块的“KT6368A-BLE”这个蓝牙名 |
3、当然可以自己修改BLE的蓝牙名以及MAC地址了,通过AT指令 |
1、主UUID是“FFF0” |
2、特征1的UUID是“FFF1”,特征是“WRITE_WITHOUT_RESPONSE ”“NOTIFY” |
3、特征2的UUID是“FFF2”,特征是“READ ”“NOTIFY” |
4、特征3的UUID是“FFF3”,特征是“WRITE_WITHOUT_RESPONSE” |
BLE透传效果演示:https://v.qq.com/x/page/q07660m1bta.html |
1、安卓手机的ios手机[苹果],推荐使用“BLE调试宝”软件 |
2、苹果的可以直接在“APP Store”里面搜索下载 |
3、安卓的,我们会在资料包里面提供安装的程序 |
4、请注意,安卓的手机也是可以测试BLE的,测试BLE不是一定只能用苹果的手机 |
5、安卓的BLE不是不能用,而是不好用,安卓的版本必须是在4.3版本以上的才支持BLE |
6、正因为安卓的BLE不好用的原因,所以才会有双模,安卓用SPP。苹果用BLE |
7、因为苹果如果要用SPP,这需要买MFI认证芯片,超级贵,目前也没人用了 |
8、如果默认没有修改过蓝牙名称的,连接“KT6368A-BLE”这个蓝牙名 |
9、BLE测试说明演示视频:https://v.qq.com/x/page/o0766ubm78n.html |
|
|
|
|
第一步:
|
第二步
|
第三步:
|
第四步:
|
1、注意测试的时候,最好打开手机的定位权限,因为很多app需要这个权限 |
2、无论是用户自己开发app还是微信小程序,操作的步骤和上面截图也是一样的 |
3、推荐用户只用第一个特征,也就是FFF1 .他的特征是写和监听,足够使用了 |
4、基础的问题,请自行百度解决。其实这些描述,网上也是很容易找的,不复杂 |
|
|
上位机通过uart单次发送1832 个字节的数据 |
这个是接收完成的截图 总共的耗时:220ms的样子 |
以上测试的数据,是建立在我们芯片设置的连接间隔基础上的测试
其实缩短连接间隔,也是可以加快数据的通信。但是同时也增加的功耗
注意,这里手机收到的数据,还是基本遵循20个字节分包。因为我们芯片内部默认设置的最大包的长度是20个字节
正常的流程,是APP那边连接完蓝牙芯片之后,可以主动发起请求MTU【最大通信包长度】--网上可以自己搜搜
设置了MTU之后,单次的数据包,就不再是20个字节了。从而加快的数据交互的速度
4.6 BLE的广播包数据说明--advertisData
这里我们在广播包里面,添加了芯片蓝牙的MAC地址 对比右边的截图,即可知道规律 这里我们称之为:advertisData 做这个的目的,有如下原因
|
|
Spp走的还是经典蓝牙的2.1的协议,不推荐使用了,新产品建议直接使用BLE 。要在系统里面先连接KT6368A-SPP
SPP的透传说明
1、单次吞吐的数据最大为1024个字节。需要连接“KT6368A-SPP-04” |
2、如果使用SPP作为数传,请不要主动连接模块的“KT6368A-BLE”这个蓝牙名,或者自己设置的BLE蓝牙名 |
3、注意SPP是属于经典蓝牙里面的一个子链路而已。 |
4、SPP数传和BLE是互斥的,如果你只用SPP的数传,那么请关闭掉BLE。 |
1、安卓手机的测试使用“蓝牙串口”这个app,可以在“应用宝”里面下载 |
2、如果默认没有修改过蓝牙名称的,连接“KT6368A-SPP”这个蓝牙 |
3、SPP测试说明演示视频:https://v.qq.com/x/page/e0766bz15fw.html |
SPP的大数据量的透传演示视频:
https://v.qq.com/x/page/c0843j975hl.html
测试的方法,可以看一下我们资料包里面的视频演示。
关于AT指令和透传数据的详细说明1、目前我们的串口指令,支持AT指令,同时支持蓝牙数据透传
- AT指令,是存在于整个芯片的生命周期,只要芯片初始化蓝牙之后,那么蓝牙数据透传,就会一直在后台运行,无论是连接还是未连接状态,都支持AT指令
- 但是请留意,我们还有一个低功耗的模式,详见3.7章节的详细说明
问题1 |
什么是蓝牙透传,有什么特点呢? |
答疑 |
3、我们的方案中,蓝牙透传,是不需要任何的指令或者设置的 |
问题2 |
芯片是如何区分AT指令和透传的数据呢? | ||||||||||||
答疑 |
至于这些透传的数据,如何去处理,就留给聪明的您去自由发挥啦
蓝牙芯片收到之后,也是不会处理的,只会串口输出给MCU |
问题0 |
KT6368A是什么?有什么功能?特点是什么?适用于什么场景?配什么晶振呢? KT6368A批量有优惠吗? 蓝牙天线预留的元器件怎么办,焊还是不焊? |
回答 |
==》支持常用的AT指令,如:设置名称、设置地址、设置波特率等等。详见手册
晶振的选择,直接影响的是蓝牙的频偏,也就是蓝牙距离,所以别随便用,到时候搜不到蓝牙名,就又跑来问为什么了,我们有提供晶振的样品。可以顺便拿几个回去测试 晶振的电容不用焊,建议预留,我们开机芯片会自动校准晶振的负载电容,软件处理的 8、芯片批量基本没什么优惠了,价格超级敏感的,请选择其它 9、蓝牙天线脚,预留的元器件,做样品直接不焊,接一个C1的电容即可。批量建议预留,预防做认证,或者天线要求极高的场合 。只接C1电容蓝牙距离也是妥妥的超过10米以上 |
问题1 |
KT6368A有测试板吗? 拿到芯片如何开始测试呢? 有什么硬件上的注意事项? |
回答 |
芯片是SOP8封装的,总共的引脚就很少很少,使用也很简单。暂时没有测试模块
|
问题2 |
KT60368A支持微信小程序吗 ? 默认的uart波特率是多少? |
回答 |
1、微信小程序,只是用到了BLE而已。也就是说支持BLE就可以支持微信小程序 2、芯片是BLE5.0的协议,微信小程序需要客户自己开发。我们只是透传,无其他作用 3、芯片给的uart缓存是1K字节 。默认的波特率是115200 |
问题3 |
KT6368A这颗芯片供电电压多少V?电流多少? 透传的速率是多少BLE和SPP |
回答 |
|
问题4 |
如何区分AT指令和串口透传数据? 如何知道蓝牙是否连接? |
回答 |
3、这个要看芯片的第2脚。未连接输出低电平。连接成功输出高电平 4、当然,你可以接一个指示灯来看。或者也可以连接到mcu的gpio上面 |
问题5 |
如何确定芯片是否工作正常呢?以及串口接线正常呢? |
回答 |
|
问题6 |
支持单芯片出货吗? 芯片是什么参数?什么包装?芯片出货稳定吗 |
回答 |
所以成本就很低, 4、另外不支持讲价。价格也没什么空间了,请留意 |
问题7 |
支持修改uuid ,以及蓝牙名和蓝牙MAC地址吗 |
回答 |
|
问题8 |
支持单芯片出货吗? 芯片是什么参数?什么包装 |
回答 |
|
问题9 |
硬件设计,有什么需要注意的地方吗? |
回答 |
|
问题10 |
支持买几个样品,帮我修改波特率到9600吗? |
回答 |
|
问题11 |
支持按照我们特定的uuid,以及服务,然后修改出样品吗? |
回答 |
测试芯片的性能。不可能几块钱的东西,我们都要工程师参与配合修改,这样效率太低了 2、实在需要修改的,可以,收人工费500修改 |
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com