BC25_QuecPython_EVB_V1.0/1.2 快速入门

1 概述

BC25_QuecPython_EVB_V1.0 和 BC25_QuecPython_EVB_V1.2 是基于移远 BC25 NB-IoT 无线通信模块设计的,适用于 QuecPython 开发方式的开发板。开发板可以通过 NB-IoT 无线电通信协议(3GPP Rel-13 和 3GPP Rel-14*)与移动网络运营商基础设备建立通信,来调试和开发基于 NB-IoT 的物联网应用。

开发板引出了 BC25 模块的大部分引脚并进行了电平转换,便于用户连接各种外设。同时采用了 PCB 内置天线的设计,并搭载了 USB 转串口芯片,用户仅需准备一根 USB Type-C 接口的数据线即可完成大部分开发工作。

BC25_QuecPython_EVB_V1.0 和 BC25_QuecPython_EVB_V1.2 两款开发板的绝大部分功能完全一致。

2 开发板功能

2.1 硬件资源汇总

BC25_QuecPython_EVB_V1.0/1.2 开发板搭载的主要器件及位置如下表所示。请结合 BC25 QuecPython EVB V1.0 开发板丝印图进行参考。

bc25_quecpython_evb_v1.0丝印_00.png

器件类型 型号 / 功能 数量 位号 备注
NB-IoT 无线通信模块 BC25PA-04-STD 1 U1
USB 转双串口芯片 1 U4
CP2105 V1.0
CH342 V1.2
Nano-SIM 自弹卡座 1 CARD1
USB Type-C 接口 1 USBC1
按键 5
开机按键(PWK) 1 S1
复位按键(RST) 1 S2
唤醒按键(EINT) 1 S3
自定义按键 1(KEY1) 1 S4
自定义按键 2(KEY2) 1 S5
电源切换开关 1 K1
串口切换开关 2
主串口(MAIN)切换 1 K3
调试串口(DEBUG)切换 1 K2
LED 灯 2
电源指示灯(POW) 1 D2
网络指示灯(NET) 1 D1
IO 排针
J5、J6
13-Pin × 2 V1.0
15-Pin × 2 V1.2
双向电压电平转换器 3 U7、U8、U9
外部供电排针 1 J3
上电自动开机排针 1 J4
板载天线 1

2.2 关于 BC25 模块

BC25 是一款高性能、低功耗的 NB-IoT 无线通信模块,其尺寸仅为 17.7 mm × 15.8 mm × 2.2 mm,能最大限度地满足终端设备对小尺寸模块产品的需求,同时有效帮助客户减小产品尺寸并优化产品成本。

BC25 在设计上兼容移远通信 GSM/GPRS 系列的 M26 模块,同时兼容 NB-IoT 系列 BC26 和 BC28 模块,方便客户快速、灵活的进行产品设计和升级。

BC25 提供丰富的外部接口和协议栈,同时可支持中国移动 OneNET 和中国电信物联网开放平台,为客户的应用提供极大的便利。

关于 BC25 模块的详细信息,请参阅官方资料。

2.3 关于串口

BC25 模块设有三个串口:主串口、调试串口和辅助串口。

功能 引脚名称 引脚号 备注
主串口接收 RXD 17
主串口发送 TXD 18
调试串口接收 DBG_RXD 38
调试串口发送 DBG_TXD 39
辅助串口接收 AUX_RXD 28
辅助串口发送 AUX_TXD 29

2.3.1 主串口

在使用传统 AT 指令方式进行开发时,主串口可用于 AT 指令通信和数据传输,默认波特率为 9600 bps。在使用 QuecPython 方式进行开发并烧录相应固件后,主串口用于 Python 用户交互(REPL),默认波特率为 57600 bps。

当主串口切换开关(K3)拨至“排针”一侧时,用户可自行使用单独的 USB 转 TTL 串口模块通过开发板上排针 J6 的第 4 和第 5 脚连接到主串口。主串口本身为 1.8 V 电压域,在引出到排针时已通过板载的双向电压电平转换器转换为 3.3 V。

当主串口切换开关(K3)拨至“USB”一侧时,用户可使用 USB Type-C 数据线通过板载的 USB 转串口芯片连接到主串口。在 Windows 操作系统中,当连接正常时,主串口在设备管理器中显示为 Standard COM Port(对于 1.0)或 SERIAL-B(对于 1.2)。

2.3.2 调试串口

通过日志查看工具,调试串口可用于查看底层日志信息以进行软件调试。调试串口也可以用于软件升级(固件烧录)。调试串口的默认波特率为 921600 bps。

当调试串口切换开关(K2)拨至“排针”一侧时,用户可自行使用单独的 USB 转 TTL 串口模块(需确认其支持 921600 bps 或更高波特率)通过开发板上排针 J6 的第 6 和第 7 脚连接到调试串口。调试串口本身为 1.8 V 电压域,在引出到排针时已通过板载的双向电压电平转换器转换为 3.3 V。

当调试串口切换开关(K2)拨至“USB”一侧时,用户可使用 USB Type-C 数据线通过板载的 USB 转串口芯片连接到调试串口。在 Windows 操作系统中,当连接正常时,主串口在设备管理器中显示为 Enhanced COM Port(对于 1.0)或 SERIAL-A(对于 1.2)。

2.3.3 辅助串口

在使用传统 AT 指令方式进行开发时,辅助串口可用于 AT 指令通信和数据传输,默认波特率为 9600 bps。在使用 QuecPython 方式进行开发并烧录相应固件后,用户可将辅助串口初始化为一般的通用串口 UART1,用于连接各类串口外设并通信。

用户可自行使用单独的 USB 转 TTL 串口模块通过开发板上排针 J5 的第 7 和第 8 脚连接到辅助串口。辅助串口本身为 1.8 V 电压域,在引出到排针时已通过板载的双向电压电平转换器转换为 3.3 V。

关于串口在 QuecPython 中使用的更多信息,请参阅 QuecPython 官方 Wiki:

2.4 关于按键

开发板搭载了 5 个按键,包括 3 个功能按键和 2 个自定义按键。

2.4.1 开机按键(PWK)

开机按键(PWK)与 BC25 模块的 7 号引脚(PWRKEY)直接相连。按键按下时,该引脚将被拉低到地。在模块上电时,可以通过按下开机按键至少 1 秒钟使得模块开机。

如果希望实现模块上电自动开机,可以将 PWRKEY 引脚直接连接到 GND。在开发板上,PWRKEY 和 GND 分别通过 J4 的两根排针引出,因而只需使用跳线帽或杜邦线将 J4 短接即可。

2.4.2 复位按键(RST)

复位按键(RST)与 BC25 模块的 15 号引脚(RESET)直接相连。按键按下时,该引脚将被拉低到地。可以通过按下复位按键至少 1 秒钟使得模块复位。

该功能通常用于在模块中已有程序运行时,若希望烧录新的程序(固件),在烧录开始前需要拉低 RESET 引脚。具体用法请参阅官方资料。

2.4.3 唤醒按键(EINT)

唤醒按键(EINT)与 BC25 模块的 19 号引脚(PSM_EINT)直接相连。按键按下时,该引脚将被拉低到地。当 BC25 模块处于软关机(通过 AT 指令或 Python 函数控制的关机)或深休眠(Deep Sleep)模式时,拉低该引脚产生的电平下降沿将使得模块被唤醒。

2.4.4 自定义按键(KEY1 和 KEY2)

KEY1 和 KEY2 通过板载的双向电压电平转换器与 BC25 模块的 32 和 33 号引脚相连。在使用 QuecPython 开发时,这两个引脚分别对应 GPIO15 和 GPIO16,可用于测试 GPIO 电平读取和外部中断等功能。

2.5 关于供电

在大部分情况下,USB 接口可以满足开发板的整体供电需求。在少数特殊情况下,用户可将电源切换开关从“USB”侧切换到“DC”侧,然后使用外部电源通过板载的外部供电排针(J3)为开发板进行 5V 直流供电。建议外部电源的最大输出电流不低于 1 A。

2.6 关于 IO 外设

BC25_QuecPython_EVB_V1.0/1.2 开发板对 BC25 的大部分引脚都进行了电平转换(3.3 V),并引出到排针 J5 和 J6 上,便于用户连接各类外设。

当使用 QuecPython 方式进行开发时,这些排针的功能请参考 BC25 QuecPython EVB V1.0 开发板引脚功能图。

核心板带字无箭头2新1.jpg

与 BC25_QuecPython_EVB_V1.0 相比,BC25_QuecPython_EVB_V1.2 的 J5 和 J6 排针从 13 Pin 增加到 15 Pin。新增的 4 根排针与电源相关(GND 和 VBAT),其余部分与 BC25_QuecPython_EVB_V1.0 一致。

2.6.1 GPIO

在使用 QuecPython 方式进行开发时,BC25 模块有 18 个引脚可作为 GPIO 使用。开发板引出了其中的 15 个(转换为 3.3 V 电平)。具体用法请参阅 QuecPython 官方 Wiki:

2.6.2 ADC

BC25 模块的 9 号引脚可作为 ADC 使用,测量范围为 0 - 1.8 V,分辨率 10-bit。在开发板上,该引脚通过一个分压电路被引出到 J6 的第 13 脚,测量范围扩大为 0 - 3.6 V。具体用法请参阅 QuecPython 官方 Wiki:

2.6.3 I2C

在使用 QuecPython 方式进行开发时,BC25 模块提供 2 路 I2C 接口(引脚 20、21 和 23、22)。在开发板上,两路接口分别被引出到 J5 的 10、11 和 12、13 脚(转换为 3.3 V 电平)。具体用法请参阅 QuecPython 官方 Wiki:

2.6.4 SPI

在使用 QuecPython 方式进行开发时,BC25 模块提供 1 路 SPI 接口(引脚 3 - 6)。该接口仅可作为主机使用,最高通信时钟频率不超过 39 MHz。在开发板上,SPI 接口被引出到 J5 的 3 - 6 脚(转换为 3.3 V 电平)。具体用法请参阅 QuecPython 官方 Wiki:

2.6.5 串口

请参阅上文 2.3 节

2.6.6 外部唤醒

开发板 J6 的 12 脚与一个三极管开关电路相连接。当外部给其施加一个高电平时,开关导通,BC25 模块的 19 号引脚被拉低到地,使得模块被唤醒。具体原理可参阅上文 2.4.3 节

3 QuecPython 开发环境搭建

3.1 关于 QuecPython

QuecPython 是执行 Python 代码的运行环境,是一种全新的物联网开发方式。QuecPython 移植于 MicroPython 开源库,开发者在移远通信模块上使用 MicroPython 脚本即可调用模块软件功能和外部硬件接口,进行二次开发。

与传统的 CSDK 开发方式相比,QuecPython 开发方式无需配置电脑端的开发和编译环境,只需在模块内烧录 QuecPython 固件,然后编写脚本,传输至模块中执行即可。

关于 QuecPython 技术的详细信息,请参阅官方资料。

3.2 硬件准备

  • BC25_QuecPython_EVB_V1.0/1.2 开发板 × 1
  • USB Type-C 数据线 × 1
  • NB-IoT 物联网卡 × 1(可选)
  • 安装有 Microsoft Windows 操作系统的个人电脑 × 1

注意事项

  • 开发板到手后,请仔细检查是否存在元件虚焊、脱焊,电路板变形、缺损、开裂等现象。若出现此类现象,立即停止后续操作,并与板卡的提供者联系。

  • 建议选择质量可靠的 USB Type-C 数据线。部分 USB Type-C 线缆只具备供电功能,无法传输数据,请注意甄别。

  • 开发板仅支持 NB-IoT 网络制式的物联网卡,无法使用普通物联网卡和手机 SIM 卡。

  • 物联网卡普遍启用了机卡绑定机制。请选择全新的、未在其他设备上使用过的 NB-IoT 物联网卡,否则可能导致卡片锁死或其他异常。

  • 若暂时无需测试网络功能,可不插入物联网卡使用。

  • 个人电脑建议安装 Windows 10 或更新版本的 Windows 操作系统,且保证其正常连接到互联网。

3.3 驱动安装

BC25 模块的用户交互和固件烧录都是通过模块本身的串口进行的。开发板搭载了 USB 转串口芯片,使得用户可以通过开发板上的 USB 接口与模块的主串口调试串口进行连接和通信。因此,当通过板载 USB 接口连接模块时,需要手动安装相应芯片的驱动程序。

  • BC25_QuecPython_EVB_V1.0:安装 CP2105 芯片驱动
  • BC25_QuecPython_EVB_V1.2:安装 CH342 芯片驱动

注意事项

  • 官网下载页面暂未提供此类驱动下载,建议用户自行通过网络搜索并下载安装。

  • 请确认下载和安装的驱动与您使用的 Windows 操作系统的版本相适配。

  • 如有必要,用户亦可不通过板载 USB 接口,而是通过开发板两侧引出的排针连接到模块串口。请参阅上文 2.3 节

3.4 连接电脑

  • 将 MAIN 和 DEBUG 串口切换开关均拨到 USB 一侧
  • 将电源切换开关拨到 USB 一侧
  • 将 NB-IoT 物联网卡根据丝印指示按正确的方向插入卡座中
  • 使用质量可靠的数据线将开发板与电脑相连接
  • 若开发板电路正常,此时电源指示灯(POW)应亮起
  • 在电脑端操作系统中,打开设备管理器,可看见两个新增的串口设备
    • SERIAL-B 或 Standard COM Port:连接到模块的主串口
    • SERIAL-A 或 Enhanced COM Port:连接到模块的调试串口
  • 使用串口工具(如 QCOM)与 SERIAL-B / Standard COM Port 端口建立连接
    • 波特率 9600 bps,数据位 8,停止位 1,校验无

注意事项

  • 应确保电脑端的 USB 接口能够满足开发板的供电需求:
    • 请将开发板连接至电脑的 USB 3.0 接口。建议台式主机用户将开发板连接至机箱后部的 USB 接口。
    • 使用集线器(USB-Hub)的用户,请务必确认集线器为有源型号(支持独立供电)并已连接至外部电源,否则请勿将开发板与集线器相连接。
    • 若 USB 口无法满足供电需求,请将电源切换开关(USB - DC)拨到 DC 一侧,然后通过 USB Type-C 口附近的 5V 和 GND 排针连接外部直流电源。
  • 设备管理器中未出现相应串口或名称与之不符,建议尝试:
    • 断开并重新连接开发板。
    • 重启电脑。
    • 重新安装串口驱动。
    • 更换 USB 数据线。
    • 连接到其他电脑测试。
    • 买块新的开发板。
  • QCOM 工具可在 QuecPython 官网的下载页面获取。

  • 使用 QCOM 工具与模块进行交互时,需手动勾选界面下方的 Send With Enter 选项。若使用其他串口工具,也需打开类似选项。

3.5 模块开机

  • 按住开机按键(PWK),持续 1 秒以上,然后松开
  • 可观测到网络指示灯(NET)发生轻微闪烁
  • 同时可见串口有明文信息输出(包含 RDY 等字样),表明开机成功

注意事项

  • 如需实现上电后自动开机,请使用跳线帽或杜邦线短接 USB Type-C 口附近的 PWK_ON 的两根排针。
    • 建议在 QuecPython 固件烧录完成后再短接。
  • 若串口工具收到的是乱码,可能是以下情况:
    • 串口选择错误:请选择 SERIAL-B / Standard COM Port 对应的串口号。
    • 串口参数设置有误:检查串口工具设置项(波特率等),或更换其他串口工具。
    • 数据传输异常:检查或更换数据线。
    • 模块内已被他人烧录过 QuecPython 固件:根据下文 4.2.1 节进行判断,如有必要可根据 3.7 节重新烧录新版固件。
  • 若串口工具未收到任何信息,可能是以下情况:
    • 模块未成功启动:检查供电情况。
    • 数据传输异常:检查或更换数据线。
    • 串口参数设置有误:检查串口工具设置项,或更换其他串口工具。
    • 模块此前已经开机:将开发板断电,然后重新上电再测试。
    • 硬件故障和其他罕见问题:去官方交流群咨询。

3.6 关闭休眠

开发板上搭载的 BC25 模块在出厂时默认烧录了标准 AT 固件,具有自动进入深休眠模式的特性。

模块进入深休眠模式将会最大程度的降低模块的功耗。一般情况下,当模块的 Modem 侧进入 PSM,且 AP 侧进入 Idle 态(任务全部挂起)时,模块会进入深休眠模式。若模块未插 SIM 卡,或在搜网失败等情况下,模块会在短时间内自动进入深休眠模式。

模块进入深休眠模式最直接的特征是串口不再接收数据且 VDD_EXT 电压为 0 V。

在深休眠模式下,CPU 电源会被断开、程序停止运行、上下行数据无法处理、串口不再响应,模块处于类似关机的状态(仅 RTC 继续运行)。故对于处于深休眠模式的模块,用户无法正常与之交互,亦无法烧录固件。为正常烧录 QuecPython 固件,建议手动关闭此功能。

  • 在串口工具内输入 AT 并发送
    • 若模块返回 OK,则表明通信正常,可以进行后续操作
    • 若模块无任何响应,或是在此前已经输出了 +QATSLEEP 语句,则说明进入了睡眠,需要唤醒
  • 按住唤醒按键(EINT),持续 0.1 秒以上,然后松开
  • 可观测到模块串口有 +QATWAKEUP 语句输出,表示模块已被成功唤醒
  • 在串口工具内输入 AT+QSCLK=0 并发送,若模块返回 OK,则表明已成功关闭休眠功能

注意事项

  • 若模块可正常输出信息,但对用户发送的 AT 指令不产生任何响应,请检查串口工具的 Send With Enter 或其他类似选项是否已经打开。

  • 若休眠功能关闭不成功,可多次唤醒(或重新上电)并尝试发送指令。

3.7 烧录固件

  • 关闭电脑端的杀毒软件(如 360 等)
  • 从 QuecPython 开发交流群的群文件中获取 QFlash 工具并解压
    • 请务必将 QFlash 工具解压到不包含中文和空格的目录下
  • 从 QuecPython 官网的下载页面获取 BC25 模块的最新版 QuecPython 固件并解压
    • 固件名称格式类似于 QPY_V0002_BC25PA_FW,以实际为准
    • 请务必将固件解压到不包含中文和空格的目录下
    • 解压后将获得一个 changelog 文件和 .lod 格式的固件本体
  • 打开 QFlash 工具文件夹,右击 QFlash 程序本体(如 QFlash_V5.8.exe),在右键菜单中选择以管理员身份运行(A)
  • 在 QFlash 主界面上,点击 Load FW Files 按钮,选择刚才下载的 QuecPython 固件(.lod 格式)
  • COM Port 下拉菜单中,选择 SERIAL-A / Enhanced COM Port 对应的串口号
  • Baudrate 下拉菜单中,选择 921600
  • 点击 Start 按钮,开始固件烧录
  • 在烧录流程结束(或失败)前,严禁断开模块与电脑间的 USB 连接
  • 待 QFlash 界面出现 PASS 字样时,表示烧录成功,此时可关闭 QFlash 工具
  • 断开开发板与电脑的连接

3.8 开始开发

  • 从 QuecPython 官网的下载页面获取最新版本的 QPYcom 工具并解压
  • 再次将开发板与电脑相连接
  • 打开 QPYcom 工具文件夹,右击 QPYcom.exe 文件,在右键菜单中选择以管理员身份运行(A)
  • 选择串口下拉菜单中,选择 SERIAL-B / Standard COM Port
  • 波特率下拉菜单中,选择 57600
  • 点击打开串口按钮
  • 按住开机按键(PWK),持续 1 秒以上,然后松开

待 QPYcom 工具的交互窗口中出现类似

  1. mount.
  2. Type "help()" for more information.
  3. >>>

的字样时,表示 QuecPython 开发环境已经搭建成功。

4 常见问题

4.1 硬件相关

4.1.1 如何给第三方或自制的 BC25 开发板烧录 QuecPython 固件?

  • 首先判断开发板上搭载的模块型号为 BC25,而非 BC25-B5 或 BC25-B8
    • 后两者尚无公开的 QuecPython 固件
  • 确保开发板已引出 BC25 模块的主串口(17、18 脚)和调试串口(38、39 脚)
    • 若不经转换,模块串口的电平均为 1.8 V,在后续操作中需特别注意
  • 将电脑通过 USB 转 TTL 串口模块与主串口建立连接
  • 给模组上电并开机,然后根据上文 3.6 节的方法关闭其休眠功能
  • 将电脑通过 USB 转 TTL 串口模块与调试串口建立连接
    • 务必确认 USB 转串口模块支持 921600 bps 或更高波特率
  • 根据上文 3.7 节的方法烧录 QuecPython 固件

4.2 软件相关

4.2.1 如何判断 BC25 模块是否已被烧录 QuecPython 固件?

  • 将开发板通过 USB Type-C 数据线连接到电脑
    • 若此前短接了 PWK_ON 排针,请在连接电脑前将其断开
    • 若此前已对模块执行了开机操作,请断电后重连
  • 使用串口工具与 SERIAL-B / Standard COM Port 端口建立连接
    • 波特率 57600 bps,数据位 8,停止位 1,校验无
  • 按住开机按键(PWK),持续 1 秒以上,然后松开
  • 检查串口是否有明文信息输出(包含 mount 等字样)
  • 如有此类输出则表明该模块已烧录有 QuecPython 固件

修订记录

版本号 修改内容 修改时间 修改者
0.0.1 初版 2022.04.10 Exdream
0.1.2 拼写细节勘误 2022.05.02 Exdream
0.1.3 补充开发板功能介绍部分 2022.05.27 Exdream