MCU的基础--时钟系统学习教程

电子发烧友网工程师 发表于 2018-02-01 03:23:11 收藏 已收藏
赞(0) •  评论(0

MCU的基础--时钟系统学习教程

电子发烧友网工程师 发表于 2018-02-01 03:23:11

时钟系统是一颗MCU的基础,MCU的一个重要考核指标。PIC32MZ EF系列采用MIPS32® M级核,工作频率可以达到200MHz。时钟系统也比较复杂,配置的寄存器比较多,下面就对照Harmony里面的时钟配置进行简单的介绍。

PIC32MZEF振荡器系统具有以下模块和特性:

• 共有5个外部和内部振荡器可选作时钟源

• 具有用户可选的输入分频器、倍频器和输出分频器的片上PLL,可提升特定内部和外部振荡器源的工作频率

• 特定振荡器源具有片上用户可选的后分频器

• 可采用软件控制在各个时钟源之间切换

• 检测时钟故障和允许通过专用备份 FRC(Back-up FRC,BFRC)安全恢复或关闭应用的故障保护时钟监视器(Fail-Safe Clock Monitor,FSCM)

• 供USB外设专用的片上PLL

• 灵活的参考时钟输出

• 外设的多个时钟分支可使其获得更好的性能灵活性

• 采用输出分频器实现时钟切换/摆动控制

看看手册上的时钟树,仔细看看就可以对时钟系统有一个大体的了解,具体参数的设置就要仔细研究寄存器的含义了。

1

时钟方面的寄存器列表,寄存器很多

2

3

Harmony里面的时钟配置很人性化,和手册上的图表是一样的形式,这样就很方便了,这里直接进行简单的参数选择就可以了,下面就大概介绍下时钟系统的配置

4

1,MCU有5个时钟源,外部高频主振荡器,外部低频振荡器,内部快速RC,内部备用快速RC,内部低速RC

5

外部高频主振荡器的时钟频率直接根据开发板上的晶振设置为24MHZ就可以了

内部快速RC可以用FRCDIV《2:0》设置振荡器时钟分频1-256分频

外部低频振荡器开发板上没有安装,通过SOSCEN来设置辅助振荡器(SOSC)使能或禁止,我们选择禁止

2,具体选择哪个时钟源为系统主时钟SYSCLK,通过COSC《2:0》:当前振荡器选择位来选择,和NOSC《2:0》:新振荡器选择位来切换

6

3,系统PLL设置,先选择时钟源为外部高频主振荡器还是内部快速RC然后在设置分频倍频的系数

7

PLLICLK用来选择系统PLL输入时钟源位

1 =FRC选作系统PLL的输入

0 =POSC选作系统PLL的输入

PLLIDIV《2:0》用来设置系统PLL输入时钟分频比1-8,我们这里选择2分频,24M 3分频后编程8M

PLLMULT《6:0》用来设置系统PLL倍频比1-128,我们这里选择50倍频,8M50倍频后为400M

PLLODIV《2:0》用来设置系统PLL输出时钟分频比2-32,我们选择2分频,400M 2分频为200M

PLLRANGE《2:0》用来选择输入时钟倍频钱的频率范围选择位,因为是8M,所以我们选择5-10 MHz

PLL设置完成后得到的频率是200MHZ,

4,MCU具有4个参考时钟源,通过寄存器REFOxCON来进行配置,可以选择是否使能,选择时钟源,然后进行分频倍频等设置,并且可以通过寄存器REFOxTRIM是时钟进行微调,这里我们不使用参考时候时钟,直接进行关闭选择。

8

5,外设时钟时钟,由于MCU的外设时钟比较多,所以分配了7个外设时钟源,不同的外设对应不同的时钟源PBCLK1-5,7,8。通过寄存器PBxDIV来分别对外设时钟进行设置

9

外设时钟可以选择使能,分频设置等操作,不使用相应的外设的话可以进行对应的时钟关闭操作,依次点击右面的PBCLK1-5,7,8,可以查看不同的外设对应的外设时钟。

6,注意WDT,PWRT是使用内部低速RC,而Timer1和RTCC是外部低频振荡器,由于外部低频振荡器开发板没有安装,所以这两个外设无法使用

10

7,PIC32MZ EF振荡器系统包括一个故障保护时钟监视器(FSCM)。FSCM监视SYSCLK,保证其持续工作。如果检测到SYSCLK故障,它将会从SYSCLK切换至

BFRC振荡器,并触发NMI。BFRC是一个非调谐的8 MHz振荡器,在发生FSCM事件时驱动SYSCLK。当 执行NMI时,软件会尝试重启主振荡器或关闭系统。

8,USB的时钟设置比较简单,直接选择外部的时钟频率就可以了。

收藏

相关话题
文章来源栏目
+关注

评论(0)

加载更多评论

参与评论

相关文章

分享到

QQ空间 QQ好友 微博
取消