涂鸦蓝牙SDK开发系列教程——4.烧录授权

Posted 三明治开发社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了涂鸦蓝牙SDK开发系列教程——4.烧录授权相关的知识,希望对你有一定的参考价值。

固件开发完成后,需要将固件和授权码烧录到设备内,才可以连接云服务。涂鸦提供多种烧录授权方式供您使用,您可在不同的开发阶段选择合适的烧录授权方式。


方案介绍

烧录授权一体方案

烧录授权一体方案指的是 烧录授权 都通过 涂鸦云模组烧录授权平台 实现,涂鸦云模组烧录授权平台已经集成了涂鸦标准芯片的烧录软件,您需要将固件按规范传到 涂鸦 IoT 平台,然后获取 授权码 (生产凭证) 进行烧录授权。


烧录授权分立方案

烧录授权分立方案适用于 开发调试阶段 或 涂鸦云模组烧录授权平台 未集成芯片的烧录软件 时,您可使用芯片烧录软件进行固件烧录,根据授权方式的不同可分为以下两种情况:

  • 自行写入授权码:涂鸦以 MS Excel 文件形式提供 授权码 (授权码清单),您需要将其写入固件实现授权,然后通过芯片烧录软件完成烧录授权。
  • 使用涂鸦上位机写入授权码:您需要将固件按规范传到 涂鸦 IoT 平台,获取 授权码 (生产凭证-仅授权) 后即可通过 涂鸦云模组烧录授权平台 完成授权,通过芯片烧录软件进行固件烧录。

固件上传

如果选择通过 涂鸦云模组烧录授权平台 进行授权,需要先在 涂鸦 IoT 平台 的【硬件开发】页面上传固件。

  1. 新增固件。

    进入产品【硬件开发】页面,单击下图中的【新增自定义固件】。

  2. 填写固件信息。(点击各条目的 “?” 图标查看填写说明)

    • 固件标识名:必须与 步骤 3 中配置的固件标识名保持一致;
    • Flash 大小:可以在 模组规格书 的产品概述中找到;

    填写完成后点击【生成固件 KEY】,如果提示【标识名已存在】,则需重新填写新的标识名。固件标识名具有 唯一性,不可与已创建的固件重复,可根据产品规格或个人喜好进行命名,例如【芯片平台+产品类型+产品特性+厂商标识名/个人姓名缩写】。

  3. 配置固件。

    打开 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_NUM0x0000010A (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
    
  4. 生成固件。

    对修改后的代码进行编译,生成用于烧录的固件。对于 TLSR825x 平台而言,代码编译前建议对工作区文件进行刷新后再编译,编译生成的固件为 ble_sdk_multimode\\8258_module\\8258_module.bin

  5. 新增固件版本。

    步骤 2 生成 固件 KEY 后,可以看到【当前版本】中提示【!无生产版本】,点击下方的【新增固件版本】进入【上传固件】页面。

  6. 上传固件。(点击各条目的 “?” 图标查看填写说明)

    • 固件版本:必须与 步骤 3 中配置的固件版本 保持一致

    • 生产固件:用于传递给工厂烧录的固件文件。

    • 用户区固件:用于传递给工厂烧录的固件文件。

    • 升级固件:用于固件升级 (OTA) 的固件文件,首次上传固件时可忽略。

      对于 TLSR825x 平台而言,生产固件、用户区固件、升级固件均为 8258_module\\8258_module.bin

    如果是在 步骤 2 直接点击【上传固件】进入 步骤 6 的,那么可能会在点击【保存】后才提示【标识名已存在】,可以点击【返回上一步】回到 步骤 2 所示页面,修改固件标识名,同时要修改 本地固件 中的标识名。然后再点击【上传固件】进入 步骤 6 所示页面,并将鼠标移至已上传的 8258_module.bin 上,点击右侧出现的 删除 图标,再上传新的固件。

  7. 进行固件上架。

  8. 设置上架内容和上架范围后上架固件。

  9. 固件管理。

    可在左侧导航栏【固件管理】中找到固件,点击【详情】可查看更多固件信息。


授权码获取

模组

在【硬件开发】页面选择好云模组后即可获取授权码,操作步骤如下:

  1. 点击【立即购买】进入 购买详情 页。(新用户可免费申请 2 个授权码,参考步骤 5)

  2. 设置 数量 后,点击【立即购买】进入 订单信息确认 页面,确认信息无误后 提交订单 完成购买。

  3. 如果仅购买授权码,可点击右上角“×”号退出模组的 购买详情 页,并在 通用备货采购 页面选择 授权码-通用版 进行购买。该页面也可通过左侧导航栏的 采购 - 采购商品 - 生产研发采购 中进入。

  4. 购买详情 页设置 产品交付形式 后完成授权码购买。

  5. 如果选择 “免费领取 2 个激活码”,在 免费领取授权码 页面设置好 交付形式 后下单即可。

  6. 订单提交后,可在 采购 - 订单管理 - 采购订单 中进入 调试样品&样品订单 页面,下载产品对应的授权码。


三明治开发板

如果使用 涂鸦三明治开发板 进行开发,获取授权码的步骤如下:

  1. 进入 三明治开发板 管理界面,绑定开发板。

  2. 单击【申请新的授权码】,选择对应的 产品 后,单击【确定】即可获得授权码。

    如果申请失败并提示“您需要先申请到烧录软件专门的账号”,请先在 涂鸦PMS 系统 注册页面完成账号申请,申请的手机号 (账号) 要与 IoT 平台的手机号 (账号) 保持一致。


固件烧录授权

在烧录授权之前,请确认是否已按照 环境搭建 中的方法准备好了以下烧录环境:

  • 已注册了 PMS 账号
  • 已安装了 生产解决方案原厂烧录软件 ( BTU模组:Telink BDT );
  • 已准备了安装有 涂鸦蓝牙模组的开发板 、芯片专用烧录器USB 转串口工具

下面根据授权码的三种交付形式进行固件烧录授权的操作步骤说明。

生产凭证

  1. 开发板USB 转串口工具 连接。

  2. 打开 生产解决方案 软件,登录 PMS 账号。

  3. 点击 云模组 进入 涂鸦云模组烧录授权平台

  4. 选择 端口号,输入 生产凭证,工位选择 烧录授权

  5. 点击 运行 完成烧录授权。


授权码清单

  1. 开发板烧录器 (Telink) 连接。

  2. 从授权码清单中选取一组 uuidauthkeymac 地址 填入 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 */
    
  3. tuya_ble_sdk_demo.c 中的将初始化参数 use_ext_license_keydevice_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,
    ;
    
  4. 对代码进行编译后,使用芯片原厂烧录工具 Telink BDT 烧录固件 8258_module.bin


生产凭证-仅授权

  1. 开发板USB 转串口工具烧录器 (Telink) 连接。

  2. 打开 生产解决方案 软件,登录 PMS 账号。

  3. 点击 云模组 进入 涂鸦云模组烧录授权平台

  4. 单击【文件】-【设置】,启用【只授权】选项。

  5. 选择 端口号,输入 生产凭证,工位选择 烧录授权

  6. 点击 运行 完成授权。

  7. 打开芯片原厂烧录工具 Telink BDT,按下图步骤完成固件 (8258_module.bin) 烧录。


设备联网测试

完成固件烧录授权后,即可通过 智能生活 APP 测试设备是否能正常配网。

  1. 打开 智能生活 APP,添加设备。

    方法 ①:在 首页 点击右上角 “+” 号进入 添加设备 页面,看到产品图标时进行添加;

    方法 ②:在 添加设备 页面找到 传感 品类,选择 温湿度传感器(蓝牙),扫描到设备后点击 “+” 号进行添加。

  2. 进入设备面板,查看固件版本。

    成功连接设备后,可从 首页 进入设备面板,然后点击右上角图标进入 设置 页面,点击 设备升级 即可查看设备的固件版本。

  3. 获取设备虚拟 ID,查看云端日志。

    设置 页面点击 设备信息 即可获得设备的 虚拟 ID

    进入 涂鸦 IoT 平台,从左侧导航栏的【产品】-【设备】进入 设备管理 页面或 设备日志 页面,根据 设备 ID 找到对应的设备,即可查看该设备的状态和日志等信息。


常见问题解答

不同芯片平台的烧录授权方法

本节课主要介绍了 TLSR825x 平台下 BTU 模组 的烧录授权方法,如果您使用的是其他芯片平台的涂鸦标准蓝牙模组,可以同时参考 烧录授权 - BLE 模组 中的文档来完成烧录授权工作。


云模组烧录授权平台常见问题

1 获取token失败:没有操作权限

输入【生产凭证】点击【确定】后出现【获取token失败:没有操作权限】提示,可在 PMS 系统的【生产管理 - 工单管理 - 生产凭证确认】中进行生产凭证确认后,再重新尝试。


2 端口异常

点击【运行】按钮后出现【端口异常2】提示,可能的原因有:

  • 串口驱动未安装;
  • 串口工具没插好、接线有误或接触不良等硬件连接问题;
  • 端口被占用,如串口调试助手上打开了该端口。

3 获取固件指纹错误

点击【运行】按钮后出现【获取固件指纹错误】提示,说明模组内已烧录的固件的 固件标识名固件版本 与授权码绑定固件的固件标识名或固件版本不一致。该错误一般出现在 仅授权 情况下,解决方法有:

  • 使用和模组内固件标识名及版本号一致的生产凭证进行授权;
  • 使用非仅授权方案,重新对模组进行 烧录授权

4 进入产测失败

点击【运行】按钮后出现【进入产测失败】提示,可能原因有:

  • 设备已联网超过 15 分钟,产测关闭,需要擦除 Flash 中的对应区域的数据信息;

  • 串口选错或者 TX 和 RX 接错,请检查接线是否正确;

  • 波特率选择错误,需在【文件 - 设置】中选择正确的【烧录波特率】;

  • 对于一些供电要求比较高的芯片,需要供电稳定的 USB 口进行烧录授权。

更多关于涂鸦蓝牙模组产测的信息可查看 蓝牙 SDK 产测


以上是关于涂鸦蓝牙SDK开发系列教程——4.烧录授权的主要内容,如果未能解决你的问题,请参考以下文章

涂鸦蓝牙SDK开发系列教程——3.环境搭建

涂鸦Zigbee SDK开发系列教程——4.烧录授权

涂鸦蓝牙SDK开发系列教程——6.固件升级

涂鸦蓝牙SDK开发系列教程——5.应用开发

干货满满涂鸦智能模组SDK开发系列课程——5.对模组二次开发

涂鸦蓝牙SDK开发系列教程——2.产品创建