在涂鸦IoT平台使用免开发方案配置完成,成功生成固件后;或使用自定义开发方案成功开发生成固件并上传到涂鸦IoT平台后。需要对模组进行烧录授权,那么如何对模组进行烧录授权?本章节将会详细的对几种不同的烧录授权方式进行讲解。
文章中的生产凭证、授权码和token均描述同一事物。
在烧录授权之前,需要做下列准备:
进入涂鸦PMS系统,如果没有PMS系统的账号,需要先注册一个PMS账号。
注册流程如下图,选择个人开发者即可,按照系统注册指引填写相关信息。等邮箱收到涂鸦发送过来的邮件就说明审核已经通过。
1.审核通过后,输入你的账号、密码,即可成功登录涂鸦PMS系统。登录成功后,依次点击知识库管理->软件下载->生产解决方案
开始下载「生产解决方案」。
2.下载完成后,开始准备安装「生产解决方案」。
双击「生产解决方案」安装包,可能出现下面的警告,点击更多信息。
点击仍要运行。
3.安装过程中,程序安装的位置可以根据自身需求进行设置,建议不要有中文路径,避免出现一些意想不到的问题。
安装完成后,启动「生产解决方案」,登录的账号和密码与涂鸦PMS系统(涂鸦智造)的账号和密码一样。
然后点击云模组打开[云模组烧录授权工具]
4.如果安装完成后出现下图的情况:红色箭头指向的红色框内全为白色。那么我们还需要对软件做一些设置使它恢复正常。如果为红色箭头指向的红色框内为黄色,则说明安装成功,可跳到1.3进行阅读。
5.点击文件->设置
。
6.将箭头①指向的“多路选择”的1*1
选项改为1*2
,点击“确认”。
7.“多路选择”改变后如下图所示,会出现两个黄色框。
8.将多路选择的1*2
,改回到1*1
,使两个黄色框变为一个黄色框,「云模组烧录授权工具」的设置就完成了。
在烧录时,根据使用涂鸦三明治SoC开发板还是涂鸦模组进行开发的不同,在烧录授权的流程上也有点不一样。如果你手里有涂鸦的三明治开发板那么使用「云模组烧录授权平台」这个软件来烧录授权的话将会比较方便的。
该方案适用于 发布阶段 ,使用自定义开发方式创建的产品,需要先将编译好的固件上传到涂鸦IoT云平台,获取到生产凭证(token)后,才能使用「云模组烧录授权平台」给模组进行烧录授权。
由于涂鸦模组必要进行授权才能连接涂鸦平台,如果你手中的模组没有经过经过授权,那么是无法连接到涂鸦平台(从涂鸦IoT平台购买后,涂鸦发出的模组都是烧录授权好的模组)。授权完成的模组如果想不再次授权而烧录自己开发好的固件或更改后的固件,可以直接参考 本章2.3 使用原厂工具烧录。
2.1.1 上传固件
固件不上传到云平台,直接将UA文件烧录到已授权的模组中,会导致配网一直无法成功。
1.进入涂鸦IoT云平台在开发的产品中找到“硬件开发”,按照下图指示点击“新增自定义固件”,填写相关固件信息。
“固件标识名”必须和你编译时的apps
下的工程文件夹的名称一致。
也就是说这里的固件标识名填写为
wifi_one_light
,那么上传的固件应为SDK包中apps
目录下的wifi_one_light
文件夹中编译所生成的固件。
“Flash大小”为16Mbit
也就是2M大小。不同模组的flash大小可以在涂鸦的文档中心中查看相关模组的flash大小。
1byte(字节) = 8bit(位)。 16Mbit / 8 = 2M。
相关信息填写完成后(没有被②的框框圈到使用默认设置),点击上传固件,进入下一步,开始上传固件。
2.“固件版本”需要和编译时输入的版本号对应一致。“生产固件”上传包含QIO
的bin文件,“用户区”上传包含UA
的bin文件,“升级固件”上传包含UG
的bin文件。运行模式选择QIO
。点击保存。
3.点击“进行固件上架”。
4.选择“不限范围”,点击“确认上架”。
注意:这里选择不限范围是为了个人时为了方便管理产品。如果是公司将要量产的产品,请根据你的实际需求设置允许使用范围。
2.1.2 获取生产凭证(token)
将固件上传到涂鸦IoT平台成功上架后,就可以免费领取激活码,使用激活码通过「云模组烧录授权平台」工具进行烧录授权。
1.点击“免费领取激活码”。
2.交付方式选择“生产凭证”,点击“提交订单”。
“生产凭证”:产测授权工具“烧录授权”功能读取的凭证编码,可自动抓取指定数量的授权码,随固件一起逐个写入设备。需上传生产固件至涂鸦IoT平台。
“授权码清单”:写着每一个授权码UUID及相关信息的表单,需自行逐个写入设备。
“生产凭证-仅授权”:产测授权工具“独立授权”功能读取的凭证编码,无需固件,即可对设备进行逐个授权。
3.点击“去订单列表页看看”。
4.确认箭头①所指向信息是否正确,确认无误后点击箭头②的“下载生产凭证”。
5.解压下载好的“生产凭证”,打开Token_information.txt
文件,复制“生产凭证”。在「云模组烧录授权平台」工具中输入生产凭证,选择工位“烧录授权”。
6.这里可能会出现获取token失败,没有操作权限
的错误,解决办法请参考本章节的3.2 获取token失败,没有操作权限中的解决办法。
7.生产凭证输入完成后,会如下图显示。会在“基础信息”一栏中显示固件的相关信息。
2.1.3 烧录授权
1.在「云模组烧录授权平台」根据按照箭头的指引,输入生产凭证,选择工位为“烧录授权”,点击确认。
2.按照下表通过USB转UART工具把三明治开发板与电脑连接起来。
USB转UART引脚 |
三明治SOC开发板引脚 |
---|---|
VCC |
VCC |
GND |
GND |
TX |
RX |
RX |
TX |
选择烧录的串口,点击运行,然后马上给模组断电再上电或按下复位按键使模组重启,等待一会时间就会发现开始对模组进行烧录授权操作了。
重启模组不要直接把串口工具从电脑上拔掉,这样会导致烧录失败的。应拔掉再插上模组与串口工具连接的VCC和GND的杜邦线。
CBU的三明治SOC开发板自带了CH304串口芯片。在点击运行后,按下CBU的三明治SOC开发板上USB口旁的复位按键即可重启芯片,开始烧录授权。
3.如果在烧录授权过程中出现进入产测失败的错误,可能原因是因为这个开发板在上一次烧录授权后已经累计连接到网络超过了15分钟了。设备此时关闭了产测功能,导致无法进入产测出现了授权失败的情况。解决办法参考 本章的3.1 进入产测失败 的内容进行解决。
本方法适用于仅涂鸦三明治开发板的烧录授权。
在涂鸦IoT平台上使用免开发方案创建的产品只能通过绑定三明治SoC主控板后在三明治开发套件中申请授权码的方式申请到生产凭证(token)。如果你的账号下没有绑定过三明治SOC主控板,只有涂鸦的模组,那么是没有办法获取到免开发方案产品的token,也就没有办法给模组烧录授权免开发方案的固件。
2.2.1 绑定三明治开发板
打开涂鸦IoT平台,点击产品->开发者工具中的三明治开发板->绑定开发板
,然后在弹出的窗口中输入开发板上的ID和密码,即可完成绑定。
2.2.2 三明治开发板获取Token
绑定完成后,根据下方图片中的箭头指示顺序进行操作,选择将要烧录的产品后,点击“申请新的授权码”,便可成功申请到授权码。
2.2.3 烧录授权
1.复制从涂鸦IoT平台上获取到的授权码后,然后打开「云模组烧录授权平台」。
2.烧录授权可以参考 本章节中的2.1.3 烧录授权 ,进行操作。
该方案适用于开发阶段。该方案的特点是 授权一次,重复烧录。该方案需要确保在烧录前烧录的模组已经授权完成,且烧录是要注意烧录时选择的flash区域,避免程序写入错位置导致程序无法正常运行。
在开发过程中,如果每次使用「云模组烧录授权平台」对模组进行烧录授权的话,每次烧录前还要去涂鸦IoT平台上传固件,在开发调试期间来说是比较麻烦的。在对一个模组授权完成后,使用原厂工具设置好烧录时的起始地址和操作长度,然后烧录应用区固件,是不会刷掉模组的授权信息,从而到达 授权一次,重复烧录 的效果。
2.3.1 Beken平台
使用该方法只能烧录应用区固件,无法给模组进行授权操作。可以使用该方法给已经授权过的模组进行烧录,避免每次更新代码生成固件后都要上传到涂鸦IoT平台使用「云模组烧录授权平台」工具进行烧录授权。
按照下图步骤,在箭头①所指向的烧录对象中,根据实际烧录的模组选择对应的芯片型号,可在文档中心查看相关模组规格书进行确认模组使用的芯片型号。
点击箭头②指向的“浏览”按钮,选择成功编译生成的包含了UA
字样的bin文件(该文件就是应用区固件,这里选择的固件就是wifi_one_light
)。
在箭头③和箭头④指向的起始地址
中填入0x00011000
,操作长度
中填入0x00119000
。
在箭头⑤指向的位置选择正确的烧录串口,将箭头⑥指向的“通讯波特率”调整为最高可以加快烧录速度。
点击箭头⑦指向的“烧录”,给模组通断电或复位模组使模组重启,开始烧录。
烧录完成后,便成功将更改后的代码烧录到模组中,可以不再使用「云模组烧录授权平台」工具对该模组再次进行授权操作。
在我们输入生产凭证完成后,可能会出现获取token失败:没有操作权限
的提示。
出现该错误需要在PMS系统中,按照下图指示,依次点击“生产管理->工单管理->生产凭证确认”,然后输入刚刚没有操作权限的“生产凭证”点击“确认”。再回到「云模组烧录授权平台」工具中输入该生产凭证点击确认即可开始烧录授权操作。
可能别的软件占用了烧录使用的串口,将使用了烧录串口的串口工具软件全都关掉,或直接插拔 USB 转 TTL 串口工具。如果上述操作都不能解决该问题,建议关机重启,再次尝试。
在一些仅授权的场景下,可能会出现“获取固件指纹错误”的情况,如下图显示。导致该错误出现的原因是由于模组内烧录的固件名称或版本号与授权的固件名称或版本号不一致。
解决办法:
1.输入与模组内固件名称和版本号一致的生产凭证(token),然后在进行授权处理。
2.对该模组进行烧录授权处理(非仅授权)。
设备在累计连网时间超过了15分钟后会关闭产测功能。在烧录授权过程中,如果出现`进入产测失败`,并且日志中有have actived over 15 min, not enter mf_init字样的日志打印说明设备关闭了产测功能,我们需要擦除flash中的相关数据才能授权成功。
3.4.1 修改代码(通用方式)
在出现进入产测失败的情况下,我们可以在tuya_device.c
文件内,在pre_device_init()
函数内调用mf_test_ignore_close_flag();
函数,忽略产测关闭标志,从而避免因为产测关闭而无法通过授权。
3.4.2 Beken系列,使用原厂工具擦除相关数据
高危操作!!!。
首先我们打开Beken原厂提供的烧录授权bk_writer
工具,按照下图步骤将箭头①指向的烧录对象
选项改为对应的芯片。模组具体使用的什么芯片,可以在涂鸦的文档中心中查看相关模组的规格书。
这里我们将三明治SOC开发板中使用Beken平台的开发板做一个简单的介绍:
WB3S: 烧录对象选择BK7231
CBU: 烧录对象选择BK7231N
起始地址:0x001EE000
,操作长度:0x00012000
。
选择开发板的烧录串口,点击“擦除Flash”按钮,重启模块开始擦除内存数据。