S32K144之芯片锁死解锁——关闭debug端口

S32K144之芯片锁死解锁——关闭debug端口

经常捣鼓单片机就会发现,时常会因为某些操作不当导致芯片锁死情况的发生,通过Jlink我们可以读到芯片的ID,但是无法进行Debug,这很是让人苦恼。
基于S32K144的芯片锁死,一般有如下几种可能:
1、时钟配置异常,MCU被倍频以及不配置时钟,都有可能造成芯片保护锁死,我就曾经因为不注意把时钟配置代码注释掉,导致芯片锁死。
2、烧写断电,如果在Debug的时候不小心导致芯片断电,这种情况也有可能导致芯片锁死。
3、修改 0X400-0X40F地址内容。
4、某些操作不规范导致

下面我们主要来谈一谈第三种情况,也就是不小心修改0X400-0X40F地址内容。为什么这个地址的内容擦除会导致芯片锁死呢,我们首先从S32K144的手册入手,看看这段地址之内都是配置了哪些东西。
S32K144之芯片锁死解锁——关闭debug端口_第1张图片
0x400~0x40F地址内容配置了外设桥存储器映像,可通过 0x4000_0000–0x400F_FFFF 区域中交叉开关上的某个从机端口访问。0x400~0x40F地址区间的一个独立的16 B配置区域,用来存储保密/保护及MCU启动的一些配置信息。
S32K系列有Secure和非保密Unsecure两种模式,区别在于是否允许通过外部接口访问芯片内部存储器。Secure模式下,不能通过外部接口(如JTAG/SWD调试接口、EzPort、FlexBus)对芯片内部存储器进行操作(整体擦除Mass Erase指令除外)。Unsecure模式则无此限制。也就是说如果你修改这段地址的内容,就会导致Debug端口被关闭。

如何判断锁死原因?
我们如何确定是否是因为修改 0X400-0X40F地址内容导致的锁死,通过示波器抓取Reset脚也就是PTA5脚的波形即可判断。


如果Reset引脚的波形为高电平几个us,低电平一百多us,大概率是这个原因所致。

如何解锁?
把reset脚拉低,然后打开Jlink commander,输入unlock Kinetis回车即可解锁。

你可能感兴趣的:(S32K)