海绵宝宝
2015/8/17
英飞凌的 XMC1301 芯片具有多种烧写 HEX 文件的方式(从烧录的观点来看)。对于一片 刚出厂的空白芯片来说,它是处于默认的 ASC BSL 模式,也就是串口模式;但经常使用的是 基于 JLINK 的 SWD 模式,在 KEIL 开发环境中,使用 SWD 模式是最为方便高效的应用模式; 另外,还有一种量产模式,通过 BMI 的设定,一旦进入量产模式外部将无法访问芯片,但如 果在程序中通过添加修改 BMI 的程序段,也可以在设定的触发条件下跳出量产模式,但此时 芯片会恢复到出厂状态,处于默认的 ASC BSL 模式,且 FLASH 会自动清除;除此之外,还有 若干模式,但一般很少使用,就存而不论了。
可以把 BMI 看做是类似 C 语言中的 SWITCH 选择语句,当芯片设定为某种 BMI 模式时, 只能在当前的模式下更改为别的模式,而且在 ASC BSL 模式下只能下载程序,不能运行程序, 所以当我们用串口下载程序之后,还要在 Memtool 软件中更改 BMI 为 SWD1 模式(使用 P1.2 和 P1.3 引脚,方便接线,还有 SWD0 模式,只不过这是用的是 P0.14 和 P0.15 引脚)才可运 行下载的程序,更重要的是,在我们更改 BMI 为 SWD1 模式运行程序后,如果想再次下载别 的 HEX 文件时,Memtool 软件就不能通过串口模式连接了,除非用 JLINK 在 DAVE 中修改 BMI, 所以在这种情况下,可以添加一小段更改 BMI 的代码在程序中,这样就可以在需要下载新的 HEX 文件时,在开发板上电的时候触发 BMI 修改,芯片就变成 ASC BSL 模式了。 本篇所述的烧录过程可以适用于英飞凌 XMC1300 的系列芯片,不仅仅限于特定的 XMC1301 QFN24 芯片。 为了降低用户的尝试成本,在开发板上已经设计了基于 CP2102 的 USB 转串口电路,既 可以作为低成本烧写器使用,也可以用作单片机与电脑的通信手段。
为了使用串口烧写 HEX 文件,首先需要做必要的准备工作:
1. 到 infineon 官网下载免费的 Memtool 软件(当前版本为 V4.06.05),并正确安
装。 2. 到 silabs 官网下载免费的 CP2102 驱动程序,并正确安装。 3. 将开发板上 J1 插针用两个短路子将插针横向短接,以使串口与单片机的 UART
连接。 准备就绪之后,用 USB 线连接开发板和电脑,这时会听到电脑找到 USB 的提示音,并且 位于开发板左下角处的 LED3 绿灯会常亮,整个开发板应当如图 1 所示:
图1
这时,打开电脑的设备管理器,可以看到 USB 转串口芯片已经正常工作,且可以查 看虚拟的串口号(具体的串口号根据不同的机器有所不同),如图 2 所示:
图2
接下来可以打开 Memtool 软件,初始界面如图 3 所示:
图3
整个的下载过程将分为如下过程,以使各位心中能有一个总体的印象:
1. 下载配置的相关设定 2. 虚拟 COM 口相关设定 3. Memtool 软件与开发板上芯片连通 4. 选择欲下载的 HEX 文件 5. 进行 HEX 文件的烧写、校验、以及 BMI 更改 等等。 点击菜单栏中 Target 下的 change…
弹出界面如下:
点击 Default,出现如下选择项:
确定选择项:
点击“完成”后,出现如下保存界面(按自己喜好决定,可以默认):
在接下来的界面中点击“确定”:
现在还要进行串口的设定:
在主界面下菜单栏中,点击 Target->Setup…,出现下述界面:
在下拉选项中找到虚拟串口号那项,点击“确定”:
现在在主界面的连接状态部分显示“Target not connected”,如图所示:
因为 USB 转串口电路和开发板电源的 5 伏是各自独立的,所以需要给开发板的 POWER 插座通电(12V,注意不能反接!),这个时候点击“Connect”,状态栏即显示“Ready for Memtool Command”,这就表示 Memtool 软件和开发板上的 XMC1301 连通了,可以进行 HEX 文件的下载。
点击“Open File…”来选择欲下载的 HEX 文件,在这里,我将以一个简单的让开发板上 的红绿 LED 灯(LED1 和 LED2)交替闪烁的例子来演示。
点击“打开”后看到主界面如下图:
选择“Select All”
再选择“Add Sel.”,注意右边红色框中的地址分配:
这时即可点击“Program”按钮进行程序的下载,结果如下:
下载 OK 后,点击“Exit”退回主界面。
对于那些没有进行校验就不舒服的用户,还可以点击“Verify”来校验,有如下窗口:
校验放心后可以点击”Exit”退回主界面。
程序下载成功了,但开发板上的红绿 LED 灯并没有像意料中的那样闪烁,这是因为在 ASC BSL 模式下是只能下载程序,但不能运行程序的。为此,我们还要对 BMI 进行更改,对 于此开发板来说,就改为 SWD1 模式吧!以后用 JLINK 时接线会非常方便。
点击主界面中的“HW Protect…”按钮
出现如下窗口:
点击“Setup…”,出现窗口,点击红框指示的 SWD1 模式,再点击“确定”:
在退回的界面中,点击“Start”,
在弹出的提示框中点击“是”:
稍等几秒,大家就可以看到刚刚下载的程序开始运行了,开发板上的红绿 LED 开始交替闪亮。 最后在弹出的提示框中点击“确定”就 OK 了。
这个时候,大家在主界面还可以观察到原先连通的状态已经变成断开了。
至此,大家就完整地走过了用串口烧写 HEX 文件到 XMC1301 芯片的过程,齐活!
对于如何在程序中更改 BMI 以退出 SWD1 模式而恢复成 ASC BSL 模式,我将会在以后的范例 中提供完整的演示,包括如何在 KEIL 中建立一个新的工程。
谢谢!
因篇幅问题不能全部显示,请点此查看更多更全内容