【原创】Kinetis L系列将NMI/Reset管脚复用成GPIO需要注意的问题

2020-02-11 10:12发布

本帖最后由 FSL_FAE_JiCheng 于 2014-7-16 22:30 编辑

    我们在做项目的时候,偶尔会遇到芯片IO管脚资源不够的问题,造成这种情况的原因有几种情况,一个是当初的需求分析没有做好,考虑不周,二是成本方面的考虑(小Pin脚的便宜些),还有就是产品对PCB板体积的苛刻要求也需要小封装的芯片,诸如此类吧。这个时候如果管脚资源的差的很多那就没有办法只能换片子了,但是如果差那么一两个的话,可能我们就会把“邪恶的目光”瞄向平时不怎么在意的NMI和Reset了,这也是木有办法的事,这两位平时坐“冷板凳”的也该登场了,呵呵。

    还好现在芯片越做越强大,很多芯片都配备了功能强大的管脚复用功能,这还是没有办法的事情,小小的芯片里装的外设资源太多了,但是管脚就那么几个,所以只能复用了,不过NMI和Reset这两个管脚很多芯片没怎么敢动它们,毕竟这两个脚还是比较“敏感”的危险人物,颇有些老虎屁股摸不得的架势,但是总是有那么些个胆大的(实际上胆大的挺多,呵呵,现在大多芯片都可以支持将它们两个当成复用管脚)。下面我就说说如何把Freescale公司的Kinetis L系列(Cortex-M0+)的NMI脚和Reset脚复用成GPIO的方法及注意事项。

    可能用过KL系列的人会对它的管脚复用功能比较熟稔,觉着像配置其他管脚那样配置下管脚控制寄存器PORTx_PCRn中的MUX位就可以了,但是NMI和Reset比较还是“身份地位”比较特殊,单纯在管脚控制寄存器中配置还不能释放这两个管脚对IO的控制(这两位“大爷”比较固执,呵呵),我们还需要在软件上将不可屏蔽中断(NMI)和外部复位(Reset)这两个功能彻底禁掉才可以,也就是说需要两个操作才能让他们挪窝给GPIO用(其他管脚只需要第一步就可以了),如下图,需要将FTFA_FOPT这个寄存器的Reset pin或者NMI pin功能禁掉,然后再在代码中将该引脚复用成GPIO功能,这样就可以保证该管脚正常输出,下面具体介绍下配置的过程:
9388745767726.jpg (19.75 KB, 下载次数: 0) 下载附件 2014-7-16 22:26 上传

(3)在新版本的IAR中默认对0x400~0x40f地址范围保护不擦写,所以即使上面做了修改也没有真正擦写成功,这样可以通过配置IAR的flashloader来解除这个对这个地址的保护,配置方法可以参考我之前的一篇博客《浅谈知识产权保护方法之加密Kinetis K60(方案一)》

(4)都配置完成后,再对Reset或者NMI管脚进行正常的复用功能配置就可以了。

    呼。。。闲扯了不少,重点的东西还是在后面4个配置步骤,这里写出来也是提醒大家复用配置Reset或者NMI脚需要注意的问题,不过实际上我觉着吧一般情况下(不到万不得已)还是不要修改这两个管脚为好,毕竟这两个脚的确是比较敏感的,尽量不要去碰,免得引来不必要的麻烦。好了,到这了,洗洗睡觉去,未完待续~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
wanstrive
1楼-- · 2020-02-11 11:36
我的经验是:在第一次下程序之前一定要把NMI脚拉高或悬空,第一次下程序时要把NMI禁用掉,以后就可以随便当GPIO使用了。
FSL_TICS_Robin
2楼-- · 2020-02-11 15:21
wanstrive 发表于 2014-7-17 12:52
我的经验是:在第一次下程序之前一定要把NMI脚拉高或悬空,第一次下程序时要把NMI禁用掉,以后就可以随便当 ...

Kinetis E系列、Kinetis EA系列的禁NMI方式 与Kinetis 其他系列不一样呢。
lileistone
3楼-- · 2020-02-11 19:59
请问这些方法(或者原则)适用于K系列么?
另外如果Reset引脚用作GPIO了,这时看门狗需要复位芯片咋办……?
FSL_TICS_Robin
4楼-- · 2020-02-11 21:45
lileistone 发表于 2014-7-17 14:33
请问这些方法(或者原则)适用于K系列么?
另外如果Reset引脚用作GPIO了,这时看门狗需要复位芯片咋办…… ...

适合K系列
复位信号由内部发启的还是可以正常复位芯片的,但此时你的Reset_b外部复位引脚功能就禁止了。
FSL_FAE_JiCheng
5楼-- · 2020-02-11 23:32
 精彩回答 2  元偷偷看……
FSL_FAE_JiCheng
6楼-- · 2020-02-11 23:49
lileistone 发表于 2014-7-17 14:33
请问这些方法(或者原则)适用于K系列么?
另外如果Reset引脚用作GPIO了,这时看门狗需要复位芯片咋办…… ...

试用K系列,另外内部的看门狗复位不会受影响,因为这个禁用只是把Reset脚与外部Pin脚断开了。

一周热门 更多>