针对MKL26Z128VFT4烧录后不能再烧录问题,经过分析,初步结论是Flash被锁了,目前怀疑是NMI管脚影响导致。从电路图来看你们使用了NMI管脚作为通用GPIO,使用 NMI 引脚作为其他功能外接电路时需要特别注意,NMI 引脚所接电路需要常态为高电平状态。NMI管脚比较容易受影响,导致Flash被锁定,但是如果已经下载成功的代码,flash 被锁定不会影响代码正常运行。如果将NMI管脚使用为其他功能,需要在flash 配置域中配置为禁用 NMI 功能,然后再将此引脚初始化成其他功能。一般建议NMI引脚不用,悬空处理即可。在 Keil 工程下禁用 NMI 功能可以直接通过修改启动文件(.s)文件中 flash 配置域中的FOPT 由原来的 0xFF 改为 0xFB 即可,如下:
针对目前产品出现的不能识别的板卡,可以通过解锁后,重新连接/擦除实现烧录。步骤如下:
1. 打开J-Link Command,将NMI管脚拉低,输入命令“unlock Kinetis”实现解锁。解锁成功后提示 OK字符。
2. 保持NMI管脚继续拉低,然后在J-Link Command输入“connect”命令,按照指示选择即可,包括芯片型号/接口(SWD)/速率等。查看是否连接成功。
3. 连接成功后输入“erase”命令,将Flash擦除。此时就能通过J-Flash连接芯片实现程序下载。
针对出现问题总结:
1. 建议不要轻易用NMI管脚作为其他功能;
2. 如果引脚受限,一定要用NMI管脚作为其他功能,需要将NMI禁能。具体方法见上面描述。
jlink的命令操作工具: