您的位置 首页 知识

MSP430(F5529)学习笔记——UCS装备详解

MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。UCS简介MSP430F5XXMSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK

MSP430(F5529)比较MSP430(F149)来讲,功用愈加强壮。

UCS简介
MSP430F5XX/MSP430F6XX系列器材的UCS包括有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参阅该系列芯片的辅导手册,其间XT1CLK、VLOCLK、REFOCLK和XT2CLK跟MSP430F1XX系列没有太大差异,学习装备起来也比较简略。

UCS上电默许状况

PUC后,UCS模块的默许状况如下:

[html]view plaincopy

  1. (1)XT1处于LF形式作为XT1CLK时钟源。ACLK选通为XT1CLK。
  2. (2)MCLK选通为DCOCLKDIV
  3. (3)SMCLK选通为DCOCLKDIV
  4. (4)FLL使能,且将XT1CLK作为FLL参阅时钟。
  5. (5)XIN和XOUT脚设置为通用IO,XIN和XOUT装备为XT1功用前,XT1坚持禁用。
  6. (6)假如可用的话,XT2IN和XT2OUT被设置为通用IO且坚持禁止状况。

清楚UCS上电默许状况是十分重要的,这关于了解后边的装备逻辑来说十分重要。

UCS时钟源切换

由于REFOCLK、VLOCLK、DCOCLK(这儿暂时这么以为)默许状况下是可用的,所以,切换的时分只需求经过UCSCTL4来装备ACLK、SMCLK和MCLK的时钟源即可,而XT1CLK和XT2CLK需求依据硬件的详细装备状况确认,所以,这两者的装备比起前三者来讲,就有些不同了。下面,咱们做三个试验:

(1)将MCLK和SMCLK装备REFOCLK、VLOCLK
REFOCLK和VLOCLK是芯片默许供给的,只需芯片正常作业,这两个时钟就会正常作业,因而,该时钟装备十分简略,只需求修正UCSCTL4,将SELS和SELM装备为对应的选项VLOCLK或许REFOCLK即可,详细代码如下:

[cpp]view plaincopy

  1. #include
  2. voidmain(void){
  3. WDTCTL=WDTPW+WDTHOLD;
  4. P1SEL|=BIT0;
  5. P1DIR|=BIT0;//丈量ACLK用
  6. P2SEL|=BIT2;
  7. P2DIR|=BIT2;//丈量SMCLK用
  8. P7SEL|=BIT7;
  9. P7DIR|=BIT7;//丈量MCLK用
  10. //UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_1|SELM_1;//将SMCLK和MCLK装备为VLOCLK
  11. UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_2|SELM_2;//将SMCLK和MCLK装备为REFOCLK
  12. while(1);
  13. }

上面的代码就完成了将SMCLK和MCLK切换为VLOCLK和REFOCLK,ACLK的操作也是相同的,不作过多解说。
(2)将MCLK和SMCLK装备XT1CLK

我手头上的开发板XT1外接的是32.768K的手表时钟晶振,XT1CLK的装备要分为以下几步:

[cpp]view plaincopy

  1. 1.装备IO口5.4和5.5为XT1功用。
  2. 2.装备XCAP为XCAP_3,即12PF的电容
  3. 3.铲除XT1OFF标志位。
  4. 4.等候XT1起振。

详细的代码如下:

[cpp]view plaincopy

  1. #include
  2. voidmain(void){
  3. WDTCTL=WDTPW+WDTHOLD;
  4. P1SEL|=BIT0;
  5. P1DIR|=BIT0;//丈量ACLK用
  6. P2SEL|=BIT2;
  7. P2DIR|=BIT2;//丈量SMCLK用
  8. P7SEL|=BIT7;
  9. P7DIR|=BIT7;//丈量MCLK用
  10. P5SEL|=BIT4|BIT5;//将IO装备为XT1功用
  11. UCSCTL6|=XCAP_3;//装备%&&&&&%为12pF
  12. UCSCTL6&=~XT1OFF;//使能XT1
  13. while(SFRIFG1&OFIFG){
  14. UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);//铲除三类时钟标志位
  15. //这儿需求铲除三种标志位,由于任何一种
  16. //标志位都会将OFIFG置位
  17. SFRIFG1&=~OFIFG;//铲除时钟过错标志位
  18. }
  19. UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_0|SELM_0;//将SMCLK和MCLK时钟源装备为XT1
  20. while(1);
  21. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/256341.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部