SPMOD - BT

概述

SPMOD-BT(蓝牙 模块)采用 YDJ-23。

SPMOD - BT 介绍

  • 采用 Sipeed-SPMOD 接口(2.54mm * 8PIN 排针),统一 MaixPy 开发板接口
  • 利用 SP-MOD UART 和蓝牙模块通讯
  • JDY-23蓝牙模块:支持BLE 5.0(兼容 BLE4.0、BLE4.2)。具有UART接口。模块支持AT指令控制。具备超低功耗特性和高可靠性
  • 板载两个状态指示LED,模块状态一目了然
  • 模块尺寸:25.6*20.2*3.2mm

JDY-23 蓝牙介绍:

功能特点: 参数
工作频段: 2.4G
发射功率: 4db(最大)
通信接口: UART
工作电压: 1.8V~3.6V
工作温度: -40℃ - 80℃
天线: 板载PCB天线
接收灵敏度: -97dbm
主从支持: 从机
蓝牙版本: BLE 5.0(兼容 BLE4.0、BLE4.2)
唤醒状态电流: 800uA(广播模式)
浅睡状态电流: <50uA (广播模式)
深度睡眠电流: 9uA (无广播)
默认串口波特率: 9600

SPMOD_BT 模块引脚定义:

引脚序号 引脚名称 类型 引脚说明
1 GND G 模块电源地
2 AWK I/O 模块休眠唤醒引脚,低有效
3 STA I/O 蓝牙连接状态连接,连接成功时输出高电平
4 RX I 模块UART数据接受引脚,连接上位机TX
5 3V3 V 模块电源输入正
6 --- NC 悬空引脚,无功能
7 RST I/O 模块复位引脚,低电平有效
8 TX O 模块UART数据发送引脚,连接上位机的RX
  • 接线方式:
MCU:FUN(IO) SP_BT
UART:TX(IO_7) RX
USRT:RX(IO_6) TX
1.8-3.3V 3.3V
GND GND

主要 AT 指令列表:

指令 描述
AT+POWR 显示模块发送功率
AT+RST 软复位
AT+MAC 显示MAC 地址
AT+NAME 显示广播名
AT+HOSTEN 从模式或 IBEACON 工作模式
AT+IBUUID IBEACON 的 UUID
AT+DISC 指令断开连接
AT+SLEEP 睡眠
AT+MTU 设置模块发送的发包数长

更多AT指令请参考JDY-23-V2.1.pdf

使用例程

  • 流程
    1. 发送 AT 指令
    2. 接收数据
    3. 判断是否设置成功

C 示例:


  // set uart rx/tx func to io_6/7
  fpioa_set_function(6, FUNC_UART1_RX + UART_NUM * 2);
  fpioa_set_function(7, FUNC_UART1_TX + UART_NUM * 2);
  uart_init(UART_DEVICE_1);
  uart_configure(UART_DEVICE_1, 9600, 8, UART_STOP_1, UART_PARITY_NONE);

  //change the name of sp_bt module to MAIXCUBE
  uart_send_data(UART_NUM, "AT+NAMEMAIXCUBE\r\n", strlen("AT+NAMEMAIXCUBE\r\n")); //send AT order
  msleep(100);
  ret = uart_receive_data(UART_NUM, rcv_buf, sizeof(rcv_buf)); //receive response
  if(ret != 0 && strstr(rcv_buf, "OK"))
  {
     printk(LOG_COLOR_W "set name success!\r\n");
  }

  // get the name of sp_bt module
  uart_send_data(UART_NUM, "AT+NAME\r\n", strlen("AT+NAME\r\n")); //send AT order
  msleep(100);
  ret = uart_receive_data(UART_NUM, rcv_buf, sizeof(rcv_buf)); //receive response
  if(ret != 0 && strstr(rcv_buf, "NAME"))
  {
     printk(LOG_COLOR_W "get name success!\r\n");
  }

MaixPy 例程:

    # set uart rx/tx func to io_6/7
  fm.register(6,fm.fpioa.UART1_RX)
  fm.register(7,fm.fpioa.UART1_TX)
  uart = UART(UART.UART1,9600,8,1,0,timeout=1000, read_buf_len=4096)

  #change the name of sp_bt module to MAIXCUBE
  uart.write("AT+NAMEMAIXCUBE\r\n") #send AT order
  time.sleep_ms(100)
  read_data = uart.read() #receive response
  if read_data:
      read_str = read_data.decode('utf-8')
      count = read_str.count("OK")
      if count != 0:
          uart.write("set name success\r\n")

  # get the name of sp_bt module
  uart.write("AT+NAME\r\n") #send AT order
  time.sleep_ms(100)
  read_data = uart.read() #receive response
  if read_data:
      read_str = read_data.decode('utf-8')
      count = read_str.count("NAME")
      if count != 0:
          uart.write("get name success\r\n")

注意发送AT指令后一定要加上\r\n

运行结果:

使用BLE Utility连接设备后进行收发测试结果如下:

运行环境:

语言 开发板 SDK/固件版本
C MaixCube kendryte-standalone-sdk v0.5.6
MaixPy MaixCube maixpy v0.5.1

参考设计

  • SPMOD_BLE 尺寸图:

资源链接

资源 ---
官网 www.sipeed.com
SIPEED 官方淘宝店 sipeed.taobao.com
Github https://github.com/sipeed
BBS http://bbs.sipeed.com
MaixPy 文档官网 http://maixpy.sipeed.com
Sipeed 模型平台 https://maixhub.com
SDK 相关信息 https://dl.sipeed.com/shareURL/MAIX/SDK
HDK 相关信息 https://dl.sipeed.com/shareURL/MAIX/HDK
E-mail(技术支持和商业合作) Support@sipeed.com
telgram link https://t.me/sipeed
MaixPy AI QQ 交流群(四群) 862340358