查看: 5655|回复: 5

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

[复制链接]
  • TA的每日心情
    开心
    2014-5-23 20:30
  • 签到天数: 7 天

    连续签到: 1 天

    [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, 下载次数: 209

    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]常住居民I

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.3]偶尔看看II

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

    Keil的MDK4.74。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-21 12:58
  • 签到天数: 907 天

    连续签到: 2 天

    [LV.10]以坛为家III

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 12:44 , Processed in 0.164366 second(s), 26 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.