1713|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

DCO-FLL数控振荡器结合锁相环 [复制链接]

DCO模块在MSP430F5529系列芯片中非常重要,因为从MSP430F4XX开始,MSP430引用了FLL模块,FLL即锁相环,可以通过倍频的方式提高系统时钟频率,进而提高系统的运行速度。

  DCO模块运行需要参考时钟REFCLK,REFCLK可以来自REFOCLK、XT1CLK和XT2CLK,通过UCSCTL3的SELREF选择,默认使用的XT1CLK,但如果XT1CLK不可用则使用REFOCLK。

  DCO模块有两个输出时钟信号,即DCOCLK和DCOCLKDIV,其中,倍频计算公式如下:

  DCOCLK = D*(N+1)*(REFCLK/n)

  DCOCLKDIV = (N+1)*(REFCLK/n)

  其中:n即REFCLK输入时钟分频,可以通过UCSCTL3中的FLLCLKDIV设定,默认为1,也就是不分频;

  D可以通过UCSCTL2中的FLLD来设定,默认为1,也就是2分频;

  N可以通过UCSCTL2中的FLLN来设定,默认值为32。

  所以,系统上电后如果不做任何设置,DCOCLK的实际值为2097152,DCOCLKDIV的实际值为1048576。

  另外,配置芯片工作频率还需要配置DCORSEL和DCOx,DCORSEL和DCOx的具体作用如下:

  DCORSEL位于UCSCTL1,共3位,将DCO分为8个频率段。

  DCOx位于UCSCTL0共5位,将DCORSEL选择的频率段分为32个频率阶,每阶比前一阶高出约8%,该寄存器系统可以自动调整,通常配置为0。

下表给出了相应设置情况下的频率调节范围:

/*通过DCO-FLL将32.768KHZ倍频到25MHZ*/

#include   

#include “HAL_PMM.h”

void delay()

{

volatile unsigned int I;

for(I = 0; I != 5000; ++i){_NOP(); }}//延时函数

void main(void) {

WDTCTL = WDTPW+WDTHOLD;

P1SEL &= ~BIT1;

P1DIR |= BIT1;



P1SEL |= BIT0; //ACLK

P1DIR |= BIT0;

P2SEL |= BIT2; //SMCLK

P2DIR |= BIT2;

P7SEL |= BIT7; //MCLK

P7DIR |= BIT7;

P5SEL |= BIT4|BIT5;

UCSCTL6 |= XCAP_3;

UCSCTL6 &= ~XT1OFF;//打开XT1,否则XT1LFOFFG可能报错

SetVCore(3); //提高Vcore电压到最高级,以满足倍频需求该函数位于HAL_PMM.H中

__bis_SR_register(SCG0);//该语法为固定格式,意为将括号内的变量置位,SCG0与系统工作模式有关,此时MCLK暂停工作

UCSCTL0 = 0;   //先清零,FLL运行时,该寄存器系统会自动配置,不用管

UCSCTL1 = DCORSEL_6;

UCSCTL2 = FLLD_1 | 380;//FLLD=1,FLLN=380,则频率为

2*(380+1)*32.768=24.969MHZ

__bic_SR_register(SCG0);

__delay_cycles(782000);//系统自带的精确延时,单位us

while (SFRIFG1 & OFIFG) {                           

        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);      

        SFRIFG1 &= ~OFIFG;                                 

}

UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_3|SELM_3;

//选择DCO作为时钟源

while(1){

        P1OUT ^= BIT1;

        delay();

}

}

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表