跳转至

产线测试指南

概述

本指南以 HiDiTingV100 穿戴产品为例,介绍产线测试涉及的镜像与串口准备、DBC 烧录与板级校验、WBT 无线测试、音频功能测试以及恢复出厂设置流程。

镜像与串口准备

镜像制作

产线版本镜像制作需要考虑如下因素:

  1. 选择日志输出方式,在线日志或离线日志,详细内容请参见“离线日志”章节。
  2. 镜像包中是否需要包含资源文件,详细内容请参见《文件系统 使用指南》中“YAFFS文件系统镜像制作与烧录”章节。

产测编译与通用输出串口

针对只有一个输出串口的硬件状况,本章提供了一种通过增加编译宏来切换HSO日志通道的方法,以适配产测需求。如表1所示。具体方案内容请参考下述章节内容。

表 1 产测编译宏及方案

编译宏

产测方案

适配场景

'FT_SINGLE_UART'

单UART方案

应用于单板段,适用于MCU仅剩余一个UART口供产线测试时使用。

编译宏添加方法:在 config.py 中找到对应 target,添加编译宏如图1所示。

图 1 添加编译宏

**图 1** 添加编译宏

单UART方案

单UART方案需要打开编译宏‘FT_SINGLE_UART’,打开后原HS_UART口合并到AT UART口,波特率为750000,此UART口同时支持DebugKits工具和AT命令,但要求芯片启动完成后,再连接Debugkits工具或串口工具。

说明: 如果开启A核低功耗时,串口首次输入AT命令会先唤醒A核,存在AT指令回流现象,第二次下发AT命令即可正常执行。 执行“AT+PM=0”命令可以关闭A核低功耗时,避免AT指令回流现象。

  1. 烧录完成后,使用串口工具打开烧录口,波特率750000。
  2. 等待MCU心跳起来后,按照不同测试项发送对应AT命令。

图 1 FT_SINGLE_UART 烧录口示例

**图 1** FT\_SINGLE\_UART 烧录口示例

图 2 FT_SINGLE_UART hso口示例

**图 2** FT\_SINGLE\_UART hso口示例

DBC 工位:烧录与板级校验

离线日志

须知: 从芯片启动至未打印心跳(app_main run start)期间,不允许发送AT命令或连接使用DebugKits。

简介

离线日志可以在“/user/log/”路径下导出。

图 1 离线日志存储路径

**图 1** 离线日志存储路径

离线日志开关

离线日志可以在打包前修改配置文件实现开闭,在 /src/middleware/chips/3322/nv/nv_config/nv_default/cfg/acore/app.json 文件进行如下配置然后打包镜像即可。

图 1 离线日志开关1

**图 1** 离线日志开关1

也可以在DebugKits中使用Command Line Viewer对NV进行修改后重启完成配置。

图 2 离线日志开关2

**图 2** 离线日志开关2

程序烧录

原理说明

HiDiTingV100内部无Flash,须通过PC将bin文件烧录到HiDiTingV100外接的NorFlash和NandFlash/eMMC之中。HiDiTingV100配套提供了BurnTool工具,可以通过UART端口来完成bin镜像的烧录。

通过BurnTool工具烧录

烧录方法详情请参见《BurnTool工具 使用指南》。

文件系统先烧后贴适配说明

文件系统的先烧后贴适配步骤如下:

  1. 文件系统(nand)适配:

  2. 需要将 nand_init.c 文件中的 YF_VOLUMES_NUM 修改为 3,YF_NAME_STRS 修改为 "/boot/", "/system/", "/user/",yf_volume_percent 修改为{5, 25, 70}。当前配置如下所示:

    ```
    #define YF_VOLUMES_NUM 3
    #define YF_NAME_STRS "/boot/", "/system/", "/user/"
    uint32_t yf_volume_percent[YF_VOLUMES_NUM] = {5, 25, 70};
    ```
    
    1. 文件系统镜像生成脚本的适配,适配为三个分区镜像。

      普通构建目标需要修改 /src/build/config/target_config/3322/mk_fs_image/mkyaffs2tool.py 中的 partition_list_normal3322-diting-ft 目标使用 partition_list_ft,该列表默认只预置 boot 分区;如产测目标也需要预置 system、user 分区,应同步按产测方案修改 partition_list_ft

      partition_list_normal = [
          [os.path.join(cur_dir, 'fs', 'boot'), "0x1980000"],
          [os.path.join(cur_dir, 'fs', 'system'), "0x8000000"],
          [os.path.join(cur_dir, 'fs', 'user'), "null"],
      ]
      

    文件系统(emmc)适配:

    1. 文件系统适配

      如果需要调整分区大小,可以在“product_evb_standard.h”文件中修改分区大小。

      // Emmc一共五个分区,前四个分区大小固定,最后一个user分区使用剩余空间。
      #define EMMC_VOLUME_BOOT_SECTOR_COUNT       12000ULL
      #define EMMC_VOLUME_SYS_SECTOR_COUNT       3145666ULL
      #define EMMC_VOLUME_INNER_SECTOR_COUNT     262144ULL
      #define EMMC_VOLUME_SYS_BK_SECTOR_COUNT    524288ULL
      

      如果需要调整分区名称,可以在“mmc_init.c”文件中修改分区名称。

      #define FF_VOLUMES_NUM              5
      #define FF_VOLUME_NAME_BOOT          "/boot/"
      #define FF_VOLUME_NAME_SYS          "/system/"
      #define FF_VOLUME_NAME_INNER        "/inner/"
      #define FF_VOLUME_NAME_SYS_BK       "/systembk/"
      #define FF_VOLUME_NAME_USER         "/user/"
      struct ff_volume_info {
          const char *name;
          uint64_t sector_count;
      };
      static struct ff_volume_info g_ff_volume_infos [FF_VOLUMES_NUM] = {
          {FF_VOLUME_NAME_BOOT, EMMC_VOLUME_BOOT_SECTOR_COUNT},
          {FF_VOLUME_NAME_SYS, EMMC_VOLUME_SYS_SECTOR_COUNT},
          {FF_VOLUME_NAME_INNER, EMMC_VOLUME_INNER_SECTOR_COUNT},
          {FF_VOLUME_NAME_SYS_BK, EMMC_VOLUME_SYS_BK_SECTOR_COUNT},
          {FF_VOLUME_NAME_USER, 0xffffffff} // 运行时修正为剩余扇区数
      };
      
    2. FAT文件系统镜像生成脚本的适配

      partition_list = [
          [os.path.join(cur_dir, 'fs', 'boot'), "6000", "file_boot.bin"],   # boot, 分区大小不能大于6000KB
          [os.path.join(cur_dir, 'fs', 'system'), "1572833", "file_system.bin"],   # system, 分区大小不能大于1572833KB
          [os.path.join(cur_dir, 'fs', 'inner'), "131072", "file_inner.bin"],     # inner, 分区大小不能大于131072KB
          [os.path.join(cur_dir, 'fs', 'systembk'), "262144", "file_systembk.bin"],   # systembk, 分区大小不能大于262144KB
          [os.path.join(cur_dir, 'fs', 'user'), "263000", "file_user.bin"],       # user, 分区大小不能大于emmc剩余大小
      ]
      

      以上参数格式为[资源文件路径, 分区大小, 生成的镜像文件名],其中资源文件路径为装有烧录资源文件的路径,默认为脚本当前目录下的fs目录。

      分区大小为要生成镜像的KB大小。

  3. 开发环境快速入门重新生成 file.binloaderboot_signed.binapplication_signed.bin,建议优先使用一站式 CLI 开发环境。其中,loaderboot_signed.bin 位于 <FBB_SDK_DIR>/output/3322/acore/3322-loaderboot/,应用镜像位于对应构建目标的输出目录。

  4. 修改验证,使用 BurnTool 将 file.binloaderboot_signed.binapplication_signed.bin 烧录到主板中,观察文件系统是否可以正常启动。如果可以正常浏览文件,继续检查预置文件的内容是否完整;文件完整则适配成功。若不能正常启动,请检查以上步骤和所选镜像是否与当前构建目标一致。

USB烧录

HiDiTing V100 使用 USB 进行程序烧录的操作步骤如下。开发调试时的完整操作和风险说明可参见 BurnTool 工具使用指南的 USB 快速烧写章节

  1. 使用管理员权限打开 BurnTool 。

    图 1 打开BurnTool 工具

    **图 1** 打开BurnTool 工具

  2. 使用 BurnTool 工具,点击“Option”--> “Change chip”,选择“Hi3322-USB”。

    图 2 切换到 Hi3322-USB

    **图 2** 切换到 Hi3322-USB

  3. 配置 USB Vendor ID 和 Product ID。

    Vid 固定填写 0x3361Pid 固定填写 0x3322

    图 3 配置 USB vid 和 pid

    **图 3** 配置 USB vid 和 pid

  4. 选择 .fwpkg 镜像,点击“Start burn”,然后通过下列任一方式触发 USB DFU:

    • 软件触发:开发板已有能够正常启动的基础镜像时,以 750000 波特率打开 UART2 串口并发送 AT+USBDFUTRIGGER
    • 硬件触发:先给开发板断电,将 UART2 的 RX2GND 短接,点击“Start burn”后重新上电;烧写结束后断电并移除短接线。

    图 4 启动烧录

    **图 4** 启动烧录

  5. BurnTool工具窗口显示出如下打印,表示烧录成功。

    图 5 烧录成功打印

    **图 5** 烧录成功打印

说明: 产线采用硬件触发时,S_AGPIO18 作为 USB_VBUS 插入检测信号,外部接入 1.8 V 高电平;S_MGPIO_18 复用为 UART2_RXD,通过接地使芯片进入 USB 烧写状态,烧录夹具应预留下拉控制。开发调试已有基础镜像时可使用 AT 指令触发,无需保持 RX2 接地。

2131E程序烧录

Hi2131E程序烧录流程与注意事项详见《HiDiTingV100 BurnTool工具 使用指南》的“CAT1 USB烧写”章节。

DieID 读取

简介

HiDiTingV100 产线需要记录 NandFlash、NorFlash、eMMC、PSRAM 等外设的器件标识、SoC DIE ID 以及 SDK 版本。外设器件标识用于识别器件型号或批次,SDK ID 用于记录软件版本;只有 SoC ID 读取项返回芯片 DIE ID。DIE ID 是芯片 Die 的一组编号,用来记录芯片在制造加工时的 wafer 位置、加工时间、ATE 测试版本、芯片 IDDQ、批次等信息,类似芯片的“身份证”编号,每颗芯片都不相同。记录 DIE ID 可用于跟进和追溯芯片生产制造、板级生产制造、设备现网应用的整个 E2E 环节。

产线测试应分别读取并记录上述器件标识、软件版本和 SoC DIE ID。其中,SoC DIE ID 用于跟进产品在产线及后续市场中的应用情况;出现失效时,可结合产线记录追溯芯片制造加工信息。章节“NandFlash ID读取NorFlash ID读取”提供各类标识对应的 AT 指令,只有“SOC ID读取”用于获取 SoC DIE ID。

NandFlash ID读取

通过AT指令读取当前NandFlash ID。

表 1 AT指令读取NandFlash ID

命令描述

产测AT指令

示例

命令说明

读取当前环境器件ID

AT+PERIPHERALSID

“AT+PERIPHERALSID=1”获取当前环境下NandFlash ID。

成功:OK

失败:ERROR

图 1 AT指令读取当前NandFlash示例

**图 1** AT指令读取当前NandFlash示例

eMMC ID读取

通过AT指令读取当前eMMC ID。

表 1 AT指令读取当前eMMC ID

命令描述

产测AT指令

示例

命令说明

读取当前环境器件ID

AT+PERIPHERALSID

“AT+PERIPHERALSID=0”获取当前环境下eMMC ID。

成功:OK

失败:ERROR

图 1 AT指令读取当前eMMC示例

**图 1** AT指令读取当前eMMC示例

SOC ID读取

通过AT指令读取当前芯片的SOC ID。

表 1 AT指令读取当前芯片的SOC ID

命令描述

产测AT指令

示例

命令说明

读取当前环境芯片 DIEID

AT+GETDIEID

“AT+GETDIEID”获取当前环境芯片的DIEID。

成功:OK

失败:ERROR

图 1 AT指令读取当前芯片的SOC ID示例

**图 1** AT指令读取当前芯片的SOC ID示例

PSRAM ID读取

通过AT指令读取环境PSRAM的EID。

表 1 AT指令读取环境PSRAM的EID

命令描述

产测AT指令

示例

命令说明

读取当前环境 PSRAM 的 EID

AT+PERIPHERALSID=3

“AT+PERIPHERALSID=3”获取当前环境 PSRAM 的 EID。

成功:OK

失败:ERROR

图 1 AT指令读取环境PSRAM EID示例

**图 1** AT指令读取环境PSRAM EID示例

SDK ID读取

通过AT指令读取当前环境的SDK ID。

表 1 AT指令读取当前环境的SDK ID

命令描述

产测AT指令

示例

命令说明

读取当前环境的SDK ID

AT+GETWSTPVER

“AT+GETWSTPVER”获取当前环境 SDK ID。

成功:OK

失败:ERROR

图 1 AT指令读取当前环境的SDK ID示例

**图 1** AT指令读取当前环境的SDK ID示例

NorFlash ID读取

通过AT指令读取当前环境的NorFlash ID

表 1 AT指令读取当前环境的NorFlash ID

命令描述

产测AT指令

示例

命令说明

读取当前环境的NorFlash ID

AT+PERIPHERALSID=2

“AT+PERIPHERALSID=2”获取当前环境下 NorFlash ID。

成功:OK

失败:ERROR

图 1 AT指令读取当前环境的NorFlash ID示例

**图 1** AT指令读取当前环境的NorFlash ID示例

WBT 工位:无线测试

BT 传导测试

测试目的

BT传导测试是为了在产线测试阶段增加一道蓝牙射频通路异常问题的拦截,通过测试被测设备发射信号的质量和接收信号的性能,以确保设备出厂后射频性能符合要求。

射频测试步骤

环境搭建:

图 1 频偏环境示意图

**图 1** 频偏环境示意图

标准手动频偏校准:将被测机与仪器连接,被测机发送蓝牙信号。观察仪器显示的频偏值并通过AT命令单步修改容值进行调整,使得仪器显示的频偏值达到合理范围。校准结束后使用AT命令将频偏值保存至FLASH中。

参考流程如图2所示。

图 2 频偏设置流程

**图 2** 频偏设置流程

下面是基于BR的实现,仅供参考:

  1. PC/测试机台发送“AT^BTTXLO=<freq>,0”,在指定频点向对接仪器发送单音。
  2. 根据频偏情况PC/测试机台发送“AT+XOCALI=<increase>,<step_num>”调整电容值,increase = 0代表减少电容值,1代表增加电容值,step_num取值范围是【0,255】。
  3. 重复2,直到频偏符合目标值为止,调整电容值时直接写NV值,不需要额外保存参数。
  4. PC/测试机台发送“AT^BTTXLO=<freq>,255”,结束发送单音。

表1 射频测试相关指令

指令

描述

AT^BTENABLE

BT使能指令,退出时使用AT^BTDISABLE。

AT^BTFACCALLBACK

注册BT命令上报回调(没有相应退出操作)。

AT^BTTX

BT常发指令。

AT^BTRX

BT常收指令。

AT^BTTRXEND

BT常发、常收停止指令。

AT^BTRST

BT软件复位指令。

AT^BLEENABLE

BLE使能指令,退出时使用AT^BLEDISABLE。

AT^BLEFACCALLBACK

注册BLE命令上报回调(没有相应退出操作)。

AT^BLETX

BLE常发指令。

AT^BLERX

BLE常收指令。

AT^BLETRXEND

BLE常发、常收停止指令。

AT^BLERST

BLE软件复位指令。

AT^SLEENABLE

SLE使能指令(没有相应退出操作)。

AT^SLEFACCALLBACK

注册SLE命令上报回调(没有相应退出操作)。

AT^SLETX

SLE常发指令。

AT^SLERX

SLE常收指令。

AT^SLETRXEND

SLE常发、常收停止指令。

AT^SLERST

SLE软件复位指令。

AT^BTSIGNAL

BT进入信令模式指令。

AT^BTTXLO

射频单音指令。

AT+XOCALI

晶体频偏校准指令。

AT^BTAUTOCALI

晶体自动频偏校准指令。

具体参数说明请参见《蓝牙星闪射频测试指南》中“射频测试 AT 指令”章节。

蓝牙信令模式传导测试示例

  1. 打开串口工具,先输入 AT^BTENABLE 使能经典蓝牙,再输入 AT^BTSIGNAL=1 进入蓝牙信令测试模式。

    打开串口工具,先输入 <code>AT^BTENABLE</code> 使能经典蓝牙,再输入 <code>AT^BTSIGNAL=1</code> 进入蓝牙信令测试模式

  2. 通过电脑连接无线综测仪后,如图1所示红框位置勾选Bluetooth模块下面的“Signaling 1”,打开信令测试功能。

    图 1 信令测试主界面

    **图 1** 信令测试主界面

  3. 图2中①所示,右键打开蓝牙信令连接开关。

    图 2 信令测试主界面

    **图 2** 信令测试主界面

  4. 图2中②所示,设置“Standard”为“Classic”,“Operating Mode”为“Test Mode”,“Burst Type”为“Basic Rate”,“Test Mode”为“Loopback Test”。

  5. 图2中③所示,设置“Tx Level(CMW)”为“-40dBm”,“Exp.Nom.Power”为“20dBm”(此处以实际功率为准,建议在实际功率基础上增加3~5 dB)。
  6. 图2中④所示,点击“Inquire”按钮,等待直到界面左下角出现蓝牙地址,如图3所示出现蓝牙地址。

    图 3 蓝牙地址

    **图 3** 蓝牙地址

  7. 点击图2中⑤所示的“Connect Test Mode”按钮,连接成功后会出现如图4所示界面,即界面左下角出现“Detach”按钮,然后就可以开始进行信令测试。其中图4中①表示的是TX测试,②表示的是RX测试,③可以对一些基本测试参数进行配置。

    图 4 信令连接成功界面

    **图 4** 信令连接成功界面

  8. 图5中①所示“Packet Type”选择“DH5”,②所示“Pattern Type”选择“10101010”然后点击③即可看到TX测试界面如图6所示。

    图 5 信令链接界面

    **图 5** 信令链接界面

  9. 先点击图6中①ASSIGN VIEW,然后点击②中的off然后勾选中的③。

    图 6 TX测试界面图1

    **图 6** TX测试界面图1

  10. 观察频偏结果在图7对应位置观测测试结果。

    图 7 TX测试界面图2

    **图 7** TX测试界面图2

  11. 调转观测ACP带内杂散步骤,在图8中观测带内杂散点①点击②,然后勾选③即可观测带内杂散。

    图 8 带内杂散配置

    **图 8** 带内杂散配置

  12. 观测带内杂散结果如图9所示。

    图 9 带内杂散结果

    **图 9** 带内杂散结果

蓝牙非信令模式传导测试示例

蓝牙非信令常发测试示例
  1. 将串口线缆与单板的命令下发串口连接后,在设备管理器中可以看到对应的端口号,如图1所示。

    图 1 设备管理器界面-常发测试

    **图 1** 设备管理器界面-常发测试

  2. 图2所示,在串口工具中打开蓝牙 UART 串口,然后发送 BT 常发命令。本例设置频点 0(2402 MHz)、编码类型 PRBS9、包类型 3DH5、包长 1021 Byte,命令为 AT^BTTX=1021,112233445566,0,6,15,0,5,1。截图用于说明串口工具的操作位置,命令输入以本步骤所列格式为准。

    图 2 串口工具控制界面-常发测试

    **图 2** 串口工具控制界面-常发测试

  3. 通过远程桌面连接无线综测仪后,如图3所示勾选Bluetooth模块下面的“Measurements”,打开仪表的非信令模式信号测量功能。

    图 3 无线综测仪功能界面-信号测量

    **图 3** 无线综测仪功能界面-信号测量

  4. 图4中所示红框位置,选择“Config”进行基本参数配置。

    图 4 非信令发送测试主界面

    **图 4** 非信令发送测试主界面

  5. 图5中①所示,设置“Scenario”为“StandAlone(Non Signaling)”,即非信令测试场景。

    图 5 非信令发送测试参数配置界面

    **图 5** 非信令发送测试参数配置界面

  6. 图5中②所示,设置“External Attenuation”为测试环境的实际损耗,“Frequency”和“Channel”设置为所发送常发命令对应的频率和信道(本例为频点 0,即 2402 MHz),“Expected Nominal Power”设置为“20dBm”(此处以实际功率为准,建议在实际功率基础上增加3dB~5dB)。

  7. 图5中③所示,设置“Detection Mode”为“Auto”,“Burst Type”为所发送常发命令对应包类型(本例中为3DH5,所以选择Enhanced Data Rate),勾选“Auto Sync”。
  8. 图5中④所示,设置“Repetiton”为“Continuous”。
  9. 在发送测试主界面,如图6中①所示,点击“Multi Evaluation”打开发送测试后,可在②所示的框图中查询发送相关的射频指标。

    图 6 开启发送测试后的非信令发送测试主界面

    **图 6** 开启发送测试后的非信令发送测试主界面

蓝牙非信令常收测试示例

测试 BT 常收功能时,务必将仪表波形文件中的蓝牙地址设置为与常收命令一致的 112233445566;仪表按 NAP、UAP、LAP 分栏显示时,应按仪表界面规定的字节序填写。地址不一致将导致收包数查询结果异常。

  1. 将串口线缆与单板的命令下发串口连接后,在设备管理器中可以看到对应的端口号,如图1所示。

    图 1 设备管理器界面-常收测试

    **图 1** 设备管理器界面-常收测试

  2. 图2所示,在串口工具中打开蓝牙 UART 串口,然后发送 BT 常收命令。本例设置频点 0(2402 MHz)、包类型 DH5、包长 339 Byte,命令为 AT^BTRX=339,112233445566,0,0,15,1。截图用于说明串口工具的操作位置,命令输入以本步骤所列格式为准。

    图 2 串口工具控制界面-常收测试

    **图 2** 串口工具控制界面-常收测试

  3. 通过远程桌面连接无线综测仪后,如图3所示红框位置勾选General Purpose RF模块下面的“Generator 1”,打开仪器信号发送功能。

    图 3 无线综测仪功能界面-常收测试

    **图 3** 无线综测仪功能界面-常收测试

  4. 图4中①所示,设置“Ext.Att.(Output)”为测试环境实际的损耗,“Frequency”设置为所发送常发命令对应的频率(本例中为2402MHz),“Level(RMS)”设置为本次计划测试的接收功率大小。

    图 4 信号发送功能主界面

    **图 4** 信号发送功能主界面

  5. 图4中②所示,设置“Baseband Mode”为“ARB”。

  6. 图4中③所示,设置“Repetition”为“Single”,"Cycles"为本次计划测试的发送包数(本例中为1500)。
  7. 图4中④所示,点击“ARB”按钮,然后在⑤所示位置点击“Select ARB File...”选择本次计划测试包类型对应的波形文件。
  8. 图4中⑥所示,右键点击“GPRF Generator”按钮选择“On”,仪器即开始发送选中的波性文件;等待一段时间后(建议大于10s),在相同位置右键点击“GPRF Generator”按钮选择“Off”,仪器即停止发送选中的波性文件。
  9. 图5所示,在串口工具中打开蓝牙 UART 串口,然后发送 AT^BTTRXEND。DUT 停止常收并返回接收包数统计回显参数;本例收包数为 1259,即丢包率为 16%。

    图 5 串口工具控制界面-常收测试

    **图 5** 串口工具控制界面-常收测试

可视化界面

根据研发阶段和产测阶段的传导测试需求,分别在DebugKits工具和FactoryTools工具上增加了可视化界面。

DebugKits RF TEST

图 1 RF TEST界面

**图 1** RF TEST界面

  1. 图1所示,选中①system,在②中选中 RF TEST选项。
  2. 在③中选择当前AT口,调整UART配置后单机“Open”按钮打开串口。
  3. 在④中配置当前需要发送的传导测试命令,单击 RF 测试命令发送按钮 发送。
  4. 在⑤中打印当前命令及回显。

产线无线 AT 方案

产线中整机段无UART口供调试,故推出产线无线AT方案。如图1所示,产线中通过蓝牙Dongle实现AT命令下发。Dongle通过UART与PC连接,通过BR/BLE与单板通信,实现AT命令的无线交互。

图 1 产线无线AT方案硬件框图

**图 1** 产线无线AT方案硬件框图

说明: 使用蓝牙Dongle首先需添加编译宏‘FT_DONGLE’。完成烧录后,根据AT命令配置Dongle和芯片实现AT命令下发等功能。

相关AT命令一览表

产测蓝牙Dongle连接需要用到的部分AT命令如表1表2所示。

说明:

  • 蓝牙Dongle推荐型号请咨询AE。
  • 无线AT方案多使用于整机段,无法通过AT指令配置芯片蓝牙状态,需要在产测阶段进行默认状态的配置及切换。

表 1 单板AT命令

命令描述

产测AT指令

示例

命令说明

查询蓝牙MAC地址

AT^BTCFG?

NA

返回单板的蓝牙MAC地址(6 Byte)。

设置蓝牙MAC地址

AT^BTCFG=<param1>,<param2>

AT^BTCFG=addr,112233445566

  • param1:addr(表示设置MAC地址)
  • param2:

    MAC地址(6 Byte 十六进制)。

    注意配置地址后需要重启方能生效

表 2 Dongle AT命令

命令描述

产测AT指令

示例

命令说明

串口通信测试

AT

NA

测试PC和Dongle间的UART通讯。

读BR蓝牙MAC地址

AT+ADDR

NA

返回模块的BR MAC地址(6 Byte)。

打开/关闭串口流控

AT+FLOWCTL=<param>

AT+FLOWCTL=0

param:

  • 0:关闭流控。
  • 1:打开流控。

读/写串口波特率

AT+BAUD{=<param>}

AT+BAUD

AT+BAUD=921600

param:波特率。

打开/关闭透传模式

AT+TPMODE{=<param>}

AT+TPMODE

AT+TPMODE=1

param:模式0/1

  • 0:指令模式。
  • 1:透传模式。

当在SPP/GATT协议下连接并且打开透传模式时,AT指令将会被禁用,通过UART接收的每个字节将被发送到远端。

读/写设备类型

AT+COD{=<param>}

AT+COD

AT+COD=009F00

param:设备类型(3 Byte,即 6 位十六进制字符)

建立SPP连接

AT+SPPCONN=<param>

AT+SPPCONN=112233445566

param:目标设备 MAC 地址(6 Byte,即 12 位十六进制字符)

AT指令生成

无线AT提供封装穿戴协议脚本,可快速生成通过DONGLE发送可以解析AT指令。

工具:at_convert.py

生成方式只需要将脚本中“at_cmd”变量修改为需要执行的AT指令然后使用python3执行即可。

图 1 at_cmd声明位置

**图 1** at\_cmd声明位置

表 1 AT命令参数表

领域

AT命令

Pkt(参数)均为uint8_t类型字符串

MCU

AT+REBOOT

NA

AT+FSRM

"/user/bin/,1"

1:文件大小

AT+GETWSTPVER

NA

AT+STACKINFO

NA

AT+PMRMVOTE

NA

AT+PMADDVOTE

NA

AT+SHIPMODE

NA

AT+PERIPHERALSID

0:emmc

1:nand

2:nor

3:psram

BT

AT^BTTX

参数同传导测试AT^BTTX。

AT^BTRX

参数同传导测试AT^BTRX。

AT^BLETX

参数同传导测试AT^BLETX。

AT^BLERX

参数同传导测试AT^BLERX。

MEDIA

AT^MEDIA=MUSICPLAY,xx,user/music/mp3_48k_caiqing.mp3,1,0

xx:固定标记;

user/music/mp3_48k_caiqing.mp3:码流路径;

1,0:固定标记。

AT^MEDIA=MUSICSTOP,stop

停止命令。

AT^MEDIA=AUDIORECORD,xx,mp3,16000,1,16,/user/audio_cap.mp3

xx:固定标记;

mp3:编码格式;

16000:采样率;

1:声道数;

16:位宽;

/user/audio_cap.mp3:文件存放路径,需注意只能创建文件,不能创建文件夹/目录。

示例

以FT_DONGLE为例,初次使用Dongle与单板通过SPP连接的命令示例如下:

  1. 【Dongle侧】连接Dongle到PC。
  2. 【Dongle侧】发送“AT+BAUD=921600”设置波特率(设置成功后需重选工具波特率)。
  3. 【Dongle侧】发送“AT+TPMODE”查看是否开启透传模式,调至开启状态。
  4. 【Dongle侧】发送“AT+FLOWCTL”查看是否开启流控,调至关闭状态。
  5. 【Dongle侧】发送“AT+COD=009F00”设置设备类型为9F00,防止进入A2DP流程。
  6. 【单板侧】发送“AT^BTCFG=addr,112233445566”配置蓝牙MAC地址。
  7. 【单板侧】重新上下电,等待上电正常。
  8. 【Dongle侧】发送“AT+SPPCONN=112233445566”,连接Dongle与单板。
  9. 修改 /src/tools/bin/at_convert_tool/at_convert.py 内的 at_cmd 参数,将其设为需要执行的AT指令字符串,例如 at_cmd = 'AT^BTCFG?',然后在脚本所在目录执行 python3 at_convert.py 生成一串16进制字符串。
  10. 【Dongle侧】使用串口工具打开dongle端口发送9生成的字符串。

说明: Dongle只需配置一次相关参数,再次使用时无需配置,直接连接即可。

功能测试

AT 工位:音频回环测试

音频回环涉及音频播放、音频录制功能,相关AT功能如表1所示。

表 1 音频回环测试AT指令集

命令描述

产测AT指令

示例

命令说明

音频播放

AT^MEDIA=MUSICPLAY,xx,<param1>,<param2>,<param3>

AT^MEDIA=MUSICPLAY,xx,/user/music/guyong.mp3,1,0

  • xx:保留值,不可编辑。
  • param1:音频文件路径。
  • param2:通路。
  • param3:预留值,不可编辑。

音频播放停止

AT^MEDIA=MUSICSTOP,stop

AT^MEDIA=MUSICSTOP,stop

停止当前音乐播放。

音频录制

AT^MEDIA=AUDIORECORD,xx,<param1>,<param2>,<param3>,<param4>,<param5>

AT^MEDIA=AUDIORECORD,xx,mp3,16000,1,16,/user/test/audio_cap.mp3

  • xx:保留值,不可编辑。
  • param1:音频格式。
  • param2:采样率。
  • param3:声道数。
  • param4:采样位宽。
  • param5:音频文件路径。

说明: 使用“AT指令生成”章节内容实现音频回环测试时,只需要填写 '=' 后的参数即可。

恢复出厂设置

表 1 恢复出厂设置相关AT命令

命令描述

产测AT指令

示例

命令说明

清除NV对应区域

AT^RECOVERY=<operation>,<region_mask>

按当前产测版本配套的受控接口资料填写

<operation>:恢复动作;

<region_mask>:NV 区域选择掩码,区域位与 NV region 的映射由产测固件版本配套的接口资料定义。实际产线必须按匹配版本的正式接口资料确定参数,不得直接复用其他版本的掩码。

成功:OK~

失败: ERROR