TI-MCU专区

TI M3/M4 如何解锁

发布日期:2011/11/23

    使用TI M3/M4 的朋友经常遇到无法通过JTAG下载程序的问题,当开发板无法正常下载程序,很多人误以为开发板损坏。遇到这种现象,其实有些是可以恢复的。

 

    当然JTAG无法下载程序的原因可能是多样化的,可能是JTAG仿真器本身工作不正常;可能是JTAGMCU接口连接错误;可能是JTAG连接线上拉电阻偏大导致驱动能力不足;可能是为了给程序加密,而设置禁止JTAG功能;可能是MCU本身工作不正常.

 

    MCU本身工作不正常主要有两种原因:

    1. MCU本身已经毁坏,永久性的(不在我们讨论范围内)。

    2. MCU进入死锁状态

 

    什么是死锁?

    当处理器执行NMI或硬件故障处理程序时,如果一个硬件故障发生,那么处理器进入死锁状态。当处理器处于死锁状态时,它不执行任何指令。处理器保持在死锁状态,直到它被复位或NMI发生。

导致死锁的条件有哪些?

 

    MCU检测到一些异常情况时会进入自锁状态,主要有以下原因:

    1. 程序在配置系统时钟时,使用的参数与板上实际晶振不匹配

    2. 供给MCU的电压太低或太高,或电源不稳定。

    3. 程序访问到未知的地址空间

 

    另外,程序软件禁能JTAG功能,与死锁的现象很相似。

 

   如果你的评估板是因为“死锁”或者是软件禁能JTAG功能而导致JTAG无法正常下载程序是可以恢复的,恢复的步骤如下:

    1. Stellaris ICDI连接PC与目标板,并给目标板上电。

    2. MCURST引脚与地短接。

   3. 打开LM FLASH PROGRAMMER 软件,点击Other Utilities页,Debug Port Unlock 栏,选择你的MCU所属的系列,TIM3/M4有如下几个系列 FURYDUSTDEVILTEMPESTFIRESTORM, BILZZARD

    4. 然后点击 Unlock 按钮,按提示对话框一直“确定”往下操作。

 

    5. 目标板断电,如果你的Stellaris ICDI与目标板是分开的,请断开Stellaris ICDI与目标板,以免通过Stellaris ICDI给目标板供电。

 

    6. 等待20秒后,重新给目标上电,连接Stellaris ICDI与目标板,这时就可以通过JTAG下载程序了。

    有人奇怪“为什么要等待20秒后才能重新上电呢?”

    主要是因为有些板子上会有比较的电容,等待一段时间,电容才放电完全。

 

    另外,通过JLINK,用SEGGER软件也可以解锁TI M3/M4,不过在这里我就不做详细介绍。