MSP430(F5529)比较MSP430(F149)来讲,功用愈加强壮。
UCS简介
MSP430F5XX/MSP430F6XX系列器材的UCS包括有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参阅该系列芯片的辅导手册,其间XT1CLK、VLOCLK、REFOCLK和XT2CLK跟MSP430F1XX系列没有太大差异,学习装备起来也比较简略。
UCS上电默许状况
PUC后,UCS模块的默许状况如下:
- (1)XT1处于LF形式作为XT1CLK时钟源。ACLK选通为XT1CLK。
- (2)MCLK选通为DCOCLKDIV
- (3)SMCLK选通为DCOCLKDIV
- (4)FLL使能,且将XT1CLK作为FLL参阅时钟。
- (5)XIN和XOUT脚设置为通用IO,XIN和XOUT装备为XT1功用前,XT1坚持禁用。
- (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即可,详细代码如下:
- #include
- voidmain(void){
- WDTCTL=WDTPW+WDTHOLD;
- P1SEL|=BIT0;
- P1DIR|=BIT0;//丈量ACLK用
- P2SEL|=BIT2;
- P2DIR|=BIT2;//丈量SMCLK用
- P7SEL|=BIT7;
- P7DIR|=BIT7;//丈量MCLK用
- //UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_1|SELM_1;//将SMCLK和MCLK装备为VLOCLK
- UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_2|SELM_2;//将SMCLK和MCLK装备为REFOCLK
- while(1);
- }
上面的代码就完成了将SMCLK和MCLK切换为VLOCLK和REFOCLK,ACLK的操作也是相同的,不作过多解说。
(2)将MCLK和SMCLK装备XT1CLK
我手头上的开发板XT1外接的是32.768K的手表时钟晶振,XT1CLK的装备要分为以下几步:
- 1.装备IO口5.4和5.5为XT1功用。
- 2.装备XCAP为XCAP_3,即12PF的电容。
- 3.铲除XT1OFF标志位。
- 4.等候XT1起振。
详细的代码如下:
- #include
- voidmain(void){
- WDTCTL=WDTPW+WDTHOLD;
- P1SEL|=BIT0;
- P1DIR|=BIT0;//丈量ACLK用
- P2SEL|=BIT2;
- P2DIR|=BIT2;//丈量SMCLK用
- P7SEL|=BIT7;
- P7DIR|=BIT7;//丈量MCLK用
- P5SEL|=BIT4|BIT5;//将IO装备为XT1功用
- UCSCTL6|=XCAP_3;//装备%&&&&&%为12pF
- UCSCTL6&=~XT1OFF;//使能XT1
- while(SFRIFG1&OFIFG){
- UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);//铲除三类时钟标志位
- //这儿需求铲除三种标志位,由于任何一种
- //标志位都会将OFIFG置位
- SFRIFG1&=~OFIFG;//铲除时钟过错标志位
- }
- UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_0|SELM_0;//将SMCLK和MCLK时钟源装备为XT1
- while(1);
- }