目录
1.1 简介
KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。芯片的亮点在超小尺寸,超级价格。以及简单明了的透传和串口AT控制功能。大大降低了嵌入蓝牙在其它产品的开发难度和成本
1.2 硬件说明
1.3 芯片功耗初步说明
1.4 芯片的简单测试说明
1.5 硬件设计--脚位说明
1.6 硬件设计--蓝牙天线的说明
1.7 硬件设计--蓝牙搭配的晶振说明
3.1 通讯格式
3.2 通讯指令举例
3.3 指定芯片的波特率和复位和恢复出厂设置【CT】[CZ][CW]
3.4 设置BLE蓝牙的名称和地址[BM][BN][BD]
3.5 查询BLE蓝牙的名称和地址[TM][TN][TD]
- 概述
1.1 简介
KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。芯片的亮点在超小尺寸,超级价格。以及简单明了的透传和串口AT控制功能。大大降低了嵌入蓝牙在其它产品的开发难度和成本
同时支持SPP和BLE 。但是只能任选其中一个协议使用。
备注:这款芯片最大的特点,就是成本低,使用简单,生产简单。无其他。同时支持低功耗详见3.7章节
KT6368A蓝牙芯片_完整资料_V2.0_20211114.zip-C文档类资源-CSDN下载KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。芯片的亮点在超小尺寸,超级价格。以更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qyvhome/48179985
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.3 芯片功耗初步说明
1、我们目前分KT6368A 和 KT6328A两个版本 (1)、KT6368A版本,是不带低功耗,双模的版本,开机15mA ,后续一直稳定在6mA左右 (2)、KT6328A版本,低功耗版本,只有BLE,详细参数,如:3.7章节 (3)、这两个芯片版本的硬件一模一样,KT6328A存在的目的就是满足需要低功耗的客户 2、KT6368A版本的特点如下: (1)、双模SPP + BLE,手册里面的全部功能具备 。就是不具备低功耗 (2)、但是这个版本,成本更低一些。 3、KT6268A版本的特点如下: (1)、功耗更低,详见3.7章节描述 (2)、成本略高一点点 。 ==》不同的版本,通过蓝牙名是可以识别出来的 |
1.4 芯片的简单测试说明
序号 | 操作说明 |
第一步 | 搭建好芯片的外围电路,供电3.3V即可。蓝牙天线可以直接焊一根线即可 |
第二步 | 查询芯片的2脚是否开机有1秒钟的高电平输出,接个指示灯出来 |
第三步 | 连接好电脑的串口助手,看看芯片的TX脚是否有数据返回,115200的波特率 |
第四步 | 做自己实际的板子,搭配MCU进行调试 |
1.5 硬件设计--脚位说明
序号 | Layout的注意事项 |
UART注意点 |
|
电源注意点 | 芯片的供电电压,最高位为3.4V 。一定不能超过这个电压,最好给3.3v |
2脚注意点 | 第2脚,为连接状态脚。连接成功输出高电平。未连接则是高组态。调试时建议接一个指示灯出来。或者连接到外部MCU 。注意下拉一个10K电阻到地 |
细节描述 |
升级的测试点排列,建议是 1/7/8/3 这4个脚顺序排列。引出测试点,很重要 |
1.6 硬件设计--蓝牙天线的说明
(1)、注意芯片的蓝牙天线引脚,出去,要预留安全间距
(2)、天线四周,一定要注意,包地处理
(3)、天线周边一定要隔空,不要铺绿油,背面和正面不要有金属
1.7 硬件设计--蓝牙搭配的晶振说明
(1)、由于蓝牙对频偏要求比较高,所以晶振的品质对蓝牙的性能至关重要,选型过程中
必须保证晶振的一致性和稳定性。晶振的频率偏差必须≤±10ppm,负载CL 推荐12pF。
(2)、体积无要求的,推荐我DEMO上面的晶振,成本低,性能好
(3)、体积要求小的,推荐24M-3225的,成本稍高,性能好
建议直接用我们配套的晶体,相信比外面随意采购的要优惠和质量保障
AT串口指令作为一种在控制领域常用的通信,我们进行了优化和定制,这样大大简化了用户使用的难度,请严格按照我们给出的指令格式进行操作
3.1 通讯格式
支持异步串口通讯模式,通过串口接受上位机发送的命令 注意:所有的指令的设计,都是有规律的,不是随意划分的,可以对照下面找一下规律 | |
控制指令格式: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 |
3.2 通讯指令举例
公共部分--控制指令 -- 说明 | ||
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 |
|
3.3 指定芯片的波特率和复位和恢复出厂设置【CT】[CZ][CW]
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、由于我们芯片的主频很高,所以尽量把串口的波特率调高,越高越好 |
3.4 设置BLE蓝牙的名称和地址[BM][BN][BD]
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)、只要设置了蓝牙名,蓝牙名一定是更新过来了的,不用怀疑。芯片上电也会返回蓝牙名给您查看 |
3.5 查询BLE蓝牙的名称和地址[TM][TN][TD]
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的地址也就没做查询指令,可以自己计算一下 |
- 常见问题集锦
问题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修改 |
/*************************************************************************- 功能描述: 串口发送一个字节- 隶属模块: 外部- 参数说明:- 返回说明:- 注:
1、每种芯片的串口输出的方式不一样,这里是我们自己的芯片的方式
2、您也只用修改这个接口封装一下即可
*************************************************************************/void func_send_byte( u8 dat )
{ctrl_uart_write(dat) ;/*替换这个接口*/
}/*************************************************************************- 功能描述: 串口发送字符串- 隶属模块: 外部- 参数说明:- 返回说明:- 注:
*************************************************************************/
void func_UartPutStr (const char *Str )
{while ( *Str){func_send_byte ( *Str );*Str++;}
}/*************************************************************************- 功能描述: 串口接收处理 --- 参考- 隶属模块: 外部- 参数说明:- 返回说明:- 注:
1、串口接收都是采用中断的方式,一定要设置一个超时的计数器,超时做错误处理
2、由于我们所有的命令都是以0x0D和0x0A作为结束,所以只用检测0x0A就认为接收完成
*************************************************************************/void uart_isr_recv(u8 uto_buf)
{g_uart_flag.uart_timeout = UART_TIMEOUT ;/*一般100ms*/g_uart_flag.uart_stop = 0; buf_uart1.buf[buf_uart1.index++] = uto_buf;/*字符存到缓存中*/if(uto_buf == 0x0A) /*收到数据0x0A则认为一帧数据结束了*/{g_uart_flag.uart_stop = 1; /*接收完成标志位置1*/g_uart_flag.uart_analysis = 1;/*分析数据使能打开*/ g_uart_flag.uart_timeout = 0 ;uart_recv_ok_pro(buf_uart1.buf ,buf_uart1.index) ; /*这里就是接收完成之后的处理*//*这里添加你自己的应用程序*/}
}/*************************************************************************- 功能描述: main- 隶属模块: 外部- 参数说明:- 返回说明:- 注:
*************************************************************************/
void main()
{uart_init() ;/*串口初始化*/delay_2ms(500) ;/*延时1秒*/func_UartPutStr("AT+CA30\r\n") ;/*设置音量为30级*/delay_2ms(500) ;/*延时1秒*/func_UartPutStr("AT+CA15\r\n") ;/*设置音量为15级*/delay_2ms(500) ;/*延时1秒*/func_UartPutStr("AT+BD12354678\r\n") ;/*设置蓝牙名为12345678*/delay_2ms(500) ;/*延时1秒*/func_UartPutStr("AT+CT02\r\n") ;/*设置波特率为19200 -- 参考手册*/delay_2ms(500) ;/*延时1秒*/while(1) ;
}