XMC1302是英飞凌推出的一款明星产品,通常被用于通用电机控制和电源储能控制上。XMC1302的样片天生下来是ASC模式,无法通过SWD口Debug以及烧写,为了偏于调试和烧写,需要把BMI修改为Debug SWD模式,下面是修改BMI的一些方法:
一、修改BMI的工具
建议使用官方JLINK调试板,它与通用JLINK是有区别的,可以更改BMI,还有一路串口。如图1所示
图1XMC1302评估板KIT_XMC13_BOOT_001示意图 型号:KIT_XMC13_BOOT_001
使用方法:将子板用手直接掰断,变为图2所示:
图2XMC的Jlink调试子板 这个时候,电控板需要接线到Jlink子板,如图3所示:
图3XMC的Jlink调试子板接线示意图 其中对应的引脚定义如表1所示:
表1XMC1302接线示意表
这个时候,需要利用Mentool工具,接线连接MCU 的串口烧写引脚(上表1中的RX,TX),可以是P0.14,P0.15 或者 P1.2,P1.3修改如下(章节1)所示的BMI配置,使MCU能够执行用户应用程序
由于我们Debug习惯使用SWD接口,我们需要利用英飞凌Dave软件将串口烧写模式改为SWD烧写调试模式,如章节2所述。
也可以通过软件XMCFlasher来进行BMI的修改,如章节三所示,这样修改起来会更加的快捷,更加的方便!
其中将电机电控板的 SDIO、SWCLK、VCC和GND接线至电机控制板如上表1所示,即可连接Keil进行Debug。
二、关于XMC1300 BMI
2.1 MemTool烧写程序与更改BMI
对于 XMC1000 的 MCU,芯片出厂后默认的 BMI 是 ASC_BSL 模式,即串口烧写模式。在这个模式下可以使用 MemTool 通过串口对 MCU 进行烧写。MCU 的串口烧写引脚可以是P0.14,P0.15 或者 P1.2,P1.3。
但是烧写完后,很多人会遇到一个问题,烧写完程序后代码不能运行。这是怎么回事呢?因为程序虽然烧进去了,但是 MCU 依旧处在 ASC_BSL 模式,在这个模式中程序***呆在Burn-In ROM 中执行,不会跳到用户程序执行。
其实 MemTool 中有一个功能是在烧写完程序后修改 BMI,利用这个功能在烧写完程序把BMI 修改为 User Mode SWD0 后,用户代码就能运行了。
下面步骤完成这个设置:
2.1.1 打开 Device | Setup…
2.1.2在 Program 一栏中勾选”Set boot mode after program”, 选择烧写程序后要设置的 BMI.
注意:
这样烧写完后,BMI 就自动修改了。需要注意的是,修改为 User Mode SWD0 后,MemTool将不能再次对 MCU 进行烧写,因为 P0.14,P0.15 已经被配置为 SWCLK 和 SWDIO (不再是 UART)。如果需要继续使用 MemTool 烧写,需要在 DAVE 中把 BMI 再改为 ASC_BSL模式。同时SWD0模式下可以用JLINK进行调试
2.2、DAVE更改BMI
XMC1300 空白芯片默认 BMI 是串口 ASC 模式,需要更改 BMI 为 SWD 或 SPD 模式后才能在 KEIL 的环境下进行仿真和烧录。使用 DAVE3或 DAVE4 自带的 BMI 设置工具可以很方便更改 BMI
2.2.1Dave 界面图
2.2.2点击 Get BMI 按键,读取芯片 BMI 值,可见空白片默认“ASC”
2.2.3在下拉菜单里选择 User MODE(DEBUG)SWD0(SWDIO=P0.14,SWDCLK=P0.15),点击 SET BMI
2.2.4再点击一下 GET BMI 按键,可以读出最新状态,确认无误,更改完成。
2.3 基于XMCFlasher对XMC1302进行BMI的修改
下载完XMCFlasher后,打开XMCFlasher软件如下图所示
此时按照表1来进行接线,接线连接MCU 的串口烧写引脚(上表1中的RX,TX),可以是P0.14,P0.15 或者 P1.2,P1.3。
此时点击Connect,会出现如下图所示的芯片选择界面,选择XMC1302-Flash大小,根据电机控制板上的XMC1302的型号选择即可,这里我选择的是开发板母版上的搭载的XMC1302-0200
此时,如果得到UniquechipID,则表示已经连接成功
此时,选择BMIGetSet
出现以下界面
单击GetBMI,我们可以得到目前芯片的BMI设置
如果需要选择修改BMI,点击上图下方的Select,选择需要的BMI后,再点左边的SetBMI即可完成BMI的修改
接下来,点击Configurations中的 Setup
设置成如下选项即可开启SEGGERJlink调试模式,连接Keil即可调试!
|