蓝牙BLE从机Peripheral讲解七(CH582OTA升级/空中升级使用说明)

一、CH582OTA方式

1、onlyupdata固定库方式升级讲解

582提供OTA升级方式,即通过空中无线方式实现设备固件升级。OTA升级方式分为两种:备份升级方式、APP+IAP+LIB方式。具体的区别可以见582EVT中的安卓OTA工具。这里我们主要讲解一下第二种方式:APP+IAP+LIB方式。
首先需要准备升级工具:BLE_OTA_Android.ZIP - 南京沁恒微电子股份有限公司 (wch.cn),下载APP,界面如图:

同时安卓手机应用商城下载BLE调试助手。

两个APP下载完成后,我们打开EVT,将相应的hex工程合并升级,如下图:

 这里合并生成一个新的bin文件,将合并生成的bin文件烧录至CH582单片机。同时将OnlyUpdateApp_Peripheral中的hex文件放入OTA升级工具APP中,imageA和imageB中都放置此hex文件,如图:

 使用BLE调试助手连接582蓝牙芯片,会出现如图标志:

点击连接,通过自定义服务的通道3发送1个字节的数据,蓝牙会断开连接。此时使用OTA升级工具搜索后,会发现设备名称已被修改为OTAOTA_OTAOTA_OTA。

 

点击连接,进入OTA升级界面,再点击GETINFO,IMAGEA或者IMAGEB会亮起,选择亮起的,可进行选择升级固件(此固件为上述手动放入手机APP中的固件),选择好固件后,点击最下方的START,芯片开始升级,如图:

    

此时固件升级成功。 

 2、IOS升级讲解

IOS系统升级可下载链接内容,附文档说明。

BLE_OTA_iOS.ZIP - 南京沁恒微电子股份有限公司 (wch.cn)

3、BackupOTA升级讲解

BackupOTA方式:先jump到iap,iap检测标志,选择是否正常运行APP。检测到升级标志则APP开始搬运待升级程序到备份区,搬运完成后,IAP会擦除APP的程序并将备份区的程序搬到APP区。

BackupOTA资源占用如下图参考:

注意:在将hex放置在imagea和imageb文件夹时,都可以进行放置。但是在getinfo获取信息的时候,获取到的是imagea的信息,所以APP端只有imagea可选择,iamgeb无法进行选择。

官方例程升级方式的0x1000-0x6D000,前一半是APP运行区,后一半是备份区。如果需要A区B区来回切换运行和备份区功能,需要二次开发:即LD跳转地址修改,getinfo的标志修改(根据待升级选择固件放置在特定的image文件夹)。

二、CH573OTA修改USER(APP)程序大小:

使用固定库方式(OnlyUpdate)进行OTA,库是放置在0x10000的位置,此时的USER可操作空间只有44K,对于571芯片是刚好可以利用好空间。在使用573F芯片时,FLASH有448K的CodeFlash可使用。因此对于573F的芯片可以适当的增加USER空间大小。如图:

先分配好空间大小,然后进行修改,主要修改为startup_CH573.S和Link.ld文件,具体修改可以参考下图:

 

 如上修改,可以实现USER可操作空间扩大。

需注意,在OTA合并生成bin文件时对LIB的选择需要修改,如图:

三、CH582OTA针对APP编译烧录(测试可用)

这里使用OTA测试时对于工程师不友好,每次进行调试都需要合并后烧录,操作较多,下面提供一个方法直接烧录:

使用的是OnlyUpData_OTA

1、使用WCHlink开启使能两线仿真接口;

2、将四个工程合并,然后使用link的下载方式下载进去:

 3、打开MRS程序的调试配置,先做如下配置(不可重新开启两线仿真,不可点击下载,否则从第一步重新开始):

4、点击仿真按键,全速跑一下,BLE调试助手可以搜索到蓝牙。

退出仿真,需要修改USER程序,编译后重新进入仿真,会发现程序已经做了相应的修改。

 

注意:OTA涉及程序的跳转,因此地址不要做修改;

为什么不可重新开始两线仿真和下载?因为会擦除芯片里的程序或者程序被重新下载,变成非我们所需要的程序。

四、CH9141OTA方式(转载)

1、获取版本号
(方法一:
步骤:

①将模块设置工作在从机模式下(已是从机模式就忽略);
②使用安卓端CH9141调试APP,对模块进行连接;
③连接成功后,获取模块的参数配置;
④版本号在“配置参数”->“模块参数”->“版本号”
(方法二:
步骤:

①使用串口与模块相连;
②使用AT命令进入AT模式;
③发送获取芯片版本号的AT命令;
④模块返回版本号;

2、版本号小于1.04版本的升级方式
步骤:

①将模块设置工作在从机模式下(已是从机模式就忽略);
②使用安卓端CH9141调试APP,对模块进行连接;
③连接成功后,进入固件升级界面;
④获取当前image信息,如果当前的image信息是A则进行步骤5,如果当前的image信息是B则进行步骤7
⑤安卓手机下根目录下有以“CH9141”为首的文件夹,文件夹是APP自动生成的,将“CH9141_update_ImageB v100.BIN”文件放入该文件夹里imageB文件夹内;
⑥打开APP进入升级界面,选择imageB,选择“CH9141_update_ImageB v100.BIN”文件进行升级,等待升级结束;
⑦将最新固件的imageA放入imageA文件夹内,选择最新的固件进行升级,等待升级结束;

3、版本号大于等于1.04版本的升级方式
步骤:

①将模块设置工作在从机模式下(已是从机模式就忽略);
②使用安卓端CH9141调试APP,对模块进行连接;
③连接成功后,进入固件升级界面;
④安卓手机下根目录下有以“CH9141”为首的文件夹,文件夹是APP自动生成的,将最新升级文件对应放入imageA文件夹和imageB文件夹内;
⑤获取当前image信息,根据当前image信息,软件会显示有效image按键,根据按键进行选择文件进行升级即可,升级规则是当前是imageA则选择imageB,反正选择imageA


注:
新版APP生成的文件夹:
内部存储设备\Android\data\cn.wch.ch9141tool\files\CH9141OTA
imageA和imageB

旧版APP生成的文件夹在根目录下以“CH9141”为首的文件夹

 

posted @ 2022-07-25 20:04  SweetTea_lllpc  阅读(3172)  评论(0编辑  收藏  举报