查看: 1883|回复: 5

[SAMD21] [D21应用笔记 (3)]ATSAMD21J18A端口分析和LED测试程序(MDK环境)

[复制链接]

13

主题

0

好友

232

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    开心
    2014-5-23 20:30
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-5-16 10:55:41 |显示全部楼层
    本帖最后由 zww 于 2014-5-17 15:05 编辑

    D21端口模块信息:
    1.  有两组IO端口(PA和PB),每组高达32条IO线。为了提高访问速度CPU有一条专用总线(IOBUS)与端口模块连接,端口输入输出寄存器可以通过这条总线进行单周期访问。
    2.  每个引脚可灵活配置为GPIO,复用外设功能,或者配置为模拟功能。如下图:

    3.  作为GPIO时可通配置为输入/输出,如下图:

        通过DIR方向寄存器,OUT输出寄存器和PINCFGy管脚寄存器的INEN 、PULLEN位可灵活的配置为多种模式,如下表:

    4.DIR方向寄存器和OUT输出寄存器除了可以直接赋值外还可以通过DIRCLR/OUTCLR清零寄存器和DIRSET/OUTSET置位寄存器对某些为进行改变,例如如果想让OUT寄存器的某些为清零,只要在OUTCLR写入一个值,OUT寄存器想要清零的位就把这个值对应的为变为1,这样通过OUTCLR寄存器就可以把为1对应OUT寄存器中相应的位清零了,OUTCLR中为0的位将不会影响OUT寄存器中相应的位,也就是说写1有效。其实这个功能其它单片机也有,但D21独创的一点是加入了DIRTGL/OUTTGL翻转寄存器,只要向对应的位写1就可以翻转DIR/OUT中相应的位,避免了传统的"读-取反-写"操作,做LED闪烁相当方便,接下来的LED测试程序就要用到它.
    5.  其它寄存器包括CTRL端口控制寄存器,用于配置输入各引脚的synchronizer同步器是否启用.WRCONFIG用于批量修改PINCFG和MUX多路选择器,当多个引脚配置一样时非常有用,它是一  个只写寄存器.PMUXn用于选择多路复用模块所连接的外设.


    了解了以上这些基本就可以用端口控制LED灯了,从原理图可知,ATSAMD21 Xplained Pro开发板的LED与D21的PB30连接,LED的阳极通过R303电阻(330欧姆)与3.3V电源相连,只要将PB30拉低(输出为0)就可以发光了。通过延时和翻转PB30管脚(通过OUTTGL翻转寄存器)就可以让LED周期闪烁了。
    我采用的是MDK4.74版本的开发环境,写了一个LED驱动(LED.c),然后在主程序中周期调用LED_Toggle()函数实现LED闪烁。
    关键代码如下:
    1. LED所用引脚初始化:

    2. 主程序中每隔0.5秒调用LED_Toggle()翻转LED引脚,从而实现闪烁。


    具体源码见附件:

    LED_TOGGLE.rar

    536.62 KB, 下载次数: 140

    回复

    使用道具 举报

    0

    主题

    2

    好友

    370

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    擦汗
    2014-8-18 09:16
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2014-5-20 00:39:18 |显示全部楼层
    楼主程序用的是什么软件
    回复

    使用道具 举报

    13

    主题

    0

    好友

    232

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    开心
    2014-5-23 20:30
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-5-20 09:02:22 |显示全部楼层
    Rookie 发表于 2014-5-20 00:39
    楼主程序用的是什么软件

    Keil的MDK4.74。
    回复

    使用道具 举报

    29

    主题

    19

    好友

    3713

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    前天 22:58
  • 签到天数: 901 天

    [LV.10]以坛为家III

    发表于 2014-5-20 09:29:58 |显示全部楼层
    好贴!!!!!
    回复

    使用道具 举报

    0

    主题

    0

    好友

    10

    积分

    白丁

    Rank: 1

    该用户从未签到

    发表于 2014-10-21 17:16:05 |显示全部楼层
    有没有 SAMD21J18A的原理图啊 
    回复

    使用道具 举报

    0

    主题

    0

    好友

    5

    积分

    白丁

    Rank: 1

    该用户从未签到

    发表于 2016-10-19 13:01:57 |显示全部楼层
    缺个文件,samd21.h,不知道楼主还能发上来吗?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-3 21:50 , Processed in 0.120296 second(s), 15 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部