固件开发完成后,需要将固件和授权码烧录到设备内,才可以连接云服务。涂鸦提供多种烧录授权方式供您使用,您可在不同的开发阶段选择合适的烧录授权方式。
一. 方案介绍
1.1 烧录授权一体方案
烧录授权一体方案指的是 烧录 和 授权 都通过 涂鸦云模组烧录授权平台 实现,涂鸦云模组烧录授权平台已经集成了涂鸦标准芯片的烧录软件,您需要将固件按规范传到 涂鸦 IoT 平台,然后获取 授权码 (生产凭证) 进行烧录授权。
1.2 烧录授权分立方案
烧录授权分立方案适用于 开发调试阶段 或 涂鸦云模组烧录授权平台 未集成芯片的烧录软件 时,您可使用芯片烧录软件进行固件烧录,根据授权方式的不同可分为以下两种情况:
- 自行写入授权码:涂鸦以 MS Excel 文件形式提供 授权码 (授权码清单),您需要将其写入固件实现授权,然后通过芯片烧录软件完成烧录授权。
- 使用涂鸦上位机写入授权码:您需要将固件按规范传到 涂鸦 IoT 平台,获取 授权码 (生产凭证-仅授权) 后即可通过 涂鸦云模组烧录授权平台 完成授权,通过芯片烧录软件进行固件烧录。
二. 固件上传
如果选择通过 涂鸦云模组烧录授权平台 进行授权,需要先在 涂鸦 IoT 平台 的【硬件开发】页面上传固件。
- 新增固件。进入产品【硬件开发】页面,单击下图中的【新增自定义固件】。
- 填写固件信息。(点击各条目的 “?” 图标查看填写说明)
- 固件标识名:必须与 步骤 3 中配置的固件标识名保持一致;
- Flash 大小:可以在 模组规格书 的产品概述中找到;
填写完成后点击【生成固件 KEY】,如果提示【标识名已存在】,则需重新填写新的标识名。固件标识名具有 唯一性,不可与已创建的固件重复,可根据产品规格或个人喜好进行命名,例如【芯片平台+产品类型+产品特性+厂商标识名/个人姓名缩写】。
- 配置固件。打开 SDK 中 tuya_ble_sdk_demo\app 路径下的 tuya_ble_sdk_demo.h 文件,修改 产品 ID 、固件标识名 和 固件版本号,固件标识名必须与 步骤 2 中填写的 保持一致。固件版本的定义可以参考 固件版本说明,蓝牙单点固件的版本号一般采用 bv.sv (0.0~99.99) 格式,对应于代码中 TY_DEVICE_FVER_NUM 的低 16 位,比如版本号为 1.10 时,TY_DEVICE_FVER_NUM 为 0x0000010A (00 00 01 0A)。
/* 将“xxxxxxxx”替换为在涂鸦IoT平台上创建的产品的PID */
#define TY_DEVICE_PID "xxxxxxxx"
/* 修改固件名称和版本号,上传固件时填写的信息需与这里一致 */
#define TY_DEVICE_FIR_NAME "ble_module_sdk_development_demo"
#define TY_DEVICE_FVER_NUM 0x00000001
#define TY_DEVICE_FVER_STR "0.1"
打开 SDK 中 tuya_ble_sdk_demo\app 路径下的 tuya_ble_sdk_test.h 文件,将 TUYA_BLE_SDK_TEST 的值修改为 0,以关闭测试模式;
/* 将 1 修改为 0,关闭测试模式 */
#define TUYA_BLE_SDK_TEST 0
- 生成固件。对修改后的代码进行编译,生成用于烧录的固件。对于 TLSR825x 平台而言,代码编译前建议对工作区文件进行刷新后再编译,编译生成的固件为 ble_sdk_multimode\8258_module\8258_module.bin。
- 新增固件版本。在 步骤 2 生成 固件 KEY 后,可以看到【当前版本】中提示【!无生产版本】,点击下方的【新增固件版本】进入【上传固件】页面。
- 上传固件。(点击各条目的 “?” 图标查看填写说明)
- 固件版本:必须与 步骤 3 中配置的固件版本 保持一致。
- 生产固件:用于传递给工厂烧录的固件文件。
- 用户区固件:用于传递给工厂烧录的固件文件。
- 升级固件:用于固件升级 (OTA) 的固件文件,首次上传固件时可忽略。对于 TLSR825x 平台而言,生产固件、用户区固件、升级固件均为 8258_module\8258_module.bin。
如果是在 步骤 2 直接点击【上传固件】进入 步骤 6 的,那么可能会在点击【保存】后才提示【标识名已存在】,可以点击【返回上一步】回到 步骤 2 所示页面,修改固件标识名,同时要修改 本地固件 中的标识名。然后再点击【上传固件】进入 步骤 6 所示页面,并将鼠标移至已上传的 8258_module.bin 上,点击右侧出现的 删除 图标,再上传新的固件。
- 进行固件上架。
- 设置上架内容和上架范围后上架固件。
- 固件管理。可在左侧导航栏【固件管理】中找到固件,点击【详情】可查看更多固件信息。
三. 授权码获取
3.1 模组
在【硬件开发】页面选择好云模组后即可获取授权码,操作步骤如下:
- 点击【立即购买】进入 购买详情 页。(新用户可免费申请 2 个授权码,参考步骤 5)
- 设置 数量 后,点击【立即购买】进入 订单信息确认 页面,确认信息无误后 提交订单 完成购买。
- 如果仅购买授权码,可点击右上角“×”号退出模组的 购买详情 页,并在 通用备货采购 页面选择 授权码-通用版 进行购买。该页面也可通过左侧导航栏的 采购 - 采购商品 - 生产研发采购 中进入。
- 在 购买详情 页设置 产品 和 交付形式 后完成授权码购买。
- 如果选择 “免费领取 2 个激活码”,在 免费领取授权码 页面设置好 交付形式 后下单即可。
- 订单提交后,可在 采购 - 订单管理 - 采购订单 中进入 调试样品&样品订单 页面,下载产品对应的授权码。
3.2 三明治开发板
如果使用 涂鸦三明治开发板 进行开发,获取授权码的步骤如下:
- 进入 三明治开发板 管理界面,绑定开发板。
- 单击【申请新的授权码】,选择对应的 产品 后,单击【确定】即可获得授权码。
如果申请失败并提示“您需要先申请到烧录软件专门的账号”,请先在 涂鸦PMS 系统 注册页面完成账号申请,申请的手机号 (账号) 要与 IoT 平台的手机号 (账号) 保持一致。
四. 固件烧录授权
在烧录授权之前,请确认是否已按照 第 3 课:环境搭建 中的方法准备好了以下烧录环境:
- 已注册了 PMS 账号;
- 已安装了 生产解决方案 和 原厂烧录软件 ( BTU模组:Telink BDT );
- 已准备了安装有 涂鸦蓝牙模组的 的 开发板 、芯片专用烧录器 和 USB 转串口工具。
下面根据授权码的三种交付形式进行固件烧录授权的操作步骤说明。
4.1 生产凭证
- 将 开发板 与 USB 转串口工具 及 烧录器 (Telink) 连接。
有些芯片平台只需要连接 USB 转串口工具,TLSR825x 芯片平台必须两个都连接!
- 打开 生产解决方案 软件,登录 PMS 账号。
- 点击 云模组 进入 涂鸦云模组烧录授权平台。
- 选择 端口号,输入 生产凭证,工位选择 烧录授权。
- 点击 运行 完成烧录授权。
4.2 授权码清单
- 将 开发板 与 烧录器 (Telink) 连接。
- 从授权码清单中选取一组 uuid、authkey 和 mac 地址 填入 tuya_ble_sdk_demo.h 中的对应位置。
#define TY_DEVICE_PID "xxxxxxxx" /* PID */
#define TY_DEVICE_MAC "xxxxxxxx" /* mac */
#define TY_DEVICE_DID "xxxxxxxx" /* uuid */
#define TY_DEVICE_AUTH_KEY "xxxxxxxx" /* authkey */
- 在 tuya_ble_sdk_demo.c 中的将初始化参数 use_ext_license_key 和 device_id_len 分别修改为 1 和 DEVICE_ID_LEN (即 16),以使上述授权码生效。
static tuya_ble_device_param_t tuya_ble_device_param = {
.use_ext_license_key = 1, /* 1-info in tuya_ble_sdk_demo.h, 0-auth info */
.device_id_len = DEVICE_ID_LEN, /* DEVICE_ID_LEN-info in tuya_ble_type.h, 0-auth info */
.p_type = TUYA_BLE_PRODUCT_ID_TYPE_PID,
.product_id_len = 8,
.adv_local_name_len = 4,
.firmware_version = TY_DEVICE_FVER_NUM,
.hardware_version = TY_DEVICE_HVER_NUM,
};
- 对代码进行编译后,使用芯片原厂烧录工具 Telink BDT 烧录固件 8258_module.bin。
4.3 生产凭证-仅授权
- 将 开发板 与 USB 转串口工具 及 烧录器 (Telink) 连接。
- 打开 生产解决方案 软件,登录 PMS 账号。
- 点击 云模组 进入 涂鸦云模组烧录授权平台。
- 单击【文件】-【设置】,启用【只授权】选项。
- 选择 端口号,输入 生产凭证,工位选择 烧录授权。
- 点击 运行 完成授权。
- 打开芯片原厂烧录工具 Telink BDT,按下图步骤完成固件 (8258_module.bin) 烧录。
五. 固件二次烧录
如果是在 开发调试阶段,在完成首版固件烧录授权之后,如果要二次烧录修改后的固件,一般使用 原厂烧录软件和芯片专用 烧录器 进行固件烧录。(即一次授权,多次烧录)
- 将 开发板 与 烧录器 (Telink) 连接。
- 对代码进行编译后,使用芯片原厂烧录工具 Telink BDT 烧录固件 8258_module.bin。
六. 设备联网测试
完成固件烧录授权后,即可通过 智能生活 APP 测试设备是否能正常配网。
- 打开 智能生活 APP,添加设备。方法 ①:在 首页 点击右上角 “+” 号进入 添加设备 页面,看到产品图标时进行添加;
方法 ②:在 添加设备 页面找到 传感 品类,选择 温湿度传感器(蓝牙),扫描到设备后点击 “+” 号进行添加。
- 进入设备面板,查看固件版本。成功连接设备后,可从 首页 进入设备面板,然后点击右上角图标进入 设置 页面,点击 设备升级 即可查看设备的固件版本。
- 获取设备虚拟 ID,查看云端日志。在 设置 页面点击 设备信息 即可获得设备的 虚拟 ID;
进入 涂鸦 IoT 平台,从左侧导航栏的【产品】-【设备】进入 设备管理 页面或 设备日志 页面,根据 设备 ID 找到对应的设备,即可查看该设备的状态和日志等信息。
七. 常见问题解答
7.1 不同芯片平台的烧录授权方法
本节课主要介绍了 TLSR825x 平台下 BTU 模组 的烧录授权方法,如果您使用的是其他芯片平台的涂鸦标准蓝牙模组,可以同时参考 烧录授权 - BLE 模组 中的文档来完成烧录授权工作。
7.2 云模组烧录授权平台常见问题
7.2.1 获取token失败:没有操作权限
输入【生产凭证】点击【确定】后出现【获取token失败:没有操作权限】提示,可在 PMS 系统的【生产管理 - 工单管理 - 生产凭证确认】中进行生产凭证确认后,再重新尝试。
7.2.2 端口异常
点击【运行】按钮后出现【端口异常2】提示,可能的原因有:
- 串口驱动未安装;
- 串口工具没插好、接线有误或接触不良等硬件连接问题;
- 端口被占用,如串口调试助手上打开了该端口。
7.2.3 获取固件指纹错误
点击【运行】按钮后出现【获取固件指纹错误】提示,说明模组内已烧录的固件的 固件标识名 或 固件版本 与授权码绑定固件的固件标识名或固件版本不一致。该错误一般出现在 仅授权 情况下,解决方法有:
- 使用和模组内固件标识名及版本号一致的生产凭证进行授权;
- 使用非仅授权方案,重新对模组进行 烧录授权。
7.2.4 进入产测失败
点击【运行】按钮后出现【进入产测失败】提示,可能原因有:
- 设备已联网超过 15 分钟,产测关闭,需要擦除 Flash 中的对应区域的数据信息;
- 串口选错或者 TX 和 RX 接错,请检查接线是否正确;
- 波特率选择错误,需在【文件 - 设置】中选择正确的【烧录波特率】;
- 对于一些供电要求比较高的芯片,需要供电稳定的 USB 口进行烧录授权。