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

四川省建设安全协会网站大连零基础网站建设教学哪里有

四川省建设安全协会网站,大连零基础网站建设教学哪里有,html编辑器的功能介绍,网站建设安全协议书MSP430(F5529)相比MSP430(F149)来讲#xff0c;功能更加强大。 UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源#xff0c;依次是#xff1a;XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册#xff0c;其中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脚设置为通用IOXIN和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.hvoid main(void) {WDTCTL WDTPWWDTHOLD;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和REFOCLKACLK的操作也是同样的不作过多解释。 2将MCLK和SMCLK配置XT1CLK XT1CLK的配置要分为以下几步 配置IO口5.4和5.5为XT1功能。   配置XCAP为XCAP_3即12PF的电容。   清除XT1OFF标志位。   等待XT1起振。          具体的代码如下  #include msp430f5529.h  void main(void) {  WDTCTL WDTPWWDTHOLD;  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 WDTPWWDTHOLD;  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模块运行需要参考时钟REFCLKREFCLK可以来自REFOCLK、XT1CLK和XT2CLK通过UCSCTL3的SELREF选择默认使用的XT1CLK但如果XT1CLK不可用则使用REFOCLK。 DCO模块有两个输出时钟信号级DCOCLK和DCOCLKDIV其中倍频计算公式如下 DCOCLK D*(N1)*(REFCLK/n)   DCOCLKDIV (N1)*(REFCLK/n)   其中 n即REFCLK输入时钟分频可以通过UCSCTL3中的FLLCLKDIV设定默认为0也就是不分频 D可以通过UCSCTL2中的FLLD来设定默认为1也就是2分频 N可以通过UCSCTL2中的FLLN来设定默认值为32。 所以系统上电后如果不做任何设置DCOCLK的实际值为2097152DCOCLKDIV的实际值为1048576。 另外配置芯片工作频率还需要配置DCORSEL和DCOxDCORSEL和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 WDTPWWDTHOLD;  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);  /* * 默认状态下ACLKFLLREFCLKXT1 SMCLKMCLKDCOCLKDIV 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博主「wzxseu」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/wzx104104104/article/details/109105687
http://www.tj-hxxt.cn/news/232544.html

相关文章:

  • 成都网站建设qghl亿网网络科技有限公司
  • 第三方做网站招商网站建设地点
  • 可以做思维导图的网站asp怎么样做网站后台
  • 协会网站建设需求文档软件定制化
  • 网站维护服务费南阳网站建设制作价格
  • 医药网站建设中图片宁晋网站建设设计
  • 北京的制作网站的公司有哪些高创园网站建设方案
  • 做网站公司商丘新网站如何做营销
  • 网站建设与规划活动推广宣传方案
  • 网站建设意向表深圳网页设计学院
  • 建设网站的工作步骤西安市建设工程信息网诚信信息平台诚信承诺书在哪儿下载
  • 帮别人做网站赚钱吗网站建设 psd
  • 有了网站域名如何做网站汽车网页模板
  • 网站图片居中代码wordpress博客站模板
  • 广州网站建设在线大淘客网站logo怎么做
  • 做网站分几步30个免费货源网站
  • 做网站一定要认证吗wordpress rss订阅
  • 姜堰区住房和城乡建设局网站wordpress 所有函数
  • 深圳网站设计灵点网络口碑好牡丹江47号公告
  • 团购网站 设计方案wordpress wp-signup.php
  • 锁定网站导航栏西安网站制作顶
  • 多元网站建设重庆做网站怎么做呀
  • 百度个人网站申请城市文化建设的网站
  • 网站图一般做多少分辨率深圳做网站网络营销公司排名
  • 帮别人做网站开什么内容的专票网站大图轮播
  • 深圳做网站的大公司wordpress 后台登录不上
  • 网站建设策dw phpwordpress get_categories()
  • 做刷赞网站能赚钱吗免费下载app并安装
  • 网站关闭申请书中国招标投标服务平台官网
  • 做任务的兼职网站鹤山做网站公司