查看: 859|回复: 0

[SAMD21] [D21应用笔记 (7)]时钟系统之时钟源

[复制链接]

13

主题

0

好友

232

积分

秀才

Rank: 3Rank: 3

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

    [LV.3]偶尔看看II

    发表于 2014-5-23 20:29:38 |显示全部楼层
        D21包含多个时钟源,由SYSCTRL模块进行控制。
    1. 包括0.4~32Mhz的主晶体振荡器(XOSC),主要提供给片内DFLL48M,FDPLL96M作为参考时钟(通过GCLK模块),或者提供给内核以及片内外设。
    2. 32.768KHz辅助晶体振荡器(XOSC32),主要用作RTC实时时钟,也可用作参考时钟和低速外设。
    3. 32.768KHz片内振荡器(OSC32),相较于XOSC32精度低一些,但不使用RTC时,可以省去外部晶振,主要供低速外设使用。
    4. 32.768KHz超低功耗片内振荡器(OSCULP32K),上电时就运行,主要提供给看门狗模块使用。

    5. 8Mhz片内振荡器(OSC8M),上电时就运行,并且通过8分频给GCLK Generator 0提供1Mhz的时钟,用于系统运行。
    6. DFLL48M数字锁频环,可以提供48Mhz的输出频率,可以工作于开环和闭环模式模式(当USB模块工作于设备模式时可启用USB时钟恢复模式,通过主机端给USB模块每毫秒发送的SOF帧开始信号产生1KHz的时钟作为DFLL48M的参考时钟从而产生精确的USB时钟。因此设备模式时可以省去外部晶体,这可是一大独创啊!)。主要用于给整个系统提供时钟。
    7。 FDPLL96M数字锁相环,可产生48到96MHz的时钟,具有小数倍频值(1/16),可以产生非常精确地时钟信号。可用于给IIS音频模块提供精确时钟。

    以上简单的介绍了一下D21的时钟源,对每个时钟源的具体操作可参照官方数据手册。都还是比较简单的,其中值得注意的是当DFLL48M工作于开环状态时要产生比较精确地48MHz时钟,要从NVM Software Calibration Area读出工厂校准值(DFLL48M COARSE CAL和DFLL48M FINE CAL)到DFLL48M的DFLLVAL寄存器的COARSE和FINE域。参考代码如下:


    源码见附件:
    回复

    使用道具 举报

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

    关闭

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


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

    GMT+8, 2016-12-11 06:20 , Processed in 0.076821 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部