MSP430F5529系统时钟频率设置---超频40MHz

我是Jeason                  本文章会被分享到电赛的论坛

 这是电赛的培训网址  :    https://bbs.nuedc-training.com.cn/forum.php?fromuid=11142

先前跟大家分享了一个MSP430F5529设置25MHz的频率的方法,但是总是感觉频率变化的比较大,经过一番的研究,我发现25MHz下的时钟是经过380倍频得到的,而网上有大神有提到,倍频的过程中存在的不稳定的情况下,故有了换晶振的想法。

我所使用的的是MSP430F5529 的launchpad,板载一个32.768K的RTC时钟XTAL1和一个4MHz 的时钟,原本我只是想获得一个稳定的25MHz的时钟,但是一次错的的数据配置之后我发现系统时钟居然跑到了26MHz,于是,探究频率极限的行动开始了。现在我把这个过程分享给大家。 链接1 25MHz时钟的设置方法 ---->>> 博客地址     链接2: 超频的代码下载地址----->>>>> 下载地址

 

第一阶段: 切换系统的时钟源:(试错的过程省略,我直接分享正确的配置过程)

430 默认情况下XT2是关闭的,系统的核心电压是一个比较低的值,在设置高频率,并且使用外部高速时钟之前我们需要打开时钟,并且在这之前我们需要把系统的核心电压升到最高。  如何提升核心电压的部分我就不细说了, 不了解的小伙伴去看我的25MHz 主频的设置方法--->>>>> 博客地址  。这里咱们  从开启系统时钟开始。

MSP430F5529系统时钟频率设置---超频40MHz

上图是我的初步设想,我们打开XT2,然后让XT2 的时钟(4MHz)直接输出给SMCKL 和MCLK,然后我通过外部测量P2.2引脚的频率(不懂为什么是P2.2脚的也去看上一篇博客) 我就可以知道,我的外部晶振有没有起作用。

打开用户手册 查找寄存器位MSP430F5529系统时钟频率设置---超频40MHz

这里我们找到了几个个关键的寄存器位 

MSP430F5529系统时钟频率设置---超频40MHz

相比较于 先前的25MHz 的设置方法,我们添加了XT2 的配置 包括 使能引脚,打开晶振的驱动(XT2DRIVE)

在设置玩这些之后 是我们的升压函数

MSP430F5529系统时钟频率设置---超频40MHz

这里的作用是将核心电压升到最高

然后接下来就是阶段性的测试了, 我们要确认我们的XT2已经可以正常的工作了

MSP430F5529系统时钟频率设置---超频40MHz

MSP430F5529系统时钟频率设置---超频40MHz

通过测量 P2.2 我们获得了稳稳的 4MHz 的时钟,  这就证明了 XT2CLK这条时钟线上已经有了时钟信号了!

接下来就是对这个时钟信号进行倍频的操作了

MSP430F5529系统时钟频率设置---超频40MHz

倍频的单元是FLL  通过这里我们可以获得一个更高的时钟频率! 上图是我们的时钟信号的走向,我们需要向FLL引入一个 4MHz 的时钟信号。

MSP430F5529系统时钟频率设置---超频40MHz

查找相关的寄存器位,我们的设置如下

MSP430F5529系统时钟频率设置---超频40MHz

MSP430F5529系统时钟频率设置---超频40MHz

接下来是对FLL部分进行配置了  我们的设置依据是 用户手册里面的这个公式

MSP430F5529系统时钟频率设置---超频40MHz

MSP430F5529系统时钟频率设置---超频40MHz

这样 我们只需要对FLL 相关的寄存器进行设置就可以了,查找寄存器的位如下

MSP430F5529系统时钟频率设置---超频40MHz

不过 在我们进行这些操作之前我们需要先关闭FLL 在时钟图上有SCG0 寄存器  

MSP430F5529系统时钟频率设置---超频40MHz

  我查找了他的作用

MSP430F5529系统时钟频率设置---超频40MHz

我们先把 FLL关闭   操作是这个  MSP430F5529系统时钟频率设置---超频40MHz

接下来是配置 FLLN (FLLD 使用默认的参考时钟的分频我们默认不分频!)

MSP430F5529系统时钟频率设置---超频40MHz

这里  我们先假定需要24MHz的时钟  根据公式 则可以计算出 FLLN = 5

MSP430F5529系统时钟频率设置---超频40MHz

测试效果如图 系统的时钟稳定在24MHz

接下来 我们调整FLLN的值

MSP430F5529系统时钟频率设置---超频40MHz

先提升到40MHz 试一下!

MSP430F5529系统时钟频率设置---超频40MHz

还是比较精准的,频率会跳动 不过跳动的范围还是可以接受的

当我把 FLLD 调到2时。。。。。。。此时的理论频率范围已经超过了我的虚拟示波器的测试范围  于是我去借了一个实验室示波器  效果如图 

MSP430F5529系统时钟频率设置---超频40MHz

 

amazing!    居然真的可以达到80MHz ,不过在80MHz下的时钟输出极其不稳定!而且输出的信号的峰峰值只有可怜的660mv

 显然 80MHz下的单片机是不具备工作的能力的,我们继续向下去探寻一个更加合理的数值   48M 或许是一个不错的选择, 配置参数FLLD = 1,FLLN = 5  得到了MSP430F5529系统时钟频率设置---超频40MHz

虽然频率还是在变化,但是变化的范围还在可以接受的范围之内。

MSP430F5529系统时钟频率设置---超频40MHz

这是大致的参数配置表,   更多的配置参数请读者们自行摸索。我目前使用44MHz时很稳定

代码1

后期我将函数进行了整理 整理出来了一款更加实用的代码,可以直接实现超频到自己想要频率

 

加强版代码

 

MSP430F5529系统时钟频率设置---超频40MHz

MSP430F5529系统时钟频率设置---超频40MHz

最后推荐一下我所用的示波器 对虚拟示波器 感兴趣的小伙伴可以加 QQ群 706769836  备注:战神