1
0、说明
CH9141蓝牙串口透传芯片手册 版本:2A
1、概述
CH9141是一款蓝牙串口透传芯片,芯片支持广播模式、主机模式和从机模式,支持蓝牙BLE4.2。支持串口AT配置和在从机模式下的蓝牙通信配置,支持MODEM联络信号,并提供通用GPIO、同步GPIO、ADC采集功能,串口波特率最高1Mbps。蓝牙从机模式下可设置蓝牙名称、厂商信息等参数,可通过APP或者串口命令轻松配置,方便快捷。
提供电脑端虚拟串口驱动可使蓝牙接口直接使用串口调试工具、兼容串口应用程序,无需二次开发即可与串口接口通讯,轻松让串口实现免插线和不受线缆距离限制。 下图为CH9141一些应用方案框图: 电脑、手机等 UART ~BLE蓝牙~ MCU CH9141 蓝牙主机 GPIO 或 芯片蓝牙(虚拟串口驱动) 其他串口设备 从机模式 串口应用程序 ADC 或APP
图1蓝牙主机通过CH9141蓝牙与串口设备进行串口通讯框图
UART UART CH9141 CH9141 MCU MCU GPIO GPIO
芯片蓝牙同步IO 或 ~BLE蓝牙~ 同步IO 芯片蓝牙或 ADC ADC 主机模式 从机模式 其他串口设备 其他串口设备
图2两端MCU或串口设备使用CH9141蓝牙主从连接进行通讯框图
2、特点
l l l l l l l l l l l l l l
支持广播模式、主机模式和从机模式。 支持串口AT配置和蓝牙传输配置。 提供电脑端蓝牙虚拟串口驱动。
兼容已有串口软件和工具,无需二次开发。
支持Windows/Linux/Android/iOS等系统蓝牙主机连接。 提供通用GPIO和同步GPIO功能,支持蓝牙控制。 支持一路12位ADC采集,支持蓝牙读取。 掉电睡眠电流0.3uA。 传输距离100米 发射功率8档可调。
支持3.3V和2.5V工作电压。 异步串口最高通讯波特率1Mbps。
串口支持MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。 串口支持5、6、7或者8 个数据位以及1或者2个停止位。
2
l l l l
串口支持奇、偶、无校验、空白0、标志1等校验方式。 支持获取芯片供电电压参数。 32K时钟源可选外部晶振。
提供QFN28方形无引线28脚封装和ESSOP10封装。
3、封装
22232425262728ANTVINTAX32MIX32MONCRST#RXD21201918171615VDD_ARELOAD/LEDSLEEPGPIO3GPIO2GPIO1GPIO0TXDCTS#CH9141RTS#/TNOWDTR#/BLESTA/GPIO4RI#/GPIO5DSR#/GPIO6DCD#/GPIO7141312111098012345GNDSLEEPATVCCTXDGNDCH9141KRXDX32MIVINTAX32MOANT10987612345670X32KOX32KIVDD_DVSWVCCATADCGND
型号 CH9141 CH9141K
芯片封装
名称 QFN28 ESSOP10
描述 4*4mm 6*5mm
4、引脚
QFN28 ESSOP10
引脚名称
引脚号 引脚号 0 1 2 3 4 5 6 7 8
无
9 10
2 10 无 0
GND X32K0 X32KI VDD_D VSW VCC AT ADC DCD# /GPIO7 DSR# /GPIO6 RI#
类型 P A A P P P I A I/O I/O I/O
引脚说明 电源地
低频振荡器的反相输出端 低频振荡器的反相输入端 电源,需外接2.2uF退耦电容
内部DC-DC开关输出
芯片电源输入,需外接2.2uF退耦电容
AT透传功能切换引脚 0:AT模式 1:透传模式
模拟ADC输入引脚
DCD#:UART的MODEM输入信号,载波检测。
GPIO7:通用输入输出IO。 DSR#:UART的MODEM输入信号,数据装置就绪。
GPIO6:通用输入输出IO。 RI#:UART的MODEM输入信号,振铃指示。
3
/GPIO5
11
DTR# /BLESTA /GPIO4 RTS# /TNOW CTS
9 8 无 5 4 7 6 无 1
TXD RXD RST# NC X32MO X32MI VINTA ANT VDD_A RELOAD /LED SLEEP GPIO3
无
GPIO2 GPIO1 GPIO0
3
GND
I/O
GPIO5:通用输入输出IO。
DTR#:UART的MODEM输出信号,数据终端就绪。
BLESTA:蓝牙连接状态输出。 GPIO4:通用输入输出IO。 RTS#:MODEM联络输出信号,请求发送,低电平有效。
TNOW:UART的RS485收发切换控制引脚。
MODEM联络输入信号,清除发送,低电平有效
串口发送引脚 串口接收引脚 芯片复位引脚,低电平有效
无效引脚,悬空 高频振荡器的反相输出端 高频振荡器的反相输入端
内部模拟电路的电源节点,需外接2.2uF退耦电容
RF射频信号输入输出
内部模拟电路的电源输入,需外接0.1uF退耦电容
RELOAD:恢复出厂设置引脚,低电平有效
LED:芯片状态指示信号输出 低功耗控制引脚,低电平有效,内置上拉电阻
同步输入IO 同步输出IO 同步输入IO 同步输出IO 电源地
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 无
I/O I O I I N A A P A P I/O I I O I O P
注:P:电源引脚,A:模拟引脚,I:输入引脚,O:输出引脚,N:空脚
复用功能在前优先。
5、功能说明
5.1 广播模式
广播模式支持串口透传数据给芯片,芯片将自动更新广播数据,也支持AT模式下更新广播数据,建议使用AT命令发送蓝牙数据,数据为蓝牙广播的原始数据,芯片不会校验数据的合法性,所以数据一定要符合蓝牙协议规范。广播数据更新间隔默认为100mS,如果在广播数据更新期间发送多个包,则最后一包数据将作为广播数据。使用串口透传更新广播数据,建议采用串口超时机制,每个包之间的间隔必须大于串口超时时间。广播数据包不可以超过30个字节,包的格式参考蓝牙协议规范。
5.2 主机模式
主机模式仅支持我司的CH914x从机模式芯片,主机模式支持扫描连接和直接MAC地址连接,扫描回显的设备只显示CH914x从机芯片,扫描结束后可以使用扫描回显的结果进行序号连接,连接时在AT模式下输入序号和从机连接密码。也可以不进行扫描,直接输入需要连接的从机的MAC地址和密码,芯片会自动去连接该设备。主机模式支持设置自动连接的MAC,如果设置该项,主机在初始化完成后会自动连接该设备,这种方式不需要扫描等操作。
5.3 从机模式
从机模式下芯片会发送固定广播数据,支持修改扫描应答数据里的芯片名称,即文档下面描述的
4
芯片名称,默认广播间隔为100mS。从机支持四种基本蓝牙服务,其中透传服务UUID为0xFFF0。
通讯的UUID是0xFFF1、0xFFF2、0xFFF3说明参考下面表格。 UUID 0xFFF1 0xFFF2 0xFFF3
属性 通知 只写 读、写
说明
串口接收数据将通过该通道发送给主机,主机需要开启通知,数据会以MTU大小封包,超过的将会被芯片分包发送。
主机发送数据通道,发送数据将会在串口发送出去。
配置通道,IO同步等功能。
5.4 串口透传功能
串口透传使用异步串口,默认出厂波特率为115200bit/s。芯片的串口接收缓存为512个字节,串口接收数据的同时会实时进行蓝牙传输。进行AT配置时建议保证数据传输结束,进AT配置时,当前接收到的透传数据没有保存会丢失,已经保存到接收缓存区的数据会在退出AT模式时继续发送。蓝牙接收到数据是会直接发送给串口,数据不会暂存,蓝牙数据多的时候会等待发送,如果当前已经进入AT模式,蓝牙接收到的数据直接丢弃。建议主机发送时做一些速度方面的限制以降低丢包和缓冲区溢出。
由于蓝牙通信速率与其环境有关,所以在串口波特率超过9600bit/s,且蓝牙平均RSSI小于-70dBm时,建议使用CTS/RTS流控防止缓存区溢出。
5.5 参数配置
配置方式有两种:一是在设备模式下可以通过蓝牙进行配置和控制,二是通过串口进入AT配置模式进行配置。
蓝牙配置仅在从机模式下使用,广播模式和主机模式不可使用,配置命令可以使用例程里的接口进行操作,配置后芯片会自动保存参数,并在下一次启动时生效。
串口配置是在串口进入AT模式下进行配置。串口进行AT操作时,必须等到芯片应答后才可以发送下一包数据,不可以连续发送。数据统一采用ASCII字符传输,HEX形式的参数也是转换成ASCII形式。
配置参数修改时有些不是立即生效需要重启后生效,建议将参数全部修改后重启芯片。
5.6 设备信息
从机模式支持的设备信息属性包括:System ID、Model Number String、Serial Number String、Firmware Revision String、Hardware Revision String、Software Revision String、Manufacturer Name String、PnP ID。这些参数都支持用户修改,String格式输入字符串,大小不超过18个字符,另外System ID和PnP ID这两个参数需要符合蓝牙协议,System ID参数用户不去配置,芯片将会自动生成一个,PnP ID不配置将会以全0来显示,可以参考下面的表格。
UUID 0x2A23 0x2A24 0x2A25 0x2A26 0x2A27 0x2A28 0x2A29 0x2A50
名称 System ID Model Number String Serial Number String Firmware Revision String Hardware Revision String Software Revision String Manufacturer Name String
PnP ID
说明 系统ID,8个字节 芯片名称字符串 序列号字符串 固件版本信息 硬件版本信息 软件版本信息 厂商名称信息 PnP ID,7个字节
5
5.7 功能引脚
5.7.1 MODEM联络信号
CH9141支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。当蓝牙配置通道的“通知服务”打开时,MODEM状态变化会以命令帧形式通知主机,命令帧详见第8章描述。DTR、RTS输出信号可以通过AT命令或者发送控制命令给蓝牙配置通道进行控制,当流控功能启用时,RTS引脚会被芯片自动控制。
5.7.2 RS485切换引脚TNOW
芯片RTS引脚可设置成TNOW功能输出引脚使用,支持软件和硬件配置。软件配置:通过AT命令或蓝牙APP发送配置命令设置TNOW引脚功能开启和极性控制。硬件配置,在软件没有配置的情况下,RTS#/TNOW在芯片上电后设置为上拉输入模式,默认高电平,外部可接一个4.7K下拉电阻设置为低电平,芯片上电完成后会根据输入电平的高低分别选择RTS#和TNOW引脚功能。TNOW引脚默认串口发送时输出高电平,不发送时输出低电平。
5.7.3 蓝牙连接状态引脚BLESTA
芯片DTR引脚可设置成BLESTA蓝牙连接状态输出引脚使用,支持软件和硬件配置。软件配置:通过AT命令或蓝牙APP发送配置命令设置BLESTA引脚功能开启和极性控制。硬件配置,在软件没有配置GPIO和BLESTA功能情况下,DTR#/BLESTA/GPIO4在芯片上电后设置为上拉输入模式,默认高电平,外部可接一个4.7K下拉电阻设置为低电平,芯片上电完成后会根据输入电平的高低分别选择DTR#和BLESTA引脚功能。BLESTA引脚默认蓝牙未连接输出低电平,蓝牙连接后输出高电平。 BLESTA引脚功能只在蓝牙主机和从机模式下可用。
5.7.4 GPIO功能
GPIO功能分为两种:一是同步IO,用于主机芯片和从机芯片连接后双方同步;二是通用IO可以通过AT命令配置使用,也可以通过配置接口配置和调试使用。当芯片的功能引脚工作在其他模式情况下,对通用GPIO进行操作时,芯片将会自动将该GPIO的其他功能关闭,开启GPIO功能,修改并保存参数,下次上电或重启后自动作为GPIO功能使用。 芯片提供8个GPIO,分为4个同步IO、4个通用IO,GPIO的序号为0-7即GPIO0、GPIO1…GPIO7。 同步IO为GPIO0、GPIO1、GPIO2、GPIO3,其中GPIO1、GPIO3为输入,GPIO0、GPIO2为输出,同步的GPIO的输入输出特性不可更改,当主机和从机连接后,两个芯片会同步这个4个IO,同步规则是主机的GPIO1、GPIO3输入对应到从机的GPIO0、GPIO2输出,同时从机的GPIO1、GPIO3输入对应到主机的GPIO0、GPIO2输出,同步时间最短是一个连接事件,需要注意的是:同步IO在同步期间会被串口透传打断,串口透传的数据在蓝牙传输中是优先传输,在空闲的时候才会传输IO同步信息,所以在串口透传时候同步IO会推迟同步。
通用的IO为GPIO4、GPIO5、GPIO6、GPIO7,每一个IO都可以独立配置使用,可以配置成输入或者输出,可以通过AT配置来设置IO和控制或者读取IO电平,也可以在蓝牙从机工作模式时通过蓝牙配置接口发送命令来配置和控制。在配置方面,建议不要中途修改IO配置,每个IO经过设置都会保存一次参数,所以IO要固定其使用方式配置一次即可,发送AT命令也是需要根据输入输出特性发送命令,即输入模式的IO只能发送读取,输出模式的IO只能发送设置。
5.8 ADC功能
ADC功能,芯片提供一路12位的ADC采样,可以通过AT命令读取或者在设备模式下通过蓝牙配置接口读取ADC采样的值。采样输入的电压范围为0-2V。
芯片可以通过命令码来获取当前的电源电压方便对电池供电的环境进行电压监控。
6
5.9 低功耗功能
低功耗模式分为两种睡眠模式,一是睡眠模式,蓝牙将继续工作其他不相关的外设将会关闭,二是芯片进入掉电模式,唤醒时芯片直接复位重新运行。睡眠模式可以通过AT命令来设置,建议根据自身的需求选择相应的睡眠模式,不要经常更改睡眠模式。
睡眠模式时主控不可以发送串口数据,可以通过低功耗睡眠控制引脚(SLEEP引脚)拉低来控制芯片进入低功耗模式,该模式不是真正意义上的睡眠而是根据蓝牙通讯要求会自动唤醒并处理蓝牙,蓝牙上收到数据还是会通过串口发送给主控,蓝牙没有事务处理则会自动睡眠,但是主控要发送数据必须将睡眠引脚拉高,并等待20mS以上,再发送数据,否则会引起数据出错,拉高之后芯片会退出低功耗模式。
掉电模式芯片将所有不相关的外设全部掉电,蓝牙不再运行,控制睡眠引脚(SLEEP引脚)拉低进入掉电模式,拉高唤醒时芯片将复位。
5.10 恢复出厂设置
芯片提供一个恢复出厂设置引脚(RELOAD/LED),芯片上电后会检测恢复出厂设置引脚,检测到该引脚持续拉低2秒后芯片会恢复出厂设置,之后芯片就以出厂设置的参数运行。RELOAD检测处理后该引脚会复用为LED输出引脚。
5.11 LED引脚功能
芯片的LED引脚显示当前的模块的运行状态,低电平有效,默认高电平,也可以接一个LED灯来直观看模块工作情况。
广播模式下,LED默认为高,接收到有命令更新广播数据时将以50mS低50mS高的时间闪烁一次。 从机模式下,模块初始成功后会进入广播状态,此时LED将以500mS低500mS高的时间进行连续闪烁;当有主机连接时,LED引脚将拉低,保持外部LED常亮的状态;此时有数据收发时LED会以50mS高50mS低的时间闪烁一次,最后保持低电平状态,断开连接后会重新进入广播状态。
主机模式下,默认LED为高,当执行扫描动作时,LED将以165mS低165mS高的时间进行连续闪烁,直到扫描结束,LED变成高电平保持默认状态;当执行连接时,在连接成功后会拉低,保持外部LED常亮的状态;有数据收发时将以50mS高50mS低的时间闪烁一次。连接如果断开,LED拉高,此时如果没有AT命令则主机模块会主动重连从机,如果连接成功则变成连接状态,引脚拉低。
在低功耗模式开启情况下LED引脚将输出常高,不更新LED状态。
5.12 外部晶振
芯片的工作需要外接32M晶振,芯片引脚内置负载电容,可以不用外接负载电容。如果对频偏有严格的要求情况下,建议外部预留负载电容的位置以方便在整体系统上测试和调整频偏。
芯片的32K低频晶振不是必须的。如果外接32K晶振时,芯片将会自动切换使用外部晶振,引脚内置负载电容,可以不用外接负载电容。如果使用芯片工作在主机模式情况下,建议外接32K,以提到时钟的精准度。
5.13 内部LSI和RF校准
芯片提供定时和温度差两种方式对内部LSI时钟和RF进行校准,使用外部32K晶振情况不用关心内部32K校准设置也不会对LSI时钟进行校准。建议在温度差比较大,或者环境温度变化快的应用中合理设置定时或者温度差方式对芯片进行校准。
定时方式,根据设定的时间参数,定时进行内部LSI时钟校准和RF校准。
温度差方式,根据设定的时间参数,定时采样温度差,当温差达到设定的阈值时,进行内部LSI时钟校准和RF校准。
7
6、AT指令集
6.1 AT基本格式
AT模式下芯片作为串口从设备,与芯片相连的主控(主机)为串口主设备,AT命令由主机发送,芯片给出响应。
主机发送基本格式:
说明:基本格式是大部分命令码,部分命令有所区别,具体见下面的命令集。其中{CR}{LF}对应的是字符格式定义的“\\r”“\\n”,十六进制为:0x0D,0x0A即ASCII中的回车符和换行符,命令中{CR}{LF}作为一个分隔符和结束符使用。
芯片返回基本格式:
返回参数格式:<参数><{CR}{LF}>
错误状态返回:<{CR}{LF}>
说明:错误码是两个ASCII字符组成的一个HEX形式,如错误码为字符“01”即表示十六进制的0x01。目前的错误码及表示的含义如下图所示: 错误码 01 02 03 04
含义
缓存错误:当前芯片没有缓存来进行应答,可以稍后重试。
参数错误:发送的AT指令部分参数不符合规范,注意芯片不会对所有参数进行判定需要
外部保证基本的正确性。
命令不支持:命令在当前模式下不支持,比如在广播模式下发送连接命令等 命令不可执行:命令暂时不能执行,可以稍后重试,一般是没有足够的缓存处理这次命
令,芯片在忙。
6.2 串口配置命令集
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
指令 AT... AT+RESET AT+VER AT+HELLO AT+RELOAD AT+SHOW AT+SAVE AT+EXIT AT+GPIO AT+INITIO AT+UART AT+MAC AT+TPL AT+BLESTA AT+DISCONN AT+BLEMODE AT+CCADD AT+NAME
说明 进入AT配置 复位芯片 获取芯片版本号 查询/设置开机语 重置所有参数 显示芯片信息 保存当前参数 退出AT配置
查询/设置通用GPIO和同步GPIO
GPIO输出初值设置 查询/设置串口参数 查询本地MAC地址 查询/设置发射功率 查询蓝牙状态 断开当前连接 查询/设置蓝牙工作模式 查询当前连接MAC地址 查询/设置芯片名称
8
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
AT+PNAME AT+PASEN AT+PASS AT+SYSID AT+MODNAME AT+SERINUM AT+FIRMREV AT+HARDREV AT+SOFTREV AT+MANUNAME AT+PNPID AT+ADVEN AT+ADVDAT AT+LINK AT+CONN AT+SCAN AT+CONADD AT+CLRCONADD AT+RSSI AT+ADC AT+SLEEP AT+BAT AT+BDSP AT+BLECFGEN AT+BCCH AT+ADVINTER AT+CONNINTER AT+LSICALI AT+RFCALI AT+TNOW AT+BSTA AT+AFEC AT+IOEN
查询/设置设备名称 查询/设置密码使能 查询/设置密码
查询/设置设备信息的系统ID 查询/设置设备信息的芯片名称 查询/设置设备信息的序列号 查询/设置设备信息的固件版本 查询/设置设备信息的硬件版本 查询/设置设备信息的软件版本 查询/设置设备信息的厂商名称 查询/设置设备信息的PNP ID
查询/设置广播使能 查询/设置广播数据 根据序号连接指定蓝牙设备 根据给定的蓝牙设备参数直接连接
主机扫描命令 查询/设置默认连接参数 清空默认连接参数 设置读取RSSI 读取ADC值 设置芯片睡眠模式 读取芯片的电源电压 主机扫描显示从机电压 蓝牙配置接口开关 广播通道设置 广播间隔设置 连接间隔设置 内部32K时钟校准设置 蓝牙RF校准设置 TNOW引脚功能设置 蓝牙状态引脚设置 流控以及输出引脚设置 设置GPIO功能启用
1.进入AT配置
指令:AT...{CR}{LF}
说明:该命令在不使用引脚进AT配置时使用,在串口空闲500mS后发送,芯片会进入AT模式,并返回状态,进入AT模式后发送该命令也会给出响应。
返回:OK{CR}{LF}
例:主机发送:AT...{CR}{LF} 芯片应答:OK{CR}{LF} 2.复位芯片
指令:AT+RESET{CR}{LF}
说明:该命令会使芯片在20mS后复位。 返回:OK{CR}{LF}
9
3.获取芯片版本号
指令:AT+VER{CR}{LF}
说明:获取芯片的版本,返回版本号和状态 返回:VER:<版本号>{CR}{LF}OK{CR}{LF}
例:主机发送:AT+VER{CR}{LF}芯片应答:VER:V1.00{CR}{LF}OK{CR}{LF} 4.开机语
获取指令:AT+HELLO?{CR}{LF}
说明:获取当前的开机语,开机语可以作为芯片初始化完成的标志。 返回:<开机语字符串>{CR}{LF}OK{CR}{LF}
例:主机发送:AT+HELLO?{CR}{LF} 芯片应答:Welcome{CR}{LF}OK{CR}{LF} 设置指令:AT+HELLO=<开机语字符串>{CR}{LF} 说明:设置当前的开机语,当不使用开机语时,开机语字符串为空即可,字符数必须小于30个。 返回:设置状态,正确则设置成功,错误则查询错误码。
例:主机发送:AT+HELLO=WCH MODULE{CR}{LF} 芯片返回:OK{CR}{LF} 例:主机发送:AT+HELLO={CR}{LF} 芯片返回:OK{CR}{LF},不启用该功能 5.重置所有参数
指令:AT+RELOAD{CR}{LF}
说明:该命令会重置芯片所有参数,即恢复出厂设置并保持。 返回:状态。
例:主机发送:AT+RELOAD{CR}{LF} 芯片应答:OK{CR}{LF} 6.显示信息
指令:AT+SHOW{CR}{LF}
说明:显示芯片的一些信息。 返回:信息参数和状态。
例:主机发送AT+SHOW{CR}{LF}芯片应答:<芯片信息>OK{CR}{LF} 7.保存当前参数
指令:AT+SAVE{CR}{LF}
说明:保存当前设置的所有参数,设置的命令基本都会自动保存,而这条命令会与已经保存的有冲突,建议不使用该命令。 返回:状态。
例:主机发送:AT+SAVE{CR}{LF} 芯片应答:OK{CR}{LF} 8.退出AT配置
指令:AT+EXIT{CR}{LF}
说明:退出当前的AT配置模式,和进入配置命令一起使用,使用AT引脚进入AT配置模式,不可使用该命令。
返回:OK{CR}{LF}
例:主机发送:AT+EXIT{CR}{LF} 芯片应答:OK{CR}{LF} 9.GPIO设置
获取指令:AT+GPIO
说明:x为ASC格式的4-7,获取x的引脚电平状态,这里获取会引起GPIO设置的变化,当前x引脚设置为输入模式时,则直接返回读取的IO电平状态;当前x引脚设置为输出模式时,使用该命令会使该引脚重新配置成输入模式,并保存参数,返回读取的IO电平状态。建议IO固定成一种模式,中途不要修改其输入输出配置。
返回:<电平值:0、1>{CR}{LF}OK{CR}{LF}
例:主机发送:AT+GPIO4?{CR}{LF} 芯片应答:1{CR}{LF}OK{CR}{LF} 设置指令:AT+GPIO
10
说明:同获取一样的,模式不对时将会设置并保存设置,建议也是中途不要修改其输入输出配置。 返回:OK{CR}{LF}
例:主机发送:AT+GPIO4=0{CR}{LF} 芯片应答:OK{CR}{LF} 10.GPIO输出初值设置
获取指令:AT+INITIO?{CR}{LF}
说明:命令获取配置里的GPIO输出默认值,该值影响上电初始化完成后IO输出的值,对应输入状态的IO则不关心,获取的是一个HEX转换的ASCII,比如:0xcc,表示二进制的11001100,bit7-bit0分别对应的是GPIO7-GPIO0,为0输出低电平,为1输出高电平。 返回:执行的状态。
例:主机发送:AT+INITIO?{CR}{LF} 芯片应答:CC{CR}{LF}OK{CR}{LF} 设置指令:AT+INITIO=<8个IO电平值>{CR}{LF}
说明:设置的参数格式与获取的参数格式一致,每一个位表示对应的IO上电输出状态,设置完成主机将保存参数。 返回:执行状态
例:主机发送:AT+INITIO=00{CR}{LF},上电输出的IO都是低电平芯片应答:OK{CR}{LF} 11.串口设置
获取指令:AT+UART?{CR}{LF}
说明:返回当前的串口参数配置。
返回:<波特率>,<数据位>,<停止位>,<校验位>,<超时时间>{CR}{LF}
例:主机发送:AT+UART?{CR}{LF} 芯片返回:115200,8,1,1,50{CR}{LF}OK{CR}{LF} 设置指令:AT+UART=<波特率>,<数据位>,<停止位>,<校验位>,<超时时间>{CR}{LF}
说明:该命令设置串口参数,其中波特率支持参数:9600bit/s、19200bit/s、38400bit/s、57600bit/s、115200bit/s、1000000bit/s;数据位支持参数:8、9;停止位支持的参数:1、2;校验位支持的参数:0(无校验)、1(奇校验)、2(偶校验);超时时间是透传模式下的数据超时时间,单位为mS。发送完该命令,芯片将保存该设置的参数并返回应答,5mS后将按该配置的参数重新初始化串口。
例:主机发送:AT+UART=115200,8,1,0,50{CR}{LF} 芯片应答:OK{CR}{LF} 12.MAC地址
查询指令:AT+MAC?{CR}{LF}
说明:读取芯片的蓝牙MAC地址,返回的参数格式xx:xx:xx:xx:xx:xx,MAC为小端格式即低字节在前,不支持设置MAC。 返回:蓝牙MAC地址
例:主机发送:AT+MAC?{CR}{LF} 芯片返回:05:DF:39:4C:99:B4{CR}{LF}OK{CR}{LF} 设置指令:AT+MAC=xx:xx:xx:xx:xx:xx{CR}{LF},参数以小端格式填入。
说明:MAC参数不建议修改,修改时,芯片不会对参数的合法性进行验证。该参数在下一次上电或复位生效。
例:主机发送:AT+MAC=05:DF:39:4C:99:B4{CR}{LF} 芯片应答:OK{CR}{LF} 13.发射功率
查询指令:AT+TPL?{CR}{LF} 说明:查询当前蓝牙发送功率。 返回:功率等级。
例:主机发送:AT+TPL?{CR}{LF} 芯片返回:0{CR}{LF}OK{CR}{LF} 设置指令:AT+TPL=
说明:设置蓝牙发射功率,x支持的参数:0(0DB)、1(1DB)、2(2DB)、3(3DB)、4(-3DB)、5(-8DB)、6(-14DB)、7(-20DB),其他的参数不支持,设置参数会保存,并在下一次重启时生效。 例:主机发送:AT+TPL=1{CR}{LF} 芯片应答:OK{CR}{LF}
11
14.查询蓝牙状态
指令:AT+BLESTA?{CR}{LF}
说明:查询当前的蓝牙状态,状态是两个ASCII组成的,表示一个HEX,注意是区别模式,下图表示各个模式返回表示的状态及含义。
广播模式
状态码 00 01 02 07
含义 未初始化 设备初始化完成
广播 错误
状态码 00 01 02 03 04
主机模式
含义 未初始化 扫描 连接中 连接成功 断开连接中
状态码 00 01 02 03 04 05 07
从机模式
含义 未初始化 设备初始化完成
广播 准备广播状态 连接超时 连接成功 错误
返回:当前模式下的状态码。
例:主机发送AT+BLESTA?{CR}{LF} 芯片应答:02{CR}{LF}OK{CR}{LF} 15.断开连接
指令:AT+DISCONN{CR}{LF}
说明:断开当前的连接,该命令返回的状态不是已经断开而是接受到命令并可以去执行,断开的结果可以使用查询状态来查看。 返回:状态。
例:主机发送:AT+DISCONN{CR}{LF} 芯片返回:OK{CR}{LF} 16.蓝牙工作模式
查询指令:AT+BLEMODE?{CR}{LF}
说明:返回当前的蓝牙工作模式,模式参数为:0(广播模式)、1(主机模式)、2(设备模式)。 返回:工作模式。
例:主机发送:AT+BLEMODE?{CR}{LF} 芯片返回:2{CR}{LF}OK{CR}{LF} 设置指令:AT+BLEMODE=
说明:设置模式的参数x为:0(广播模式)、1(主机模式)、2(设备模式),命令接收后保存该配置参数,在下一次重启才执行。
例:主机发送:AT+BLEMODE=1{CR}{LF} 芯片返回:OK{CR}{LF} 17.获取当前连接MAC地址 指令:AT+CCADD?{CR}{LF} 说明:获取当前与芯片连接的MAC地址,MAC为小端格式即低字节在前,没有连接则返回空的MAC地址。
返回:连接的MAC地址。
例:主机发送:AT+CCADD?{CR}{LF} 芯片返回:05:DF:39:4C:99:B4{CR}{LF}OK{CR}{LF} 18.芯片名称
获取指令:AT+NAME?{CR}{LF}
说明:获取当前设备的芯片名称,字符串格式。 返回:当前的芯片名称。
例:主机发送:AT+NAME?{CR}{LF} 芯片应答:WCH MODULE{CR}{LF}OK{CR}{LF} 设置指令:AT+NAME=<芯片名称字符串>{CR}{LF}
说明:芯片名称字符串长度不超过18个字符,设置命令发送后,芯片将会保持该参数,并在下一个重启后启用,该芯片名称会在设备模式下广播包里体现,在主机搜索时会显示改名称。其他模式就不使用该参数,不过使用命令也可以读取芯片名称。
12
返回:状态。
例:主机发送:AT+NAME=TEST NAME{CR}{LF} 芯片返回:OK{CR}{LF} 19.设备名称
获取指令:AT+PNAME?{CR}{LF}
说明:获取设备的设备名称,该名称在设备模式时使用,用于属性描述的名称,具体可以参考蓝牙协议。
返回:设备名称。
例:主机发送:AT+PNAME?{CR}{LF} 芯片应答:WCH PREI{CR}{LF}OK{CR}{LF} 配置指令:AT+PNAME=<设备名称字符串>{CR}{LF}
说明:设置设备名称,保存参数,并在下一次启动时使用,名称长度不超过18个字符。 例:主机发送:AT+PNAME=TEST PNAME{CR}{LF} 芯片应答:OK{CR}{LF} 20.密码使能
获取指令:AT+PASEN?{CR}{LF}
说明:查询当前密码使能状态,返回的参数为“ON”、“OFF”对应的是开启和关闭。 返回:密码使能的状态。
例:主机发送:AT+PASEN?{CR}{LF} 芯片应答:ON{CR}{LF}OK{CR}{LF} 配置指令:AT+PASEN=<使能状态>{CR}{LF} 说明:使能状态也是“ON”、“OFF”,表示是否使用密码,对从机有效,当不使能密码时将给出一个默认是0的密码值,命令将在下一次启动生效。 返回:执行的状态。
例:主机发送:AT+PASEN=ON{CR}{LF} 芯片应答:OK{CR}{LF} 21.密码设置
获取指令:AT+PASS?{CR}{LF}
说明:指令查询密码,返回的是当前配置的从机密码。 返回:从机密码
例:主机发送:AT+PASS?{CR}{LF} 芯片应答:123456{CR}{LF}OK{CR}{LF} 设置指令:AT+PASS=<密码的ASCII值>{CR}{LF}
说明:配置当前从机的连接密码,格式是ASCII码,指令设置的参数会在下一次启动时生效。 返回:指令执行的状态。
例:主机发送:AT+PASS=111222{CR}{LF} 芯片应答:OK{CR}{LF} 22.设备信息的系统ID
获取指令:AT+SYSID?{CR}{LF}
说明:获取设备信息的系统ID,该系统ID用于设备模式下的信息,具体可以参考蓝牙协议,用户不设置该参数,则在芯片初始化完成后根据蓝牙协议生成一个ID,获取时就会获取该参数,用户设置后则在芯片初始化完成后不会生成新的,而使用设置的参数。 返回:当前的系统ID。
例:主机发送:AT+SYSID?{CR}{LF} 芯片返回:05DF3900004C99B4{CR}{LF}OK{CR}{LF} 配置指令:AT+SYSID=<系统ID>{CR}{LF}
说明:系统ID的大小为8个字节,即发送16个字符来配置,每两个字符组成一个字节,配置后会在下一次启动时使用。 返回:状态。
例:主机发送:AT+SYSID=0102030405060708{CR}{LF} 芯片返回:OK{CR}{LF} 23.设备信息的芯片名称
获取指令:AT+MODNAME?{CR}{LF}
说明:获取设备信息的芯片名称,该名称使用在设备模式下的设备信息属性参数。 返回:当前的设备信息的芯片名称。
13
例:主机发送:AT+MODNAME?{CR}{LF} 芯片应答:WCH BLE{CR}{LF}OK{CR}{LF} 设置指令:AT+MODNAME=<芯片名称>{CR}{LF}
说明:设置设备信息的芯片名称,长度不超过18个字符。 返回:状态。
例:主机发送:AT+MODNAME=TEST MODNAME{CR}{LF} 芯片应答:OK{CR}{LF} 24.设备信息的序列号
获取指令:AT+SERINUM?{CR}{LF}
说明:获取当前设备信息的序列号,字符串形式。 返回:序列号
例:主机发送:AT+SERINUM?{CR}{LF} 芯片应答:170621000000{CR}{LF}OK{CR}{LF} 设置指令:AT+SERINUM=<序列号>{CR}{LF}
说明:序列号为字符串形式,字符大小不超过18个字符,设置保存参数,并在下一次启动时生效。
返回:状态。
例:主机发送:AT+SERINUM=123456{CR}{LF} 芯片应答:OK{CR}{LF} 25.设备信息的固件版本
获取指令:AT+FIRMREV?{CR}{LF}
说明:获取设备信息的固件版本,字符串格式。 返回:设备信息的固件版本。
例:主机发送:AT+FIRMREV?{CR}{LF}芯片返回:VER1.0{CR}{LF}OK{CR}{LF} 设置指令:AT+FIRMREV=<固件版本>{CR}{LF}
说明:固件版本为字符串形式,字符大小不超过18个字符,设置时保存参数,并在下一次启动时生效。
返回:状态。
例:主机发送:AT+FIRMREV=VER1.2{CR}{LF} 芯片应答:OK{CR}{LF} 26.设备信息的硬件版本
获取指令:AT+HARDREV?{CR}{LF}
说明:获取设备信息的硬件版本,字符串格式。 返回:设备信息的硬件版本。
例:主机发送:AT+HARDREV?{CR}{LF} 芯片返回:VER1.0{CR}{LF}OK{CR}{LF} 设置指令:AT+HARDREV=<硬件版本>{CR}{LF}
说明:设置设备的硬件版本信息,字符串格式,不超过18个字符。 返回:状态。
例:主机发送:AT+HARDREV=VER1.2{CR}{LF} 芯片应答:OK{CR}{LF} 27.设备信息的软件版本
获取指令:AT+SOFTREV?{CR}{LF}
说明:获取设备信息的软件版本,字符串形式。 返回:设备信息的软件版本。
例:主机发送:AT+SOFTREV?{CR}{LF} 芯片应答:VER1.0{CR}{LF}OK{CR}{LF} 设置指令:AT+SOFTREV=<软件版本>{CR}{LF}
说明:设置设备信息的软件版本,字符串格式,不超过18个字符。 返回:状态。
例:主机发送:AT+SOFTREV=VER1.2{CR}{LF} 芯片应答:OK{CR}{LF} 28.设备信息的厂商名称
获取指令:AT+MANUNAME?{CR}{LF}
说明:获取设备信息的厂商名称,字符串形式。
14
返回:设备信息的厂商名称
例:主机发送:AT+MANUNAME?{CR}{LF} 芯片应答:WCH{CR}{LF}OK{CR}{LF} 设置指令:AT+MANUNAME=<厂商名称>{CR}{LF}
说明:设置设备信息的厂商名称,字符串格式,不超过18个字符。 返回:状态。
例:主机发送:AT+MANUNAME=TEST{CR}{LF} 芯片应答:OK{CR}{LF} 29.设备信息的PNP ID
获取指令:AT+PNPID?{CR}{LF}
说明:查询设备的PNP ID,返回的是7个字节转换成ASC格式的字符串。 返回:设备信息的PNP ID
例:主机发送:AT+PNPID?{CR}{LF} 芯片应答:01020304050607{CR}{LF}OK{CR}{LF} 设置指令:AT+PNPID=
说明:PNP ID为7个字节,即设置字符为14个,PNP ID参考蓝牙协议。 返回:状态。
例:主机发送:AT+PNPID=10203040506070{CR}{LF} 芯片应答:OK{CR}{LF} 30.广播使能控制
获取指令:AT+ADVEN?{CR}{LF} 说明:获取当前广播状态。
返回:ON与OFF,分别表示开启和关闭。
例:主机发送:AT+ADVEN?{CR}{LF} 芯片应答:ON{CR}{LF}OK{CR}{LF} 设置指令:AT+ADVEN=<控制>{CR}{LF} 说明:设置的控制参数为“ON”、“OFF”,分别表示开启和关闭,在关闭状态下接收到广播数据设置时自动开启广播使能。 返回:状态。
例:主机发送:AT+ADVEN=OFF{CR}{LF} 芯片应答:OK{CR}{LF} 31.广播数据
获取指令:AT+ADVDAT?{CR}{LF} 说明:查询当前广播的数据。 返回:广播数据。
例:主机发送:AT+ADVDAT?{CR}{LF}芯片应答:02010604FF010203{CR}{LF} 设置指令:AT+ADVDAT=<广播数据>{CR}{LF}
说明:设置广播数据,最大31字节,传输格式是ASC格式。广播数据格式参考蓝牙协议规范。 返回:状态。
例:主机发送:AT+ADVDAT=02010604FF010203{CR}{LF} 芯片应答:OK{CR}{LF} 32.序号连接
指令:AT+LINK=<序号>,<密码>{CR}{LF}
说明:扫描后,根据扫描给出的序号,指定一个序号连接,序号从1开始。 返回:命令操作状态。
例:主机发送:AT+LINK=1,123456{CR}{LF}芯片应答:OK{CR}{LF} 33.直接连接
指令:AT+CONN=
说明:可以不扫描直接连接已知MAC的蓝牙设备,MAC数据格式:xx:xx:xx:xx:xx:xx,MAC为小端格式即低字节在前,密码格式是字符串。 返回:命令操作结果。
例:AT+CONN=05:DF:39:4C:99:B4,123456{CR}{LF} 芯片应答:OK{CR}{LF} 34.主机扫描命令
15
指令:AT+SCAN=<控制>{CR}{LF} 说明:控制扫描,参数为:“ON”、“OFF”,建议开启扫描,并等到扫描自动结束,此时串口会输出扫描的结果和设备对应的序号,不一定需要发送停止命令。 返回:命令操作结果。
例:主机发送:AT+SCAN=ON{CR}{LF} 芯片应答:OK{CR}{LF} 35.默认连接参数
获取指令:AT+CONADD?{CR}{LF}
说明:查询内部保存的默认连接的参数,该参数如果有效则在芯片初始化后会自动连接该默认参数。
返回:内部保存的默认连接的参数。
例:主机发送:AT+CONADD?{CR}{LF} 芯片应答:05:DF:39:4C:99:B4,123456{CR}{LF} 设置指令:AT+CONADD=
说明:设置默认连接的参数,MAC为小端格式即低字节在前。 返回:命令执行结果。
例:主机发送:AT+CONADD=05:DF:39:4C:99:B4,123456{CR}{LF}芯片应答:OK{CR}{LF} 36.清空默认连接参数
指令:AT+CLRCONADD{CR}{LF}
说明:命令用于清空默认连接参数,并保存。 返回:指令执行状态。
例:主机发送:AT+CLRCONADD{CR}{LF} 芯片应答:OK{CR}{LF} 37.读取RSSI
指令:AT+RSSI=<控制>,<参数>{CR}{LF}
说明:读取RSSI只能在连接之后有效,命令可能会执行,蓝牙未连接时不会读取RSSI,也不会返回RSSI数据。该命令只能设置不可以查询,其中控制为“ON”、“OFF”分别表示开启和关闭。关闭是不需要参数的,参数是循环读取RSSI的周期,单位是毫秒。当参数为0时表示单次读取,单次读取的时间间隔为50mS。在芯片应答后,会根据设置的循环时间长度返回RSSI的读取值,返回的值是在AT模式下会一直返回,建议读取和关闭都是在AT状态下执行防止与数据部分由冲突,建议时间间隔不要低于50mS,一是保证串口能够正常输出,二是蓝牙处理事务是有间隔的。 返回:返回执行命令的状态。
例:主机发送:AT+RSSI=ON,1000{CR}{LF} 芯片应答:OK{CR}{LF} 例:主机发送:AT+RSSI=OFF{CR}{LF} 芯片应答:OK{CR}{LF} 38.读取ADC值
指令:AT+ADC?{CR}{LF}
说明:读取ADC的采样值,该值会以ASCII字符形式返回,返回值的有效范围是0-4095,即12位ADC采样值的范围。 返回:ADC采样值。
例:主机发送:AT+ADC?{CR}{LF} 芯片返回:2048{CR}{LF}OK{CR}{LF} 39.设置芯片睡眠模式
查询指令:AT+SLEEP?{CR}{LF} 说明:查询当前的睡眠模式。 返回:当前的睡眠模式。
例:主机发送:AT+SLEEP?{CR}{LF} 芯片返回:1{CR}{LF}OK{CR}{LF} 设置指令:AT+SLEEP=
说明:设置芯片进入低功耗时睡眠模式,x支持的参数:0(不进入低功耗)、1(睡眠模式)、2(掉电模式),其他参数不支持,设置参数会保存,并在下一次重启时生效。 例:主机发送:AT+SLEEP=1{CR}{LF} 芯片应答:OK{CR}{LF}
16
40.读取芯片的电源电压 指令:AT+BAT?{CR}{LF}
说明:读取当前的芯片的电源电压,也就是VCC电压值。 返回:一个mV单位的数值。
例:主机发送:AT+BAT?{CR}{LF} 芯片返回:2985{CR}{LF}OK{CR}{LF} 41.主机扫描显示从机电压
查询指令:AT+BDSP?{CR}{LF}
说明:查询当前主机扫描显示从机电压的设置状态。 返回:当前的设置状态。
例:主机发送:AT+BDSP?{CR}{LF} 芯片返回:ON{CR}{LF}OK{CR}{LF} 设置指令:AT+BDSP=<控制>{CR}{LF} 说明:<控制>的值为“ON”或者“OFF”,对应打开和关闭电压回显,该参数将会影响主机在扫描时显示从机的信息,具体参考下面主机模式说明里的扫描介绍。 例:AT+BDSP=ON{CR}{LF} 芯片返回:OK{CR}{LF} 42.蓝牙配置接口控制
查询指令:AT+BLECFGEN?{CR}{LF}
说明:查询当前蓝牙配置接口开关状态。该状态是指蓝牙接口可以对芯片进行参数的获取配置等是使能状态。当状态处于关闭时,蓝牙接口就不能获取和配置参数,直到使用AT命令重新打开。 返回:0{CR}{LF}OK{CR}{LF}或1{CR}{LF}OK{CR}{LF}分别对应关闭蓝牙配置接口、打开蓝牙控制接口。
例:主机发送:AT+BLECFGEN?{CR}{LF} 芯片返回:1{CR}{LF}OK{CR}{LF} 设置指令:AT+BLECFGEN=<参数>{CR}{LF}
说明:<参数>与上面查询一样,为0或者1,分别对应关闭和打开。 例:AT+BLECFGEN=1{CR}{LF} 芯片返回:OK{CR}{LF} 43.广播通道设置
查询指令:AT+BCCH?{CR}{LF}
说明:查询当前广播通道参数,返回值为:0、1、2、3对应三个通道都开启、仅在37通道广播、仅在38通道广播、仅在39通道广播。这里的37、38、39是在蓝牙协议定义的通道。参数设置后重启生效。
例:主机发送:AT+BCCH?{CR}{LF} 芯片返回:0{CR}{LF}OK{CR}{LF} 设置指令:AT+BCCH=<参数>{CR}{LF}
说明:设置广播通道参数,该参数影响广播模式和从机模式下的广播通道设置。 例:主机发送:AT+BCCH=0{CR}{LF} 芯片返回:OK{CR}{LF} 44.广播间隔设置
查询指令:AT+ADVINTER?{CR}{LF}
说明:查询当前广播间隔,返回的是数值,单位是0.625mS,默认为160,即100mS的广播间隔。 例:主机发送:AT+ADVINTER?{CR}{LF} 芯片返回:160{CR}{LF}OK{CR}{LF} 设置指令:AT+ADVINTER=<参数>{CR}{LF} 说明:设置广播时间间隔,<参数>是数值。
例:主机发送:AT+ADVINTER=1600{CR}{LF} 芯片返回:OK{CR}{LF} 45.连接间隔设置AT+CONNINTER
查询指令:AT+CONNINTER?{CR}{LF}
说明:查询当前芯片的连接间隔参数,返回是一个区间数值,分别对应最小值和最大值,在连接时蓝牙协议会协商一个通讯的时间,如果参数不满足芯片将会发起重新协商。数值单位为1.25mS。 例:主机发送:AT+CONNINTER?{CR}{LF} 芯片返回:6-16{CR}{LF}OK{CR}{LF} 设置指令:AT+CONNINTER=<参数1>-<参数2>{CR}{LF}
17
说明:设置连接间隔参数,参数范围需要满足蓝牙协议的要求,同时设置的数值不应超过65535。 例:主机发送:AT+CONNINTER=6-160{CR}{LF} 芯片返回:OK{CR}{LF} 46.内部32K时钟校准设置AT+LSICALI 查询指令:AT+LSICALI?{CR}{LF} 说明:芯片返回当前内部32K时钟校准参数,有三个参数域,中间使用逗号隔开,参数格式定义:<校准模式>,<温度差阈值>,<定时时间>{CR}{LF}。其中校准模式值定义:0:关闭校准,1:采用定时方式校准,2:采用温度差校准;温度差阈值:设定的值为温差变化差,该值设置后会在采用温度差方式校准时使用;定时时间:以mS为单位,设置两种校准方式定时时间。
例:主机发送:AT+LSICALI?{CR}{LF} 芯片返回:2,7,5000{CR}{LF}OK{CR}{LF} 设置指令:AT+LSICALI=<校准模式>,<温度差阈值>,<定时时间>{CR}{LF} 说明:设置当前LSI时钟的校准模式,参数定义参考查询指令。
例:主机发送:AT+LSICALI=2,10,10000{CR}{LF} 芯片返回:OK{CR}{LF} 47.RF校准设置AT+RFCALI
查询指令:AT+RFCALI?{CR}{LF}
说明:芯片返回当前RF校准参数,有三个参数域,中间使用逗号隔开,参数格式定义:<校准模式>,<温度差阈值>,<定时时间>{CR}{LF}。其中校准模式值定义:0:关闭校准,1:采用定时方式校准,2:采用温度差校准;温度差阈值:设定的值为温差变化差,该值设置后会在采用温度差方式校准时使用;定时时间:以mS为单位,设置两种校准方式定时时间。两个设置校准命令格式一致。 例:主机发送:AT+RFCALI?{CR}{LF} 芯片返回:2,7,5000{CR}{LF}OK{CR}{LF} 设置指令:AT+RFCALI=<校准模式>,<温度差阈值>,<定时时间>{CR}{LF} 说明:设置当前RF校准模式,参数定义参考查询指令。
例:主机发送:AT+RFCALI=2,10,10000{CR}{LF} 芯片返回:OK{CR}{LF} 48.TNOW引脚功能设置AT+TNOW 查询指令:AT+TNOW?{CR}{LF}
说明:芯片返回当前TNOW引脚参数,有两个参数域,中间使用逗号隔开,参数格式定义:
例:主机发送:AT+TNOW?{CR}{LF} 芯片返回:1,0{CR}{LF}OK{CR}{LF} 设置指令:AT+TNOW=
例:主机发送:AT+TNOW=1,0{CR}{LF} 芯片返回:OK{CR}{LF} 49.BLESTA引脚功能设置AT+BSTA 查询指令:AT+BSTA?{CR}{LF} 说明:芯片返回当前BLESTA引脚参数,有两个参数域,中间使用逗号隔开,参数格式定义:
例:主机发送:AT+BSTA?{CR}{LF} 芯片返回:1,0{CR}{LF}OK{CR}{LF} 设置指令:AT+BSTA=
例:主机发送:AT+BSTA=1,0{CR}{LF} 芯片返回:OK{CR}{LF} 50.流控功能设置AT+AFEC
查询指令:AT+AFEC?{CR}{LF} 说明:芯片返回当前流控设置以及DTR、RTS引脚输出状态,有三个参数域,中间使用逗号隔开,参数格式定义:<流控开启状态>,
18
参数取值定义:0:关闭串口流控,1:开启串口流控。DTR引脚输出电平参数取值定义:0:引脚输出高电平,1:引脚输出低电平。RTS引脚输出电平参数取值定义:0:引脚输出高电平,1:引脚输出低电平。设置参数与查询参数格式一致。流控设置仅对RTS起作用,CTS功能不受影响,设置后芯片不会保存,掉电恢复默认开启流控状态。DTR和RTS设置复用成其他引脚功能时,设置不会对其电平有影响,获取参数还是可以获取到当前的输出状态。
例:主机发送:AT+AFEC?{CR}{LF} 芯片返回:1,1,1{CR}{LF}OK{CR}{LF}
设置指令:AT+AFEC=<流控开启状态>,
说明:命令获取配置里的GPIO使能字节,该值的HEX格式的每一位代表相对应的GPIO开启或关闭状态,获取的是一个HEX转换的ASCII,比如:0xFF,表示二进制的11111111,bit7-bit0分别对应的是GPIO7-GPIO0,其中GPIO3-GPIO0为同步传输不被该参数影响,为0该GPIO功能关闭,为1该GPIO功能开启。
返回:执行的状态。
例:主机发送:AT+IOEN?{CR}{LF} 芯片应答:FF{CR}{LF}OK{CR}{LF} 设置指令:AT+IOEN=<8个IO使能>{CR}{LF}
说明:设置的参数格式与获取的参数格式一致,每一个位表示对应的IO使能状态,设置完成主机将保存参数。 返回:执行状态
例:主机发送:AT+IOEN=0F{CR}{LF},关闭GPIO7-GPIO4功能 芯片应答:OK{CR}{LF}
7、操作说明
7.1 广播模式
Step1.进入AT模式设置基本参数,波特率、工作模式等,重启芯片,串口会按照设置过的参数工作;
Step2.进入AT模式;
Step3.发送设置广播命令参数,建议发送间隔大于等于100mS,数据包大小必须不超过广播包大小,包的数据格式参考蓝牙协议;
Step4.使用软件监控广播数据测试。
7.2 主机模式
Step1.进入AT模式设置基本参数,波特率、工作模式等,重启芯片,串口会按照设置过的参数
工作,可以设置默认连接地址使芯片自动连接该地址,或者使用扫描连接的方式;
Step2.进入AT模式,使用设置默认连接地址方式则等待连接成功后才能发送数据,可以通过查询蓝牙连接状态获取连接状态,连接成功后才可以发送数据,不然数据会被暂存或者丢弃。
使用扫描连接的方式则发送扫描命令,扫描的时候输出的数据格式举例说明:“1. MAC:4c:df:39:4c:99:b4 RSSI -37dB{CR}{LF}”,格式为“<序号><.><空格>
19
重新发起连接,串口会输出“PAIR ERR{CR}{LF}”字符串此时需要检查密码参数是否正确。
需要注意的是如果使用查询蓝牙连接状态查询到连接成功,不是代表可以立即发送数据,连接完成后蓝牙需要进行连接的初始化,此时如果透传数据,则会保存等待连接初始化完成后进行传输或者该数据会被丢弃,扫描连接或者直接输入连接地址连接的方式则在配置连接信息后等待连接成功字符串输出;扫描连接的方式必须等到扫描结束后启动序号连接。 Step3.芯片通知连接成功后可以退出AT模式;
Step4.与从机进行串口透传,在透传期间进入AT配置时会导致蓝牙接收的数据直接丢弃。
7.3 从机模式
Step1.设置基本参数,波特率、工作模式等,芯片重启,串口会按照设置过的参数工作,可以设
置设备模式的相关设置信息参数。
Step2.可以进入AT模式进行连接状态的查询,也可以直接进行透传,未连接时,透传的数据会被直接丢弃;
Step3.使用软件或者主机连接芯片进行数据透传,在透传期间AT配置时会导致蓝牙接收的数据直接丢弃。
8、蓝牙接口配置
8.1 蓝牙接口配置说明
CH9141工作在蓝牙从机模式下,可以通过蓝牙对芯片进行配置操作。配置通道是自定义传输通道,UUID为0XFFF3。传输格式严格按照帧传输,在传输时将一帧拆分成几包蓝牙传输的数据传输。蓝牙读取应答也是需要将一帧数据读完才能结束。配置功能支持通知服务,当蓝牙主机打开通知服务后,芯片会上报串口发送状态和MODEM信号状态。
8.2 格式说明
传输数据帧格式如表格所示:
字段定义 字段长度
命令码 1
数据长度
2
状态参数码 数据段
1
N
校验 1
命令码:1个字节,表示该帧的操作,其中主机发送的命令码范围是0x00-0x7F,从机应答命令码:主机命令码最高位置1(主机命令码|0x80);
数据长度:2个字节,大小为N+2,即状态参数码、数据段、校验的总长度; 状态参数码:1个字节,在传输不同的命令码时充当状态或者参数的信息段; 数据段:N个字节,长度是传输数据大小,数据中的数值设置统一采用小端格式; 检验:1个字节,值为状态参数码和数据段的累加和。
主机发送一帧配置帧后,必须获取从机的应答帧,除了没有应答的帧如复位帧。
8.3 配置参数
8.3.1 参数说明 配置参数包括两个:蓝牙配置信息和从机模式的设备信息。蓝牙配置信息主要配置蓝牙工作模式、串口参数、版本信息等等,从机模式的设备信息主要配置在从机模式下的设备信息属性包括:System ID、Model Number String、Serial Number String、Firmware Revision String、Hardware Revision String、Software Revision String、Manufacturer Name String、PnP ID。
20
8.3.2 蓝牙配置信息 偏移位置 大小 名称
0 1 参数标志 1 20 设备名称 21 6 设备MAC地址 27 6 连接MAC地址 33 2 版本号 35 30 开机语 65 4 串口波特率 69 1 串口数据位 70 1 串口校验位 71 1 串口停止位 72 2 串口打包超时 74 4 低功耗睡眠时间 78 1 低功耗模式 79 1 芯片工作模式 80 1 芯片发送功率 81 1 广播使能 82 1 广播模式 83 2 广播时间 85 2 最小连接间隔 87 2 最大连接间隔 89 2 超时时间 91 20 设备名称
111 112 113 119 123 147 171 172
1 1 6 4 24 24 1 1
密码使能 密码长度 密码
默认连接的MAC标志 默认连接的MAC
功能 辨识参数有效性 主机识别到的设备名 当前芯片的MAC地址 记录连接后对方MAC 当前芯片的版本
通讯串口的波特率 通讯串口的数据位 通讯串口的校验位 通讯串口的停止位 通讯串口的超时时间 配置自定义睡眠时间 设定低功耗模式 设置芯片蓝牙工作模式 设置蓝牙发送功率
保留参数 保留参数 保留参数 设置默认最小连接参数 设置默认最大连接参数 设置蓝牙连接超时参数 在Generic Access的
DeviceName中显示
默认保存4组默认连接
参数 4*6:4组默认连接MAC
参数
备注 不要修改该值 在广播包应答包中 建议不要修改
只读 只读 保留参数
保留参数
广播模式参数 广播模式参数 广播模式参数 从机模式参数 从机模式参数 从机模式参数 从机模式参数 从机模式参数 从机模式参数 从机模式参数 主机模式参数 主机模式参数 主机模式参数 每个bit对应一个IO bit7-0对应GPIO7-0 每个bit对应一个IO bit7-0对应GPIO7-0
默认连接的MAC的密码 4*6:4组默认连接MAC的
密码参数
GPIO模式设置 GPIO电平值设置
设置GPIO输入输出 1:输出 0:输入 设置GPIO输出电平 1:输出高 0输出低
8.3.3 从机设备信息 偏移位置
0 1 9
大小 1 8 20
名称 参数标志 System ID Model Number String
功能 辨识参数有效性
系统ID 设备号
备注 不要修改该值
字符串格式
21
29 49 69 89 109 129
20 20 20 20 20 7
Serial Number String Firmware Revision String Hardware Revision String Software Revision String Manufacturer Name String
PnP ID
系列号 固件版本号 硬件版本号 软件版本号 厂商名称 PnP ID
字符串格式 字符串格式 字符串格式 字符串格式 字符串格式
8.3.4 蓝牙控制参数
该参数为版本v1.04后支持。参数包含了一个“块”大小512字节,参数目前使用的范围参考下面表格,其他未使用部分保留给将来使用。 偏移位置
0 1 4 5
大小 1 3 1 2
名称 IMAGE信息 保留参数 参数标志 版本信息
功能 当前的image信息
辨识参数有效性 当前芯片的版本 开启和关闭蓝牙配置接
口
备注 不要修改该值 不要修改该值 不要修改该值 不要修改该值 设置参数为0x00和0x01,对应关闭和开启,关闭后蓝牙将不能访问芯片配置 设置值为0x07、0x01、0x02和0x04,分别对应三个通道广播,仅在37通道广播、仅在38通道广播和仅在39通道广播
不要修改该值 0:关闭 1:开启 不要修改该值 v1.06版本增加
7 1 蓝牙配置接口使能
8 1 广播通道配置 配置广播通道参数
9 10 12
1 2 1
控制配置,按位定义开
关
保留控制配置 内部LSI校准方式
bit7:参数有效性 bit6:扫描时显示从机
电源电压
0:关闭校准 1:采用定时方式 2:采用温度差方式 0:关闭校准 1:采用定时方式 2:采用温度差方式
温度差值 温度差值 mS单位的定时时间 mS单位的定时时间 按位定义GPIO使能 bit4:极性控制 bit0:使能 bit4:极性控制
13 1 蓝牙RF校准方式 内部LSI校准的温度变
化阈值 蓝牙RF校准的温度变化
阈值 内部LSI校准定时时间 蓝牙RF校准定时时间
GPIO功能使能 TNOW引脚使能 BLESTA引脚使能
14 15 16 20 21 22 23
1 1 4 4 1 1 1
v1.07版本增加
22
bit0:使能
24 25-511
1
保留参数 保留参数
不要修改该值
8.4 配置命令说明
8.4.1 获取配置
主机发送获取配置帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 功能 0x01 0x00 0x02 0x01 空 0x01 获取蓝牙配置信息 0x01 0x00 0x02 0x02 空 0x02 获取从机模式的设备信息 0x01 0x00 0x02 0x03 空 0x02 获取蓝牙控制参数 芯片应答: 命令码 数据长度 状态参数码 数据段 检验 功能 0x81 配置信息长度+2 0x01 配置信息 check 返回蓝牙配置信息 0x81 设备信息长度+2 0x02 设备信息 check 返回从机模式的设备信息 0x81 蓝牙控制参数长0x03 蓝牙控制参check 返回蓝牙控制参数
度+2 数
8.4.2 配置参数
主机发送配置参数帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 功能 0x02 配置信息长度+2 0x01 配置信息 check 配置蓝牙配置参数 0x02 设备信息长度+2 0x02 设备信息 check 配置从机模式的设备信息 0x02 蓝牙控制参数长0x03 蓝牙控制参check 配置蓝牙控制参数
度+2 数
芯片应答: 命令码 数据长度 状态参数码 数据段 检验 功能 0x82 0x00 0x02 0x01 空 0x01 配置参数应答 0x82 0x00 0x02 0x02 空 0x02 配置设备信息应答 0x82 0x00 0x02 0x03 空 0x03 配置蓝牙控制参数应答
8.4.3 重置参数
主机发送重置参数帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 功能 0x03 0x00 0x02 0x01 空 0x01 重置蓝牙配置参数 0x03 0x00 0x02 0x02 空 0x02 重置从机模式的设备信息 0x03 0x00 0x02 0x03 空 0x02 重置蓝牙控制参数 芯片应答: 命令码 数据长度 状态参数码 数据段 检验 功能 0x83 0x00 0x02 0x01 空 0x01 重置参数应答 0x83 0x00 0x02 0x02 空 0x02 重置设备信息应答 0x83 0x00 0x02 0x03 空 0x03 重置蓝牙控制参数应答
23
8.4.4 复位芯片
主机发送重置参数帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 0x04 0x00 0x02 0x00 空 0x00 芯片在接复位帧会直接复位,不应答该帧。
8.4.5 GPIO相关命令
主机发送GPIO配置参数帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 0x05 0x00 0x04 0x01 NUM+DIR check
功能 重置蓝牙配置信息
功能
设置NUM号的的方向
NUM号:0x04 - 0x07 DIR:0x00输入,0x01输出 读取NUM号GPIO的电平状态 设置NUM号GPIO的电平值 VAL:0x00低电平,0x01高电平
0x05 0x05 0x05 0x05 命令码 0x85 0x85 0x85 0x85 0x85
0x00 0x03 0x00 0x04 0x00 0x04 0x00 0x02 数据长度 0x00 0x03 0x00 0x04 0x00 0x03 0x00 0x04 0x00 0x04
0x02 0x03 0x04 0x05 状态参数码 0x01 0x02 0x03 0x04 0x05
NUM NUM+VAL GPIO1+GPIO3
空 数据段 STA NUM+VAL STA
check check
check 同步参数,一般用于两个芯片连接,其他主机不需要操作 0x05 检验 check check check
读取ADC的值 功能
返回设置GPIO的状态, 0表示成功,其他表示失败 返回读取的GPIO的电平状态 返回设置电平值的状态 0表示成功,其他表示失败 同步参数,一般用于两个芯片连接,其他主机不需要操作 返回ADC的读取的值,2字节
芯片应答:
GPIO1+GPIO3 check ADC_VAL
check
8.4.6 串口参数设置
主机发送串口配置参数帧,帧格式如下: 命令码 数据长度 状态参数码 数据段 检验 0x06 0x00 0x09 0x00 串口参数 check 串口参数格式定义: 偏移位置 大小 名称 功能
0 4 波特率 4 1 数据位 串口数据长度 5 1 停止位 停止位格式设置
功能 配置串口参数
备注 小端格式 参数取值:5-8 参数取值:1-2 0:无校验
1:奇校验 2:偶校验 3:标志位 4:空白位
6 1 校验位 奇偶校验位格式选择
24
芯片应答: 命令码 0x86
数据长度 0x00 0x09
状态参数码 0x00
数据段 串口参数
检验 check
功能
应答参数内容与设置一致
8.4.7 流控功能设置
主机发送流控功能设置帧,帧格式如下: 命令码 0x07
数据长度 0x00 0x05
大小 1 1 1
状态参数码 0x00
名称 流控功能使能 DTR引脚设置 RTS引脚设置
数据段 流控功能参数
检验 check 功能
DTR输出电平设置 RTS输出电平设置
功能 配置流控功能
备注 0:关闭流控功能 1:开启流控功能 0:DTR引脚输出高 1:DTR引脚输出低 0:RTS引脚输出高 1:RTS引脚输出低 功能
应答参数内容与设置一致
流控功能参数格式定义: 偏移位置
0 1 2 芯片应答: 命令码 0x87
数据长度 0x00 0x05
状态参数码 0x00
数据段 流控功能参数
检验 check
8.4.8串口状态以及MODEM状态上报 芯片应答: 命令码 0x88
数据长度 0x00 0x04
大小 1
状态参数码 0x00 名称 串口状态
数据段 串口状态参数
检验 check 功能 bit1:MODEM变化 bit0:串口发送空
bit7:DCD引脚的位反,为1有效 bit6:RI引脚的位反,为1有效 bit5:DSR引脚的位反,为1有效 bit4:CTS引脚的位反,为1有效 bit3:为1表示DCD引脚有变化 bit2:为1表示RI引脚有变化 bit1:为1表示DSR引脚有变化 bit0:为1表示CTS引脚有变化
功能
串口和MODEM状态上报
备注 对应位值定义: 置1:状态有效 置0:状态无效
串口状态参数格式定义: 偏移位置
0
1 1 MODEM状态
配置通道通知属性被打开后,CH9141检测串口状态变化后通过蓝牙发送该帧给主机。
9、参数
9.1 绝对最大值
临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏
名称 TA
参数说明 工作时的环境温度
最小值 -40
最大值 85
单位 ℃
25
TS VCC VIO
存储时的环境温度 系统电源电压 输入或者输出引脚上的电压
-40 -0.4 -0.4
105 3.9 VCC+0.4
℃ V V
9.2 电气参数
名称 VCC VIL VIH VOL VOH IUP
参数说明 电源电压 低电平输入电压 高电平输入电压 低电平输出电压 高电平输出电压
内置上拉电阻的输入端的输入电流
最小值 2.5 0 2.0 0 25
典型值 3.3 0.3 60
最大值 3.6 0.9 VCC 0.4 VCC 90
单位 V V V V V uA
VCC-0.4 VCC-0.3
相关推荐: