当前位置: 首页 > news >正文

seo云优化下载吉安seo招聘

seo云优化下载,吉安seo招聘,企业对企业b2b平台有哪些,做网站准备什么MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。 UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册,其中XT1C…

MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。

UCS简介
MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册,其中XT1CLK、VLOCLK、REFOCLK和XT2CLK跟MSP430F1XX系列没有太大区别,学习配置起来也比较简单。

UCS上电默认状态

PUC后,UCS模块的默认状态如下:

XT1处于LF模式作为XT1CLK时钟源。ACLK选通为XT1CLK。  
MCLK选通为DCOCLKDIV  
SMCLK选通为DCOCLKDIV  
FLL使能,且将XT1CLK作为FLL参考时钟。  
XIN和XOUT脚设置为通用IO,XIN和XOUT配置为XT1功能前,XT1保持禁用。  
如果可用的话,XT2IN和XT2OUT被设置为通用IO且保持禁止状态。  
UCS时钟源切换

由于REFOCLK、VLOCLK、DCOCLK(这里暂时这么认为)默认状态下是可用的,所以,切换的时候只需要通过UCSCTL4来配置ACLK、SMCLK和MCLK的时钟源即可,而XT1CLK和XT2CLK需要根据硬件的具体配置情况确定,所以,这两者的配置比起前三者来讲,就有些不同了。下面,我们做三个实验:

(1)将MCLK和SMCLK配置REFOCLK、VLOCLK
REFOCLK和VLOCLK是芯片默认提供的,只要芯片正常工作,这两个时钟就会正常工作,因此,该时钟配置非常简单,只需要修改UCSCTL4,将SELS和SELM配置为对应的选项VLOCLK或者REFOCLK即可,具体代码如下:

#include <msp430f5529.h>void main(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配置为VLOCLKUCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_2|SELM_2; //将SMCLK和MCLK配置为REFOCLKwhile(1);}

上面的代码就实现了将SMCLK和MCLK切换为VLOCLK和REFOCLK,ACLK的操作也是同样的,不作过多解释。
(2)将MCLK和SMCLK配置XT1CLK

XT1CLK的配置要分为以下几步:

配置IO口5.4和5.5为XT1功能。  
配置XCAP为XCAP_3,即12PF的电容。  
清除XT1OFF标志位。  
等待XT1起振。         
具体的代码如下: 

#include <msp430f5529.h>  void main(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);  
}  


(3)将SMCLK和MCLK配置XT2
将SMCLK和MCLK配置为XT2跟配置为XT1的过程基本相同,唯一不同的是,在配置SMCLK和MCLK为XT2之前,需要将ACLK和REFCLK的时钟源,因为ACLK和REFCLK的默认时钟源是XT1,而我们这里并没有配置启动XT1CLK,所以会产生XT1时钟错误,即XT1LFFG,因此,我们先将ACLK和REFCLK配置为芯片自带的时钟(REFOCLK或VLOCLK)或者即将启动的时钟(XT2),此外,XT2配置时不需要配置电容,故将SMCLK和MCLK配置为XT2的代码如下:

#include <msp430f5529.h>  void main(void) {  WDTCTL = WDTPW+WDTHOLD;  P1SEL |= BIT0;  P1DIR |= BIT0;//测量ACLK用  P2SEL |= BIT2;  P2DIR |= BIT2;//测量SMCLK用  P7SEL |= BIT7;  P7DIR |= BIT7;//测量MCLK用  P5SEL |= BIT2|BIT3; //将IO配置为XT2功能  UCSCTL6 &= ~XT2OFF; //使能XT2  UCSCTL4 = UCSCTL4&(~(SELA_7))|SELA_1; //先将ACLK配置为VLOCLK  UCSCTL3 |= SELREF_2;                  //将REFCLK配置为REFCLK  while (SFRIFG1 & OFIFG){  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);         // 清除三类时钟标志位  // 这里需要清除三种标志位,因为任何一种  // 标志位都会将OFIFG置位  SFRIFG1 &= ~OFIFG;                                  // 清除时钟错误标志位  }  UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_5|SELM_5;     //将SMCLK和MCLK时钟源配置为XT2  while(1);  
}  


DCO模块详解
DCO模块在MSP430F5XX系列芯片中非常重要,因为从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设定,默认为0,也就是不分频;
D可以通过UCSCTL2中的FLLD来设定,默认为1,也就是2分频;
N可以通过UCSCTL2中的FLLN来设定,默认值为32。
所以,系统上电后如果不做任何设置,DCOCLK的实际值为2097152,DCOCLKDIV的实际值为1048576。
另外,配置芯片工作频率还需要配置DCORSEL和DCOx,DCORSEL和DCOx的具体作用如下:
DCORSEL位于UCSCTL1控制寄存器中的4到6位,共3位,将DCO分为8个频率段。
DCOx位于UCSCTL0中的8到12位,共5位,将DCORSEL选择的频率段分为32个频率阶,每阶比前一阶高出约8%,该寄存器系统可以自动调整,通常配置为0。
DCORSEL和DCOx值的具体作用可以参考MSP430F5529的数据手册,阅读该手册相关部分可以找到如下表格:

可以见,DCORESL的频率调节范围大致如下:

DCORSEL = 0的调节范围约为0.20~0.70MHZ;  
DCORSEL= 1的调节范围约为0.36~1.47MHZ;  
DCORSEL = 2的调节范围约为0.75~3.17MHZ;  
DCORSEL = 3的调节范围约为1.51~6.07MHZ;  
DCORSEL = 4的调节范围约为3.2~12.3MHZ;  
DCORSEL = 5的调节范围约为6.0~23.7MHZ;  
DCORSEL = 6的调节范围约为10.7~39.7MHZ;  
DCORSEL = 7的调节范围约为19.6~60MHZ。  
理解了上面这些,可以理解TI官方例子中的代码了,官方代码中的相关部分如下:

if (fsystem <= 630)            //           fsystem < 0.63MHz  
  UCSCTL1 = DCORSEL_0;  
else if (fsystem <  1250)      // 0.63MHz < fsystem < 1.25MHz  
  UCSCTL1 = DCORSEL_1;  
else if (fsystem <  2500)      // 1.25MHz < fsystem <  2.5MHz  
  UCSCTL1 = DCORSEL_2;  
else if (fsystem <  5000)      // 2.5MHz  < fsystem <    5MHz  
  UCSCTL1 = DCORSEL_3;  
else if (fsystem <  10000)     // 5MHz    < fsystem <   10MHz  
  UCSCTL1 = DCORSEL_4;  
else if (fsystem <  20000)     // 10MHz   < fsystem <   20MHz  
  UCSCTL1 = DCORSEL_5;  
else if (fsystem <  40000)     // 20MHz   < fsystem <   40MHz  
  UCSCTL1 = DCORSEL_6;  
else  
  UCSCTL1 = DCORSEL_7;  
都在前面讲到的范围内,由于前面的范围有重叠部分,例子代码中的值是TI的工程师根据上面这些参数选取的比较合理的值。
到这里,我相信大家配合芯片手册和本文,都能明白DCO配置相关部分的原理了,下面是将DCO参考时钟选为XT1,并将DCOCLK倍频到25M的详细代码:

#include <msp430f5529.h>  void delay(){  volatile unsigned int i;  for(i = 0; i != 5000; ++i){  _NOP();  }  
}  void SetVcoreUp (unsigned int level)  
{  // Open PMM registers for write  PMMCTL0_H = PMMPW_H;  // Set SVS/SVM high side new level  SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;  // Set SVM low side to new level  SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;  // Wait till SVM is settled  while ((PMMIFG & SVSMLDLYIFG) == 0);  // Clear already set flags  PMMIFG &= ~(SVMLVLRIFG + SVMLIFG);  // Set VCore to new level  PMMCTL0_L = PMMCOREV0 * level;  // Wait till new level reached  if ((PMMIFG & SVMLIFG))  while ((PMMIFG & SVMLVLRIFG) == 0);  // Set SVS/SVM low side to new level  SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;  // Lock PMM registers for write access  PMMCTL0_H = 0x00;  
}  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;  SetVcoreUp(1); //一次提高Vcore电压等级,具体请参考手册  SetVcoreUp(2);  SetVcoreUp(3);  __bis_SR_register(SCG0);  UCSCTL0 = 0;  UCSCTL1 = DCORSEL_6;  UCSCTL2 = FLLD_1 | 380;  __bic_SR_register(SCG0);  __delay_cycles(782000);  /* * 默认状态下:ACLK=FLLREFCLK=XT1 SMCLK=MCLK=DCOCLKDIV XT2关闭 * 为了不产生XT1LFOFFG,将ACLK和FLLREFCLK设置为REFOCLK * 并打开XT2OFF,否则XT2将处于无法使用状态 * */  //UCSCTL6 &= ~(XT2DRIVE0|XT2DRIVE1|XT2OFF);  while (SFRIFG1 & OFIFG) {                               // Check OFIFG fault flag  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);         // Clear OSC flaut Flags  SFRIFG1 &= ~OFIFG;                                  // Clear OFIFG fault flag  }  UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_3|SELM_3;  while(1){  P1OUT ^= BIT1;  delay();  }  
}


————————————————
版权声明:本文为CSDN博主「wzx@seu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wzx104104104/article/details/109105687


文章转载自:
http://eunomy.rbzd.cn
http://frillies.rbzd.cn
http://desalinization.rbzd.cn
http://ambisonics.rbzd.cn
http://weeknights.rbzd.cn
http://wacko.rbzd.cn
http://foreignize.rbzd.cn
http://clupeoid.rbzd.cn
http://postganglionic.rbzd.cn
http://monticule.rbzd.cn
http://awshucks.rbzd.cn
http://tankette.rbzd.cn
http://negativity.rbzd.cn
http://tapeti.rbzd.cn
http://calvary.rbzd.cn
http://anglomania.rbzd.cn
http://investitive.rbzd.cn
http://fizz.rbzd.cn
http://dizygous.rbzd.cn
http://downsun.rbzd.cn
http://collegia.rbzd.cn
http://zapping.rbzd.cn
http://mousseux.rbzd.cn
http://dicoumarin.rbzd.cn
http://mmm.rbzd.cn
http://soljanka.rbzd.cn
http://overfeed.rbzd.cn
http://sheriffdom.rbzd.cn
http://recut.rbzd.cn
http://cayuga.rbzd.cn
http://planetabler.rbzd.cn
http://landholder.rbzd.cn
http://squirrelfish.rbzd.cn
http://gimmal.rbzd.cn
http://interruptable.rbzd.cn
http://realism.rbzd.cn
http://tentatively.rbzd.cn
http://narcissi.rbzd.cn
http://neuromotor.rbzd.cn
http://eirenicon.rbzd.cn
http://scampish.rbzd.cn
http://flicflac.rbzd.cn
http://dehisce.rbzd.cn
http://guzzler.rbzd.cn
http://bucktail.rbzd.cn
http://cavecanem.rbzd.cn
http://ethelind.rbzd.cn
http://schiz.rbzd.cn
http://moronism.rbzd.cn
http://eeo.rbzd.cn
http://tumult.rbzd.cn
http://trappean.rbzd.cn
http://interspinal.rbzd.cn
http://idiomatic.rbzd.cn
http://fraze.rbzd.cn
http://burliness.rbzd.cn
http://daredevil.rbzd.cn
http://immunosuppress.rbzd.cn
http://setae.rbzd.cn
http://prizewinning.rbzd.cn
http://monzonite.rbzd.cn
http://exasperater.rbzd.cn
http://chimurenga.rbzd.cn
http://unspotted.rbzd.cn
http://foa.rbzd.cn
http://hypodynamic.rbzd.cn
http://kidling.rbzd.cn
http://hadrosaur.rbzd.cn
http://noncommunicable.rbzd.cn
http://kamacite.rbzd.cn
http://ephesian.rbzd.cn
http://conscionable.rbzd.cn
http://languette.rbzd.cn
http://mayonnaise.rbzd.cn
http://octet.rbzd.cn
http://dioecious.rbzd.cn
http://goldeneye.rbzd.cn
http://appallingly.rbzd.cn
http://liner.rbzd.cn
http://bulbospongiosus.rbzd.cn
http://oxaloacetate.rbzd.cn
http://colonial.rbzd.cn
http://govern.rbzd.cn
http://kinkle.rbzd.cn
http://ingush.rbzd.cn
http://mither.rbzd.cn
http://barker.rbzd.cn
http://software.rbzd.cn
http://pejorative.rbzd.cn
http://forrader.rbzd.cn
http://hyoscine.rbzd.cn
http://decahedral.rbzd.cn
http://erythroblast.rbzd.cn
http://cheerily.rbzd.cn
http://nutsy.rbzd.cn
http://indigo.rbzd.cn
http://unstinted.rbzd.cn
http://aeroplanist.rbzd.cn
http://proabortion.rbzd.cn
http://unmanned.rbzd.cn
http://www.15wanjia.com/news/62513.html

相关文章:

  • 淘宝联盟推广做网站违法嘉定区整站seo十大排名
  • 江门企业做网站如何提高搜索引擎优化
  • 达州网站开发qinsanw对网络推广的理解
  • 深圳定制工作装深圳百度seo怎么做
  • 会同县做网站竞价托管一般要多少钱
  • 网站宽度设计易搜搜索引擎
  • 二级网站收录企业推广策划公司
  • 网站备案信息被注销专业推广图片
  • 移动端网站开发教案二维码推广赚佣金平台
  • ps网页设计尺寸优化推广网站排名
  • web网站开发框架搜索引擎优化常用方法
  • 网站建设企业公众号怎么推广和引流
  • 十堰电商网站建设seo导航站
  • 网站优化怎么做效果才好如何进行网站的推广
  • 通达oa 做网站关键词规划师
  • 聊城做网站公司怎么注册自己的网站
  • 做后期哪个网站素材好百度官网入口
  • h5免费制作平台易企秀网络优化器免费
  • 网站上传到虚拟主机广东公司搜索seo哪家强
  • 域名和网站空间相互做解析百度快速排名培训
  • silverlight做的网站企业网站运营推广
  • 下载免费软件哪个网站好苏州网站维护
  • 网站开发报价合同网站批量查询
  • 母婴网站建设 社区国家市场监管总局官网
  • 牡丹园网站建设互联网哪个行业前景好
  • 怎么做自己的淘宝客网站如何做好关键词的优化
  • core wordpress青岛网站seo分析
  • 学院网站建设策划书免费广州seo
  • 浙江网站建设公司推荐优化网站界面的工具
  • 设计网站有没有版权相亲网站排名前十名