查看: 3939|回复: 3

[原创] 【经验分享】LPC824 SWD引脚复用为普通GPIO注意点

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
19947
最后登录
2024-4-19
发表于 2018-9-21 16:46:16 | 显示全部楼层 |阅读模式

【经验分享】LPC824 SWD引脚复用为普通GPIO注意点

一,文档说明

        写这篇文档的目的是帮助有些网友在使用LPC824芯片的时候,因为引脚不够,想把SWD引脚,SWD功能禁止掉,然后复用为普通的GPIO功能。前不久,有客户在使用这个功能的时候,遇到了些非常难以琢磨的问题,所以我这边把相关经验分享出来,免得需要用同样功能的网友浪费时间去走弯路。
7.jpg

二,问题详情

          使用官方的开发板LPCXpresso824 MAX 板,以及官方的SDK代码或者code bundle代码,在禁止SWD功能之后,初次上电,一切工作正常,被复用的IO也能翻转,但是多次使用按键复位之后,发现有些引脚被固定了,比如之前翻转LED的功能,LED却不能翻转了。不过,重新上电,一切工作正常,这个问题仅仅发生在使用外部按键复位。而且,也不是所有的板子都能复现这个问题。

          经过多次长时间测试,发现官方的中国区LPC824lite的板子同样也有这个问题。 尝试过不使用代码方式去关闭SWD功能,而使用CRP1去关闭SWD功能,这种方法同样不起效果。

        不过,在能复现问题的板子上,如果禁止掉SWD功能,并且把SWD_CLK引脚直接接地,多次复位外部复位按钮,问题却不会出现。但是这种方式却是没有太多意义的,毕竟需要将SWD引脚放出来作为GPIO使用。

        后来,把这个问题和我们的相关部门一起调试后,总结出下面一些规律与解决方法。

三,解决方案

      之前测试,当多次引脚复位之后,发现LED不能翻转了,以为是整个代码被卡住了,但是实际经过测试,发现P0_0-P0-5波形还是能够正常,只是P0-6P0-26IO状态被卡住了。 经过我们的相关部门调试,建议的解决方法如下:

    在外部引脚复位的过程中,保证PIO0_4引脚为0 复位完成后,PIO0_4可以释放,这样就不会在出现P0-6P0-26被卡住的问题。 所以如果网友想把SWD引脚禁止掉作为IO工作,切记在外部复位的时候,拉低PIO0_4,否则很可能会出现上述描述的IO被卡住的问题。具体操作方法可以是: 拉低PIO0_4,复位外部引脚,拉高PIO0_4 就跟进入ISP模式的方法类似。

    希望这个workaround能够帮助到大家。

  这里也附上禁止SWD功能的代码:

   CLOCK_EnableClock(kCLOCK_Swm);
    SWM0->PINENABLE0 |= 0X30; //disable the SWD function
    /* Disable clock for switch matrix. */
    CLOCK_DisableClock(kCLOCK_Swm);


回复

使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    [LV.10]以坛为家III

    66

    主题

    4888

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6152
    最后登录
    2024-4-15
    发表于 2018-9-22 15:41:20 | 显示全部楼层
    多谢分享,如果是上电复位,依然卡死吗
    开心
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19947
    最后登录
    2024-4-19
     楼主| 发表于 2018-9-26 14:20:50 | 显示全部楼层
    原来的你 发表于 2018-9-22 15:41
    多谢分享,如果是上电复位,依然卡死吗

    上电不会,按键多按几次会死。
    所以如果要禁止掉SWD功能,最好PIO0_4预留出来,复位的时候,保证这个脚为低,这个脚是防止测试功能进入的总控制口。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    [LV.10]以坛为家III

    66

    主题

    4888

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6152
    最后登录
    2024-4-15
    发表于 2018-9-26 14:22:51 | 显示全部楼层
    小恩GG 发表于 2018-9-26 14:20
    上电不会,按键多按几次会死。
    所以如果要禁止掉SWD功能,最好PIO0_4预留出来,复位的时候,保证这个脚为 ...

    好的,多谢
    开心
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 13:40 , Processed in 0.119073 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表