记得某位网友曾经说过,学习任何一款单片机,首先要学的是它的时钟。的确如此,时钟是如此的重要,在不知道系统时钟的情况,感觉做什么事都是迷迷糊糊的。
之前学过51,它的时钟很简单,就一个外部晶振。然后学了430的G2553,它的时钟就有点麻烦了,时钟源多(两个外部晶振,一个内部超低功耗低频振荡器,一个内部调整低频参考振荡器),内部还有锁频环,而且出来的时钟还能被分频。原因是TI主打低功耗,必须得有各种频率来满足设计需要,毕竟,频率越低,功耗越低。
现在的,430的F5529,跟G2553比起来也就需要配置的时钟相关的寄存器是其3倍而已…还有个PMM(电源管理模块)的配置…
新增的PMM是干嘛的呢?还是那句话,TI主打超低功耗。PMM不仅完成了对电源的监管和监测(这五个字包含了太多的内容…能力有限,不多解释),还为用户提供了更改核心电压(VCORE)的途径。都知道,作为一个系统,肯定要供电的,5529有宽的电源(DVCC)电压范围1.8V-3.6V。DVCC经低压降电压调整器(LDO),产生的一个二次核心电压,专门为CPU数字逻辑供电,共有1.4V(0-12MHZ),1.6V(0-16MHZ),1.8V(0-20MHZ)和1.9V(0-25MHZ)四个级别。当系统需要的时钟频率不高时,我们可以配置低的时钟,可以配置低的VCORE,这样在时钟方面就把功耗降到最低了。当然,函数库HAL_PMM.c/h中有SetVCore(uint8_t level) ,轻轻松松地就可以设置VCORE了。
那下面就是真正的时钟配置了。学过数字逻辑电路的,对分频应该很熟悉。那倍频呢?锁频环(FLL)到底是什么?还有经常被提到的锁相环(PLL)又是什么?往往打败新手的都是一些陌生的名词。锁频环,顾名思义,就是使两个信号的频率能达到某种关系。而这两个信号,一个可以是输入时钟的子信号(刚刚说了,分频很容易实现的),另一个可以是输出时钟的子信号。现在再看看文档给出的公式:
当D*(N + 1)越大的时候,fDCOCLK也就越大了,从而也就达到了倍频的作用啦!锁相环的原理也是类似咯,把两个信号的相位锁定相等了,那频率也就相等了,而这两个信号同样是输入和输出时钟的子信号,而且都是它们的分频。至于怎么锁频,如何锁相,有数字鉴频器,数字鉴相器,再加上反馈(说起来简单,是因为我懂的不多…)。
上面公式中的D,N,n都是时钟寄存器中配置的。FLLREFCLK同样是寄存器配置后选择的。那关于寄存器的配置,也就不多说了。主要讲几个注意事项吧:
1. 当时钟源选择了外部晶振时,需要将晶振管教对应的IO口设为复用功能
2. 当时钟源选择了外部晶振时,需要使能晶振
3. 若选择了XT1,还要选择负载电容,当然,默认12pf就可以了
4. 不要忘记核心电压的选择
5. 当时钟配置好了之后,系统可以作稍微的延时,等待时钟稳定
6. 稳定之后,XT1,XT2的驱动力可以减小以降低功耗
关键字:MSP430F5529 时钟
引用地址:
浅谈MSP430F5529时钟
推荐阅读最新更新时间:2024-03-16 13:50
PIC32 RTCC实时时钟和日历
RTCC实时时间和日历 结构体定义: rtccDate dt;//日期结构体dt.year年,dt.mon月,dt.mday日,dt.wday星期几,dt.l整体 rtccTime tm;//时间结构体tm.hour时,tm.min分,tm.sec秒,tm.l整体 rtccDate adt;//闹钟时间结构体定义 rtccTime atm; 一.RTCC模块设置 初始化RTCC RtccInit(); //禁止中断,清除中断标志,关闭闹钟Alarm,锁写,开启RTCC ON 等待稳定开启RTCC While(RtccGetClkStat()!=RTCC_CLK_ON
[单片机]
STM32入门学习笔记之时钟树架构(下)
(2) 时钟配置寄存器 :RCC_CFGR 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 - MCO - USBPRE PLLMUL PLLXTPRE PLLSRC 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADCPRE PPRE2 PPRE1 HPRE SWS SW Bit 26~Bit 24:芯片时钟输出 0xx:禁止输出 100:选择系统时钟SYSCLK 101:选择HSI时钟 110:选择HSE时钟 111:选择PLL分频输出(2分频) Bit 22:U
[单片机]
S2C2440 时钟的设置方式
1. S2C2440 的时钟是通过MPLL锁相环环来进行倍频的 其中公式为 在S2C2440里面有三种时钟 1: FLCK 这个是内核的时钟最大可以到400Mhz 2. HLCK 高速时钟 这个是提供给内部资源的时钟最大为136Mhz 3. Pclk 这个是外设的时钟 最大是68Mhz 注意: 所有的时钟都是有FLCK分频得来 下面我们要做的是如何在内核时钟最大的时候400Mhz 的时候 分频给Hclk 100Mhz 和外设时钟68Mhz 上图的寄存器是为ARM提供上电延时的时钟延时 一般都是取默认值
[单片机]
基于51单片机的可由按键切换12\24小时制的电子时钟proteus仿真
仿真电路图: 部分源代码: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit lcdrs=P3^5; sbit lcden=P3^4; sbit s1=P3^0; sbit s2=P3^1; sbit s3=P3^2; sbit s4=P3^3; sbit beep=P2^2; sbit led=P2^3; uchar count,s1num,s4num; char year,month,day,week,miao,shi,fen,pshi; uchar code table = 20 -
[单片机]
单片机带时钟1602计算器终极程序
一年前弄的小玩意了,硬件丢失了,翻出来,重新分割了下,加了详细注释,注释很重要啊,以前没加详细,我自己理解起来也要半天,分享下,希望对他人有所帮助吧。其实我目前发的三个东西,现在想来,对单片机资源方面的知识涉及的不多,主要还是单片机C语言方面。在没硬件的情况下,我想分享的是我的思维,我是如何构思的,是如何运用运算符变量语句的。 单片机源程序如下: //=========================================================================================================================================
[单片机]
SN74SSTUB32864 —具备 SSTL_18 输入与输出的 25 位可配置寄存缓冲器
25 位 1:1 或14 位 1:2 可配置寄存缓冲器适用于 1.7 V 至 1.9 V 的 VCC 工作环境。就 1:1 引脚配置而言,每个 DIMM 仅需一个器件驱动 9 个 SDRAM 负载。就 1:2 引脚配置而言,每个 DIMM 需要两个器件驱动 18 个 SDRAM 负载。 除复位 (RESET) 与控制 (Cn) 输入为LVCMOS,所有其它输入均为 SSTL_18。所有输出均针对边缘控制电路进行了优化,可满足无端接 DIMM 负载的要求,并符合 SSTL_18 规范。 SN74SSTUB32864 利用 1 个差分时钟(CLK 与 CLK)工作,并将在 CLK 上升与下降的相交时进行数据寄存。 C
[新品]
单片机电子时钟程序
/******************************************************************************** 品名:电子时钟 功能:秒表,闹钟,日历,计数器,频率计 时钟 作者:阿飞 版本:v1.4 修改:二月调整bug code unsigned char leab_day ={31,28,31,30,31,30,31,31,30,31,30,31}; 改成 code unsigned char leab_day ={31,29,31,30,31,30,31,31,30,31,30,31};
[单片机]
MSP430F5529 DriverLib 库函数学习笔记(九)SPI
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 USCI的同步模式 SPI概述 SPI(Serial Peripheral Interface)为串行外设接口的简称,它是一种同步全双工通信协议。MSP430F5xx/6xx系列单片机的USCI_A和USCI_B模块都支持SPI通信模式。SPI通信模块通过3线(SOMI、SIMO、CLK)或者4线(SOMI、SIMO、CLK及STE)同外界进行通信。下面对这4根线进行简要说明。 ① CLK:CLK为SPI通信时钟线。该时钟线由
[单片机]