查看: 776|回复: 3

[SAMD21] [D21应用笔记 (6)]时钟系统

[复制链接]

13

主题

0

好友

232

积分

秀才

Rank: 3Rank: 3

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

    [LV.3]偶尔看看II

    发表于 2014-5-19 20:53:29 |显示全部楼层
    本帖最后由 zww 于 2014-5-19 20:58 编辑

        乍一看D21的时钟系统还真复杂,不过深入了解后还是比较容易理解的。先看一下架构图:

    从图中可以看出D21时钟系统分为三部分:
    1. SYSCTRL为时钟源,是时钟信号产生的地方,其中比较常用的有:XOSC外部主时钟振荡器,可以连接晶振或外部时钟源(有源晶振),通常连接8MHz晶振。XOSC32外部32KHz时钟振荡器,主要用于RTC模块。OSC8M内部时钟振荡器,上电时处于打开状态。并经过8分频为系统提供1MHz主时钟。DFLL48M为数字锁频环,主要用于给USB模块提供48MHz时钟,也可用于为CPU和AHB,APB总线提供时钟(通过PM电源管理模块)。
    2.  GCLK用于时钟分频和分配,主要分为两部分:时钟分频部分,包括多个GCLK Generators,每个分频器可以选择任意时钟源作为输入时钟,经分频后提供给分配器使用,由此可灵活的产生不同的时钟频率,相当灵活。其中GCLK Generators 0用于为PM模块提供主时钟(GCLKMAIN
    ).而时钟分配部分主要包括一系列的多路开关,每个多路开关可以从所有的时钟分频器中选择一个作为输入,而输出则连接着一个片上外设,并可通过时钟开关控制是否向外设提供时钟。这样就可以把未用外设的时钟关闭来节约能源。
    3. PM电源管理模块主要用于为CPU,AHB,APB总线提供时钟,可单独控制它们的分频情况。同时提供各个时钟域的同步。还可单独控制是否提供总线时钟给每个外设的总线接口(AHB或APB)。
    下面看一个实际的例子:

    从图可以看你出,串行通讯模块有两个时钟提供给它,核心时钟和总线时钟,核心时钟是由DFLL48M时钟源通过分频器1以及多路开关20提供,主要用于模块核心的运行。而总线时钟主要用于为寄存器操作提供时钟。

        D21的时钟系统比较有特色的一点就是On-demand模式,时钟源可以按需打开,如果有外设需要用时钟时就打开,不用时将自动关闭以节约电能。通过这个特性使D21有着非常低的功耗。由下图可以看出这个模式的应用:


    在上电复位后时钟系统的状态如下:
    1. OSC8M打开并被8分频提供给时钟分频器0作为GCLKMAIN供给PM电源管理模块用于CPU和总线工作(1MHz).
    2. OSCULP32K打开并通过时钟分频器2和WDT的多路开关为WDT提供时钟。而其它多路开关均处于关闭状态。

        后面将详细介绍时钟系统的三大模块SYSCTRL,GCLK和PM。
    回复

    使用道具 举报

    13

    主题

    0

    好友

    497

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    慵懒
    2014-11-28 09:29
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-5-20 09:40:43 |显示全部楼层
    多谢楼主分享,顶!
    回复

    使用道具 举报

    1

    主题

    0

    好友

    135

    积分

    童生

    Rank: 2

  • TA的每日心情
    开心
    2014-6-10 14:17
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2014-5-21 09:42:46 |显示全部楼层
    楼主的学习精神值得称赞!
    回复

    使用道具 举报

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

    关闭

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


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

    GMT+8, 2016-12-4 08:05 , Processed in 0.202481 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部