KT6368A国产蓝牙BLE芯片驱动程序&硬件注意事项

目录

1.1 简介 

KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。芯片的亮点在超小尺寸,超级价格。以及简单明了的透传和串口AT控制功能。大大降低了嵌入蓝牙在其它产品的开发难度和成本

1.2 硬件说明

1.3 芯片功耗初步说明

1.4 芯片的简单测试说明

1.5 硬件设计--脚位说明

1.6 硬件设计--蓝牙天线的说明

1.7 硬件设计--蓝牙搭配的晶振说明

3.1 通讯格式

3.2 通讯指令举例

扫描二维码关注公众号,回复: 13468692 查看本文章

3.3 指定芯片的波特率和复位和恢复出厂设置【CT】[CZ][CW]

3.4 设置BLE蓝牙的名称和地址[BM][BN][BD]

3.5 查询BLE蓝牙的名称和地址[TM][TN][TD]


  1. 概述

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注意点

  1. 我们芯片内部的IO电压是3.3V 。主要看1脚的输入电压
  2. 和外部的MCU相连接时,RX和TX请串电阻,大概100欧姆就可以了。MCU超过3.3V的IO电平,那么这个电阻可以加大到1K。
  3. 芯片的8脚是KT6368A的TX,连接MCU的RX。  7脚是我们的RX,连接MCU的TX

电源注意点

芯片的供电电压,最高位为3.4V 。一定不能超过这个电压,最好给3.3v

2脚注意点

2脚,为连接状态脚。连接成功输出高电平。未连接则是高组态。调试时建议接一个指示灯出来。或者连接到外部MCU 。注意下拉一个10K电阻到地

细节描述

  1. 请严格按照我们给出的供电电压,去供电 。电源这一块没什么太大的讲究
  2. 蓝牙天线,按照我们给出的封装画就行。技术很成熟了,基本上距离都超过15M
  3. 芯片的7/8脚两个必须预留测试点,这个是升级接口,以防万一要升级

升级的测试点排列,建议是  1/7/8/3 这4个脚顺序排列。引出测试点,很重要

1.6 硬件设计--蓝牙天线的说明

(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

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指令修改蓝牙名称之后,注意,你的手机端可能没有同步更新,还是显示之前的名称

  1. 、因为你只修改了蓝牙的名称,蓝牙的MAC地址是没有变化的,所以手机端那边是不会更新名字
  2. 、你要做的就是,换一台手机搜索试试,或者之前的手机删掉配对信息,重新在搜索

(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

  1. 这里重点描述一下蓝牙的MAC地址:BLE和SPP 的MAC地址是共生的,所以设置一个就行了
  1. 、芯片在第一次通电的时候,会自动生成蓝牙的MAC地址,并且是随机生存。这样做的好处是免除了 单独设置地址的问题
  2. 、同样经过优秀的算法,出现重复的概率是百万分之一。蓝牙的mac地址是标准的,6个字节

2、SPP的地址,是在BLE地址的最高字节加1处理的 。所以只用设置BLE的地址即可。SPP的地址也就没做查询指令,可以自己计算一下

  1. 常见问题集锦 

问题0

KT6368A是什么?有什么功能?特点是什么?适用于什么场景?配什么晶振呢?

KT6368A批量有优惠吗? 蓝牙天线预留的元器件怎么办,焊还是不焊?

回答

  1. KT6368A芯片属于蓝牙芯片,支持蓝牙5.1版本BLE。同时支持2.1版本的SPP功能
  2. KT6368A芯片支持连接手机,进行数据的双向交互,俗称“蓝牙透传”。通过UART接口

==》支持常用的AT指令,如:设置名称、设置地址、设置波特率等等。详见手册

  1. KT6368A芯片最大的特点,就是成本低,使用简单,SOP8的封装,也便于生产
  2. KT6368A芯片,适用于纯数据通讯的场合,如:客户自己开发APP、微信小程序等等
  3. 目前KT6368A的程序,只做了从机版本,只能和手机连接
  4. 搭配24M的晶振,参数是12pF的负载,精度是10ppM 。当然可以是3225封装或者其他

晶振的选择,直接影响的是蓝牙的频偏,也就是蓝牙距离,所以别随便用,到时候搜不到蓝牙名,就又跑来问为什么了,我们有提供晶振的样品。可以顺便拿几个回去测试

晶振的电容不用焊,建议预留,我们开机芯片会自动校准晶振的负载电容,软件处理的

8、芯片批量基本没什么优惠了,价格超级敏感的,请选择其它

9、蓝牙天线脚,预留的元器件,做样品直接不焊,接一个C1的电容即可。批量建议预留,预防做认证,或者天线要求极高的场合 。只接C1电容蓝牙距离也是妥妥的超过10米以上

问题1

KT6368A有测试板吗? 拿到芯片如何开始测试呢? 有什么硬件上的注意事项?

回答

芯片是SOP8封装的,总共的引脚就很少很少,使用也很简单。暂时没有测试模块

  1. 1脚供电。然后对地焊一个105的电容就够了。或者不接也行。量产加上
  2. 蓝牙天线,直接焊一根线就可以了,连接到芯片的4脚。实际做产品就加个2p7电容
  3. 主要是晶振比较难焊,不要紧,可以配套我们给的晶振,M49 2脚的焊一下就可以了
  4. 剩下的就是串口了,因为是3.3V的电平,所以3.3V的mcu直接直连即可
  5. 初次调试,建议使用串口调试助手调试 。USB转TTL的选用CH340G,某宝很多
  6. 为什么我们不做测试版,主要是成本的原因,所以麻烦客户自己动手

问题2

KT60368A支持微信小程序吗 ? 默认的uart波特率是多少?

回答

1、微信小程序,只是用到了BLE而已。也就是说支持BLE就可以支持微信小程序

2、芯片是BLE5.0的协议,微信小程序需要客户自己开发。我们只是透传,无其他作用

3、芯片给的uart缓存是1K字节 。默认的波特率是115200

问题3

KT6368A这颗芯片供电电压多少V?电流多少? 透传的速率是多少BLE和SPP

回答

  1. 建议给3.3V的电压【2.2V--3.4V】。
  2. 开机瞬间电流是26mA。稳定大概1秒左右,就降到4mA左右
  3. 芯片给的uart的缓存是1K字节,默认波特率是115200
  4. 对于BLE的速率,我们没有做完整的测试,需要高速传输的请自己测试一下
  5. SPP的传输,建议是单次最高不超过512字节一包数据 ,传输速率建议自己测
  6. BLE的传输速率,由于不同手机版本,都会有差别。所以速率没办法统一说明,用户自己测

问题4

如何区分AT指令和串口透传数据? 如何知道蓝牙是否连接

回答

  1. AT指令,只在蓝牙未连接的状态有效。
  2. 只要蓝牙连接成功之后,就进入透传了,AT指令无效了。

3、这个要看芯片的第2脚。未连接输出低电平。连接成功输出高电平

4、当然,你可以接一个指示灯来看。或者也可以连接到mcu的gpio上面

问题5

如何确定芯片是否工作正常呢?以及串口接线正常呢?

回答

  1. 芯片上电瞬间,2脚会输出1秒钟高电平,然后马上拉低 。所以接1个指示灯来看一下状态。
  2. 芯片上电串口是一定会返回信息的。注意是一定,如果没收到,说明串口有问题

问题6

支持单芯片出货吗? 芯片是什么参数?什么包装?芯片出货稳定吗

回答

  1. 芯片是sop8封装,管装,100片一管 。当然量大可以自己去编带
  2. 芯片出厂会烧录好固件,用户可以直接使用
  3. 芯片出货很稳定,因为这个是大品类的应用,如自拍杆、防丢器、等等量大的产品用的多

所以成本就很低,

4、另外不支持讲价。价格也没什么空间了,请留意

问题7

支持修改uuid ,以及蓝牙名和蓝牙MAC地址吗

回答

  1. 支持修改蓝牙名 ,以及蓝牙MAC地址
  2. 当然也支持,AT指令读取 。Uuid暂时不支持客户自己修改,后期会加上

问题8

支持单芯片出货吗? 芯片是什么参数?什么包装

回答

  1. 芯片是sop8封装,管装,100片一管 。当然量大可以自己去编带
  2. 芯片出厂会烧录好固件,用户可以直接使用

问题9

硬件设计,有什么需要注意的地方吗?

回答

  1. 请严格按照我们给出的供电电压,去供电 。电源这一块没什么太大的讲究
  2. 蓝牙天线,按照我们给出的封装画就可以了。因为技术很成熟了,所以基本上距离都超过15M
  3. 芯片的7/8脚两个必须预留测试点,这个是升级接口,以防万一要升级
  4. 升级的测试点排列,建议是  1/7/8/3 这4个脚顺序排列。引出测试点,很重要

问题10

支持买几个样品,帮我修改波特率到9600吗?

回答

  1. 原则上不支持修改,因为几个样品,客户自己动手发AT指令改一下。我们默认是115200
  2. 实在要修改,收人工费500。

问题11

支持按照我们特定的uuid,以及服务,然后修改出样品吗?

回答

  1. 原则上,不支持修改。因为样品阶段是给客户测试功能的。用户可以先做硬件,后期确实是做产品的,我们会配合修改的。

测试芯片的性能。不可能几块钱的东西,我们都要工程师参与配合修改,这样效率太低了

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) ;
}

猜你喜欢

转载自blog.csdn.net/qyvhome/article/details/121592868