Skip to content

X-B01是一款基于BLE 5.4的低功耗蓝牙模块,AT指令丰富,支持自定义片上IO、PWM。32位 CPU 主频高达 32MHz,体积小,外围电路简单。广泛应用于智能穿戴、便携式医疗、运动健身设备,也能用于智慧家庭、消费电子、工业控制

模块特性

硬件特性

Ø 模组封装:12mm*15.8mm (邮票孔)-18PIN

Ø 硬件设计:带屏蔽罩设计,加强干扰隔离。外围电路简单

Ø 工作频段:2400MHz ~ 2483.5MHz

Ø 调制方式:GFSK

Ø 频偏:±20kHz

Ø 发射功率:-20dbm ~ +10dbm

Ø 接收灵敏度:灵敏度-97dbm

Ø 数据接口:Uart

Ø 支持内部 RTC 实时时钟

Ø 超低功耗:功耗测试

Ø 工作电压:1.8V ~ 3.6V

Ø 工作温度:-40℃ ~ +85℃

Ø 自定义IO:指令自定义IO、PWM

软件特性

Ø 支持全功能 BT5.4 协议

Ø 串口透明传输,无需任何蓝牙协议栈应用经验;

Ø 支持配合客户需求,量身定制专属软件;32位 CPU 主频高达 32MHz,接口资源丰富

Ø 支持 AT 指令,丰富的指令集用于配置模块参数。

Ø 支持 AT 指令低功耗配置

Ø 支持 AT 指令修改广播间隔,修改串口波特率,修改模组名

模块出厂默认参数配置

参数默认值
串口配置115200bps
模块名称XSGEE-BLE-#MAC(#MAC为实际地址后4位)
广播间隔200ms
连接间隔10ms-50ms
发射功率5dbm
BLE 主服务、读、写通道FFF0/FFF1/FFF2

封装尺寸脚位定义

模块引脚序号模块脚位名称芯片脚位名称输入/输出功能说明
Pin1ANTANT-外接天线引脚(未启用)
Pin2NCNC-保留
Pin3NCNC-保留
Pin4NCNC-保留
Pin5DL_TXP9-程序烧录TX
Pin6SLEEPP7I/O工作状态下拉低800ms进入休眠模式,休眠模式下拉高800ms进入工作模式。AT+OFF进入关机模式,使用引引脚唤醒
Pin7STATE_LEDP3I/O工作状态灯,详见AT+LED指令
Pin8UART_RXP2串口接收
Pin9UART_TXP34串口发送
Pin10VCCVCC-电源输入
Pin11GNDGND-电源地接口
Pin12IO1P14I/O可配置IO/PWM口,详见AT+IO
Pin13RESETRESET-复位口,拉低1500ms复位
Pin14DL_RXP11-程序烧录口RX
Pin15IO4P20I/O可配置IO/PWM口,详见AT+IO
Pin16IO3P18I/O可配置IO/PWM口,详见AT+IO
Pin17IO2P15I/O可配置IO/PWM口,详见AT+IO
Pin18NCNC-保留

模组封装尺寸

电气特性

绝对最大额定值

参数最小值最大值单位
存储温度-40+85
VDD-0.33.6V
其它管脚-0.3VDD+0.3V
ESD(Human Body)8kV
ESD(Charged Device)500V

低功耗

模式功耗
关机0.3uA
休眠(不保留SRAM,32Khz)1uA
休眠(保留SRAM,32Khz)4uA
接收数据(3.3V)8mA
发送数据(3.3V 0dBm)8.6mA

推荐运行条件

参数最小值推荐值最大值单位
工作温度-4027+85
VDD1.833.6V

指令通用说明

  1. 指令返回格式统一为+<指令名>:<返回内容>
  2. 错误返回通常为+<指令名>:ERR,部分指令有特定错误返回(如长度错误 ERR_LEN)

基础指令

1. AT

  • 功能:测试指令通信是否正常
  • 格式AT
  • 返回AT
  • 说明:用于验证设备与主机之间的 AT 指令通信链路是否通畅
  • 示例:发送AT,返回AT,表示通信链路正常

2. AT+REBOOT

  • 功能:重启模块
  • 格式AT+REBOOT
  • 返回+REBOOT:OK
  • 示例:发送AT+REBOOT,返回+REBOOT:OK后模块将重启

3. AT+DEFAULT

  • 功能:恢复设备出厂设置
  • 格式AT+DEFAULT
  • 返回+DEFAULT:OK
  • 说明:恢复所有参数至默认值,包括设备名称、波特率、功率等参数
  • 示例:发送AT+DEFAULT,返回+DEFAULT:OK后设备参数恢复为出厂状态

4. AT+VER

  • 功能:查询设备固件版本
  • 格式AT+VER?
  • 返回+VERSION:1.0.3
  • 说明:返回当前设备的固件版本信息
  • 示例:发送AT+VER?,返回+VERSION:1.0.3,表示当前固件版本为 1.0.3

设备信息指令

1. AT+NAME

  • 功能:设置或查询设备名称

  • 设置格式AT+NAME=<name>,如果name中包含#MAC,则会自动替换成MAC后两位

  • 查询格式AT+NAME?

  • 返回

    • 设置成功:+NAME:OK
    • 查询返回:+NAME:<当前设备名称>
  • 说明:设备名称用于 BLE 广播,名字最长20字节

  • 示例

    • 设置:发送AT+NAME=MyDevice,返回+NAME:OK,设备名称被设置为 "MyDevice"
    • 设置:发送AT+NAME=MyDevice-#MAC,返回+NAME:OK,设备名称被设置为 "MyDevice"
    • 查询:发送AT+NAME?,返回+NAME:MyDevice,表示当前设备名称为 "MyDevice"

2. AT+ADDR

  • 功能:设置或查询设备 MAC 地址

  • 设置格式AT+ADDR=<mac>(格式:12 位十六进制数,如 AABBCCDDEEFF)

  • 查询格式AT+ADDR?

  • 返回

    • 设置成功:+ADDR:OK
    • 查询返回:+ADDR:<当前MAC地址>
  • 说明:设置的 MAC 地址将被写入 Flash 保存

  • 示例

    • 设置:发送AT+ADDR=AABBCCDDEEFF,返回+ADDR:OK,MAC 地址被设置为 "AABBCCDDEEFF"
    • 查询:发送AT+ADDR?,返回+ADDR:AABBCCDDEEFF,表示当前 MAC 地址为 "AABBCCDDEEFF"

通信参数指令

1. AT+BAUD

  • 功能:设置或查询 UART 波特率

  • 设置格式AT+BAUD=<baudrate>

  • 支持的波特率:4800、9600、14400、19200、38400、57600、115200、500000、1000000

  • 查询格式AT+BAUD?

  • 返回

    • 设置成功:+BAUD:OK
    • 查询返回:+BAUD:<当前波特率>
  • 说明:设置后立即生效并写入 Flash,设备会重新初始化 UART

  • 示例

    • 设置:发送AT+BAUD=9600,返回+BAUD:OK,波特率被设置为 9600
    • 查询:发送AT+BAUD?,返回+BAUD:9600,表示当前波特率为 9600

2. AT+RFPW

  • 功能:设置或查询射频发射功率

  • 设置格式AT+RFPW=<power>

  • 功率参数对应表

    • 0: 5dBm(默认)
    • 1: 0dBm
    • 2: -5dBm
    • 3: -20dBm
    • 4: 10dBm
  • 查询格式AT+RFPW?

  • 返回

    • 设置成功:+RFPW:OK
    • 查询返回:+RFPW:<当前功率值,如5dBm>
  • 示例

    • 设置:发送AT+RFPW=2,返回+RFPW:OK,发射功率被设置为 - 5dBm
    • 查询:发送AT+RFPW?,返回+RFPW:-5dBm,表示当前发射功率为 - 5dBm

BLE 参数指令

1. AT+AINT

  • 功能:设置或查询 BLE 广播间隔

  • 设置格式AT+AINT=<interval>

  • 参数范围:32-6400(单位:625us,对应 20ms-4s)

  • 查询格式AT+AINT?

  • 返回

    • 设置成功:+AINT:OK
    • 查询返回:+AINT:<当前广播间隔>
  • 说明:重启有效

  • 示例

    • 设置:发送AT+AINT=320(对应 200ms),返回+AINT:OK,广播间隔被设置为 320
    • 查询:发送AT+AINT?,返回+AINT:320,表示当前广播间隔为 320

2. AT+CINT:设置或查询 BLE 连接间隔

  • 功能:配置或获取 BLE 连接状态下的通信间隔参数,影响设备与连接设备之间的数据交互频率

  • 设置格式AT+CINT=<min_interval>,<max_interval>

    • 参数说明:
      • min_interval:最小连接间隔,范围为 6-3200(单位:1.25ms,对应 7.5ms-4000ms)
      • max_interval:最大连接间隔,范围需大于等于min_interval,同上述单位和范围
  • 查询格式AT+CINT?

  • 返回信息

    • 设置成功:+CINT:OK
    • 设置失败(参数无效):+CINT:ERR
    • 查询返回:+CINT:<当前最小间隔>,<当前最大间隔>
  • 说明

    • 连接间隔越小,数据交互越频繁,实时性越高,但功耗相对增加
    • 连接间隔需在 BLE 协议规定范围内,超出范围会返回错误
    • 重启生效
  • 示例

    • 设置:发送AT+CINT=8,40(最小 10ms,最大 50ms),返回+CINT:OK,连接间隔被设置完成
    • 查询:发送AT+CINT?,返回+CINT:8,40,表示当前最小连接间隔为 8、最大为 40
    • 错误示例:发送AT+CINT=5,10(min_interval 小于 6),返回+CINT:ERR

3. AT+CTOUT

  • 功能:设置或查询 BLE 连接超时时间

  • 设置格式AT+CTOUT=<timeout>

  • 参数范围:10-3200(单位:10ms,对应 100ms-30s)

  • 查询格式AT+CTOUT?

  • 返回

    • 设置成功:+CTOUT:OK
    • 查询返回:+CTOUT:<当前超时时间>
  • 说明

    • 重启生效
  • 示例

    • 设置:发送AT+CTOUT=300(对应 3s),返回+CTOUT:OK,超时时间被设置为 300
    • 查询:发送AT+CTOUT?,返回+CTOUT:300,表示当前超时时间为 300

4. AT+CONT

  • 功能:设置或查询设备是否可连接

  • 设置格式AT+CONT=<mode>(0: 不可连接,1: 可连接)

  • 查询格式AT+CONT?

  • 返回

    • 设置成功:+CONT:OK
    • 查询返回:+CONT:<当前模式>
  • 说明

    • 重启生效
  • 示例

    • 设置:发送AT+CONT=1,返回+CONT:OK,设备被设置为可连接模式
    • 查询:发送AT+CONT?,返回+CONT:1,表示当前设备为可连接模式

电源管理指令

1. AT+POWER

  • 功能:设置或查询电源模式

  • 设置格式AT+POWER=<mode>[,<sleep_time>]

    • mode: 0(正常模式)、1(睡眠模式 )
    • sleep_time: 仅在睡眠模式下有效,设置自动睡眠超时时间,默认为10秒
  • 查询格式AT+POWER?

  • 返回

    • 设置成功:+POWER:OK
    • 查询返回:+POWER:<当前模式>,<睡眠超时时间>
  • 说明:仅在从机模式下有效

  • 示例

    • 设置正常模式:发送AT+POWER=0,返回+POWER:OK
    • 设置睡眠模式(超时 30 秒):发送AT+POWER=1,30,返回+POWER:OK
    • 查询:发送AT+POWER?,返回+POWER:1,30,表示当前为睡眠模式,自动睡眠超时时间 30 秒

2. AT+OFF

  • 功能:设备关机
  • 格式AT+OFF
  • 返回+OFF:OK
  • 说明:设备进入关机状态,可通过拉高SLEEP引脚唤醒
  • 示例:发送AT+OFF,返回+OFF:OK后设备进入关机状态

其他指令

1. AT+LED

  • 功能:设置或查询 LED 模式
  • 设置格式AT+LED=<mode>
    • 0: 任何情况下灯常灭
    • 1: 启动后未连接灯常亮,连接后灯闪(默认)
    • 2: 启动后未连接灯常灭,连接后灯闪
  • 查询格式AT+LED?
  • 返回
    • 设置成功:+LED:OK
    • 查询返回:+LED:<当前模式>
  • 示例
    • 设置:发送AT+LED=1,返回+LED:OK,LED 被设置为开启模式
    • 查询:发送AT+LED?,返回+LED:1,表示当前 LED 为开启模式

2. AT+IO

  • 设置格式AT+IO=<mode>
    • 配置为输入:I,1,1。
      • 参数1:I为输入模式
      • 参数2:引脚,1为IO1,2为IO2,3为IO3,4为IO4
      • 参数3:默认上下拉配置,1为上拉,2为下拉
      • 状态变化通知:当外部状态变化时,会通过串口和BLE发出通知
        • 串口:+I1:0\r\n。其中I1的1表示当前IO口,0表示状态
        • BLE通知服务(需要订阅通知):$X#D#@IN1:0&44\r\n。其中IN1中的1代表IO口,0表示IO口状态。协议详情见文本协议一文
    • 配置为输出:O,1,1。
      • 参数1:O为输出模式
      • 参数2:引脚,1为IO1,2为IO2,3为IO3,4为IO4
      • 参数3:默认输出配置,1为上拉,2为下拉
      • 可以通过APP下发协议控制IO高低:$X#D#@OUT1:0&0D\r\n
    • 配置为PWM:P,1,0,50。
      • 参数1:O为输出模式
      • 参数2:引脚,1为IO1,2为IO2,3为IO3,4为IO4
      • 参数3:分频参数,可选值为0: 158kHz;1:79kHz;2:39kHz;3:13kHz;4:10kHz;5:5kHz;6:1.5kHz;7:1.23kHz
      • 参数4:默认占空比,0~100
      • 可以通过APP下发协议控制PWM占空比:$X#D#@PWM1:60&3F\r\n,配置PWM1占空比为60
  • 查询格式
    • 查询所有IO配置 AT+IO?
    • 查询指定IO配置 AT+IO=?,1
  • 返回
    • 设置成功:+IO:OK
    • 查询返回:+IO1:<当前IO配置>
  • 示例
    • 设置IO1为输入引脚,默认下拉:AT+IO=I,1,0
    • 设置IO2为输出引脚,默认值为1:AT+IO=O,2,1
    • 设置IO3为PWM输出,默认频率40kHz,占空比为50:AT+IO=P,3,1,50
    • 查询IO4引脚配置:AT+IO=?,4,返回+IO4:I,1,1

3. AT+AUTH

  • 功能:设置或查询自动认证模式

  • 设置格式AT+AUTH=<mode>

  • 查询格式AT+AUTH?

  • 返回

    • 设置成功:+AUTH:OK
    • 查询返回:+AUTH:<自动校验开关>,<连接状态>
    • 自动校验开关说明:0(不自动校验)、1(连接自动校验)
    • 连接状态说明:0(未连接)、1(已连接未认证)、2(已连接且认证成功)
  • 示例

    • 设置:发送AT+AUTH=1,返回+AUTH:OK,自动认证模式被设置为 1
    • 查询:发送AT+AUTH?,返回+AUTH:1,0,表示当前模式为 1,设备未连接

4. AT+TXMOD

  • 功能:设置或查询数据传输模式

  • 设置格式

    AT+TXMOD=<mode>
    • 1: 传输所有数据并执行命令
    • 2: 传输所有数据但不执行命令
    • 3: 仅执行命令不传输数据
  • 查询格式AT+TXMOD?

  • 返回

    • 设置成功:+TXMOD:OK
    • 查询返回:+TXMOD:<当前模式>
  • 示例

    • 设置:发送AT+TXMOD=2,返回+TXMOD:OK,传输模式被设置为 2
    • 查询:发送AT+TXMOD?,返回+TXMOD:2,表示当前传输模式为 2

5. AT+PID

  • 功能:设置或查询项目 ID

  • 设置格式AT+PID=<pid>

  • 查询格式AT+PID?

  • 返回

    • 设置成功:+PID:OK
    • 设置失败(长度错误):+PSEC:ERR_LEN
    • 查询返回:+PID:<项目ID是否存在,1:存在,0:不存在>
  • 说明:项目ID长度为16字符

  • 示例

    • 设置(16 字符):发送AT+PID=1234567890abcdef,返回+PID:OK
    • 设置(长度错误):发送AT+PID=123(不足 16 字符),返回+PSEC:ERR_LEN
    • 查询:发送AT+PID?,返回+PID:1,表示项目 ID 已存在

6. AT+PSEC

  • 功能:设置或查询项目密钥

  • 设置格式AT+PSEC=<secret>

  • 查询格式AT+PSEC?

  • 返回

    • 设置成功:+PSEC:OK
    • 设置失败(长度错误):+PSEC:ERR_LEN
    • 查询返回:+PSEC:<密钥是否存在,1:存在,0:不存在>
  • 说明:密钥长度为 32 字符

  • 示例

    • 设置(32 字符):发送AT+PSEC=1234567890abcdef1234567890abcdef,返回+PSEC:OK
    • 设置(长度错误):发送AT+PSEC=123(不足 32 字符),返回+PSEC:ERR_LEN
    • 查询:发送AT+PSEC?,返回+PSEC:1,表示项目密钥已存在

7. AT+PKEY

  • 功能:设置或查询项目校验格式

  • 设置格式AT+PKEY=<key>

  • 查询格式AT+PKEY?

  • 返回

    • 设置成功:+PKEY:OK
    • 查询返回:+PKEY:<密钥是否存在,1:存在,0:不存在>
  • 说明:key最长40字节

  • 示例

    • 设置:发送AT+PKEY=testkeyformat123,返回+PKEY:OK
    • 查询:发送AT+PKEY?,返回+PKEY:1,表示项目校验格式已存在

8. AT+TS

  • 功能:查询时间戳
  • 格式AT+TS?
  • 返回+TS:<当前时间戳>
  • 示例:发送AT+TS?,返回+TS:1680000000000,表示当前时间戳为 1680000000000

9. AT+AVDA

  • 功能:查询广播数据
  • 格式AT+AVDA?
  • 返回+AVDA:<广播数据>
  • 说明:用于查询当前 BLE 广播数据内容
  • 示例:发送AT+AVDA?,返回+AVDA:3131323233333434353536362431303133613165393565333665393231

通知说明

状态通知

通知格式触发场景 / 含义
+READY\r\n模块上电就绪,广播已经开始
+CONNECTED:master_mac\r\n蓝牙已连接,master_mac主机MAC
+DISCONNECTED:master_mac\r\n蓝牙已断开,master_mac主机MAC
+NOTIFYEN\r\n主机已经订阅模块通知
+NOTIFYDIS\r\n主机取消订阅模块通知
+SLEEP\r\n设备进入休眠模式时发送
+WAKEUP\r\n设备从休眠状态被唤醒时发送
+AUTH:1\r\n设备与APP校验成功
+AUTH:0\r\n设备与APP校验失败
+HRESET\r\n硬件复位通知

检验异常通知

模块连接后,默认会与APP进行校验。在校验过程中出现异常发会出下面的通知

异常通知格式触发场景
+PKEY:0\r\n项目密钥(project_key)为空时
+PSEC:0\r\n项目密钥(project_secret)为空时
+PID:0\r\n项目 ID(project_id)为空时
+MAC:0\r\n设备 MAC 地址(mac)为空时
+TIMESTAMP:0\r\n时间戳(timestamp)为空时

模块布局参考建议

Ø 模块天线远离其他电路,下方不走线、不铺铜。

Ø 用户最终产品外壳靠近天线部分不能采用金属材质(包括含金属颗粒涂料的喷涂)。

Ø 模块的接入电源建议使用磁珠进行隔离。

Ø 请检查电源稳定性,电压不能大幅频繁波动。

Ø 器件接地要良好,减少寄生电感。

贴片生产注意事项

用户批量贴片时,回流焊温度不要超过 245℃,请参考图 4 温度曲线。

外围电路