ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-3-09:烧录固件之串口Xmodem BootLoader


【配套源码文档软件硬件等资源,请移步技术交流群:拿破仑ZigBee(263671349)】
【所有相关IDESDK均可从群文件免费获取,也全都是免安装的,解压出来直接就能开始开发】

持续更新中,欢迎关注!

 

(注:实现本文内容,不需要J-Link等任何下载器,所以也不涉及SWD下载口,只需串口转USB即可。)

一、硬件准备

只要把开发板内 Xmodem BootLoader 所用的串口转成USB连接到电脑上,硬件连接就算是完成了。

(注:请确保芯片内已预先烧录了 Xmodem BootLoader

从本文发布之日起,我们所有的开发板(见本文最上方)出厂都会默认烧录 Xmodem BootLoader,并板载了串口转USB电路。如下图所示:

按上图框出部分提示,本文所用开发板内的 Xmodem BootLoader 使用的串口引脚为 PD0-发送 / PD1-接收。此外,辅助进入 BootLoader 的按键为板上的 KEY1(PC2,低电平有效)

所以,如果用的是我们的开发板,只需要用一根USB线,一头连接上图红框中的USB口,另一头连接电脑上就可以了

二、软件准备

(注:本文假设大家都已经安装好了相应的串口转USB的驱动,这里就不再细述。)

本文介绍的固件烧录方式使用的上位机软件是 ECOM,该软件是由 我爱IC导航网工作室 制作的。该软件是免安装的,大家可以直接去文初或文末提及的技术交流群的群文件中 ZigBee(Silicon Labs EFR32)全套资料 分组下去下载。如下图所示:

下载后直接解压到电脑上任意位置,双击运行该软件后,界面如下图所示:

这样,软件准备就算是完成了。

三、烧录固件

前面几篇介绍固件烧录的文章中提及到,需要烧录的固件一般会有 BootLoaderApplication 这两种。但是,本文假定大家所用的开发板已预先烧录了 Xmodem BootLoader。所以,本文介绍的这种固件烧录方式,只适用于烧录 Application 固件。当然,这也是基于 Xmodem BootLoader 再烧录固件的意义所在。

3.1 获取固件

首先需要根据自己芯片的具体型号,生成或获取对应的固件。在文初或文末提及的技术交流QQ群中已经为大家准备好了几款常用 EFR32 芯片的测试固件,直接下载下来就能烧录使用。具体是群文件中 ZigBee(Silicon Labs EFR32)全套资料 分组下的 efr32mg21_efr32mg22_template_v1.0.zip 文件。如下图所示:

下载下来之后解压到电脑上任意位置即可。在解压出来的文件夹中,可以看到有常用的几款 EFR32 芯片各自对应的可串口升级的测试固件。如下图所示:

按照自己所使用的芯片的型号,选择对应的 .gbl 文件。

(注:有 J-Link V9 的用户可以任意选择 .gbl 文件或同名的 .s37 文件进行烧录, .s37 文件不能用于串口烧录)。

3.2 串口设置

在打开的 ECOM 软件界面中选择指定的 串口号 并打开。本文使用的开发板内的 Xmodem BootLoader 使用的 波特率115200,所以这里的软件界面中也必须选择相应的波特率。串口配置完成的软件界面如下图所示:

3.3 发送控制

点击软件界面中的 传输协议,选择 Xmodem。然后点击 打开文件,按自己的需求选中需要烧录的 .gbl格式的固件。这里需要注意的是打开文件的时候, 文件类型 必须选择为 所有文件 才能显示出 .gbl 文件。如下图所示:

发送控制配置完成的软件界面如下图所示:

3.4 烧录固件

3.4.1 进入 BootLoader

进入 BootLoader 之前,我们先按一下开发板上的复位按键,看一下芯片里当前运行的程序的启动信息输出是怎么样的,按完复位键之后,软件界面如下图所示:

本文使用的开发板内的 Xmodem BootLoader 是通过板上的 KEY1 按键辅助进入 BootLoader 的。

具体操作步骤为:按住黄色的 KEY1 按键并保持住,再短按一下板上红色的 RST 按键。此时,可以看到 ECOM 软件的接收窗口打印出了许多提示信息,如下图所示:

这样就表示已经成功进入 BootLoader 了。

(注:串口提示信息有时候可能会出现乱码的情况,应该是 SDK 本身的 bug,不影响使用,可以忽略。)

3.4.2 进入固件传输模式

为了便于用户理解,这里的串口提示信息我是专门修改过的。根据串口提示信息,大家就能知道了,接下来只需要输入字符 1 就可以直接进入 固件传输模式

(注:ECOM 软件直接直接在接收窗口输入,大家直接把光标定位到接收窗口最后面的位置,即可输入信息。)

输入字符 1 之后,大家会看到接收窗口开始不断输出字符 C,如下图所示:

这就表示 EFR32 芯片已经成功进入 固件传输模式 了,正在等待接收固件。

(注:这里使用的 Xmodem BootLoader 内部程序要求:一旦进入固件传输模式,上位机必须在 60 秒内向 EFR32 芯片发送正确的 .gbl 格式的固件。如果超时没有收到符合要求的固件,Xmodem BootLoader 会自动退出固件传输模式。)

3.4.3 开始传输固件

在前序步骤都完成之后,直接点击 ECOM 软件界面上的 发送文件,固件就正式开始传输了,如下图所示:

从上图中可以看到,我们选中的固件,正在以非常快的速度通过串口发送给 EFR32 芯片。

(注:我们的开发板出厂默认的 Xmodem BootLoader 使用的波特率为 115200 bps,使用该串口速率完成一次固件传输所需时间大概在 60 秒左右。如果嫌速度慢,可以私信要求出厂换成波特率为 921600 bps 的 Xmodem BootLoader,一次固件传输的时间可以缩短到 35 秒左右)

3.4.4 固件传输完成

固件传输完成后,ECOM 软件会弹出如下图所示的弹窗:

点击 确定 关闭弹窗。ECOM 软件界面如下图所示:

从最新的 ECOM 软件界面可以看出,固件传输完成后,Application 固件自动启动了。

(注:如果使用的是官方原版的 Xmodem BootLoader,固件传输完成后是不会自动运行 Application 固件的,需要复位之后才会运行。)

至此,使用 Xmodem BootLoader 进行串口固件烧录就算是完成了。

(注:如果还有遇到问题,建议在文初或文末提及的技术交流QQ群中提问交流。)

 

持续更新中,欢迎关注!

 

【所有相关IDESDK均可从群文件免费获取,也全都是免安装的,解压出来直接就能开始开发】
【配套源码文档软件硬件等资源,请移步技术交流群:拿破仑ZigBee(263671349)】

文章作者: 拿破仑940911
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 拿破仑940911 !
评论
  目录