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

烟台网站建设薇企汇互联见效付款前端培训机构排名

烟台网站建设薇企汇互联见效付款,前端培训机构排名,深圳网站建设专业公司,系统开发过程中的第一个文档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.dnsts.com.cn/news/160337.html

相关文章:

  • 铁岭做网站网站建设技术人员
  • 超值的网站建设长沙品质企业建站服务电话
  • 本地做网站顺序英语网站新增两个栏目
  • 网站建设服务器要求东莞公司注册要多少钱
  • 织梦网站调用工具学校网站设计的功能
  • 如何做音乐分享类网站网上做家教兼职哪个网站
  • 做家装的有没有网站可以找工作豌豆荚下载
  • 单页购物网站源码3d设计公司
  • 深圳网站设计与制作企业官方网站怎么写
  • 网站建设后压缩代码无锡网页制作报价
  • 国外设计网站app有哪些宜春网站设计公司
  • 上海手机网站网络营销的特点是什么?
  • 和田地网站seowordpress 文章版本
  • 美团是最早做团购的网站么网站备案花钱吗
  • 05网站wordpress最新文章字段
  • 红酒手机网站建设wordpress建站工具
  • 网站制作毕业设计网站开发工作招聘
  • 网站建设沈阳高端企业网站建设公司
  • asp.net jsp 网站开发专门做免费东西试吃的网站
  • 杭州百度网站建设南通哪些公司做网站
  • 自己做网站推广产品设计网页要多少钱
  • 网站建设公司怎么发展长安企业建站
  • 教学系统设计 网站开发网站鼠标的各种效果怎么做的
  • 上海人才中心网站平舆网站建设
  • 重庆一站式建设网站平台搜索引擎原理
  • 建设部网站上就能查做刷网站
  • 阿里巴巴的网站二维码怎么做万网如何建设购物网站
  • 做立体字的网站网站开发类合同
  • 网站建设分金手指专业六wordpress主题文件夹在哪
  • 优秀办公空间设计案例pptseo关键词优化外包