历史上的今天
返回首页

历史上的今天

今天是:2025年10月17日(星期五)

正在发生

2022年10月17日 | MSP430F5529火箭板 ---> 控制时钟系统输出频率实验(含时钟系统分析)

2022-10-17 来源:csdn

实验内容:上电控制MSP430F5529 Launch Pad上的主时钟系统达到25Mhz


实验准备:

1、硬件:MSP430F5529 Launch Pad

2、软件:Code Composer Studio集成开发工具(CCS)

3、提升MSP430F5529核心电压的办法及介绍请参考《MSP430F5529火箭板 ----> 关于核心电压提升实验(含电源管理模块和供电监控系统介绍)》文章链接link


一、时钟系统

1、MSP430F5529 Lanuch Pad晶振的物理层分析

  在进入时钟系统之前我们先对MSP430F5529的时钟晶振做一个介绍。

   MSP430F5529 Launch Pad 板载了1个32.768Khz的RTC实时时钟XTAL1和1个4Mhz的外部晶振XTAL2

  默认情况下,MSP430F5529的系统时钟为1Mhz

   XT2的4Mhz晶振与MCU连接引脚如下图所示:

在这里插入图片描述

2、MSP430F5529 Launch Pad时钟的介绍

  MSP430应用程序通常使用一个快时钟和一个慢时钟。在某些情况下,快时钟(称为MCLK)用于驱动CPU和外围设备,而慢时钟保持计时器和外围设备在低功耗模式下运行。这种方法降低了功耗:慢时钟消耗的电量更少,因此,禁用快时钟的次数越多,应用程序消耗的电量就越少。

  这种快速时钟通常是集成在单片机中的数字控制振荡器(DCO)。DCO本身是一个重要的低功耗工具,因为与晶振不同,它有非常快的启动时间,因此可以快速关闭和重新启用。DCO可以被中断激活,并且稳定得足够快来响应它。MCU的低功耗模式只有在经常使用的情况下才有用。

  许多MSP430设备,包括F5529,将DCO与频率锁定环(FLL)模块耦合,使DCO锁定在精确的慢频参考上。这可以很好地控制DCO频率。


MSP430F5529有三个可用的慢时钟:

1、REFO:内部低频修整基准源,是一种不需要晶振起振的高精度、低功率芯片上振荡器,典型值为32.768Khz,常被用作锁相环FLL的基准频率,其设置往往要参考LPM模式的设置。

2、LEFXT1:外部低频振荡源,经典值为32.768Khz,它和REFO一样可以作为锁相环FLL的基准频率,但是它比REFO精度更高、功率更低且更稳定。

3、VLO:(Internal very low)内部低耗低频振荡源,精确度低,范围在12Khz~20Khz之间


下表为F5529推荐的时钟配置:

image.png?imageView2/2/w/550

UCS模块默认配置:

  在F5529上电完成PUC后,UCS模块默认配置为:

    1、XT1默认选择LF模式,作为XT1CLK的振源。ACLK默认振源为XT1CLK

    2、MCLK默认振源为DCOCLKDIV

    3、SMCLK默认振源为DCOCLKDIV

    4、当启用FLL锁相环时,默认选择XY1CLK作为FLLREFCLK参考时钟源

    5、在具有XIN和XOUT与通用I/O共享的设备上,XIN和XOUT pin被设置为通用I/Os,并且XT1一直处于禁用状态,直到为XT1操作配置了复用I/O端口。如果XIN和XOUT不与通用I/Os共享,则默认启用XT1。

    6、上电时,XT2IN和XT2OUT引脚被设置为通用I/O,而XT2处于禁用状态


对于MSP430F5529来说,上电后,默认情况下FLL选择XT1,如果晶振引脚(XIN, XOUT)与通用I/O共享,XT1将保持禁用状态,直到与晶振引脚关联的PxSEL位和XT1BYPASS位决定被设置,如果XIN和XOUT不与通用I/O共享,则XT1启用。当XT1CLK使用32.768Khz晶体时,故障控制逻辑立即导致ACLK由REFOCLK提供,因为XT1不是立即稳定的。当晶体启动得到并稳定后,FLL稳定在MCLK和SMCLK到1.048576 MHz,fDCO = 2.097152 MHz


UCS模块故障安全操作:

  UCS模块包含振荡故障故障安全功能,该特性检测XT1、DCO和XT2的振荡器故障,存在的故障类型为:

  1、低频模式下XT1低频振荡器故障(XT1LFOFFG)

  2、高频模式下XT1高频振荡器故障(XT1HFOFFG)

  3、XT2高频振荡器故障(XT2OFFG)

  4、DCO故障标志(DCOFFG)


  对应的晶体振荡器打开后不能正常工作时,设置晶体振荡器故障位XT1LFOFFG、XT1HFOFFG、XT2OFFG。在故障位被设置之后,即使故障条件不再存在,它们仍然保持设置直到在软件中重置。如果故障一直存在,而用户却清除了故障标志位,则故障标志位在清除后再次自动置位。所以,在编写程序时,一定要判断故障标志位是否置位,如果置位,将其软件清除。


3、MSP430F5529 Launch Pad时钟树

  有如下图:

在这里插入图片描述

二、源代码

  下面我们先看一个让F5529输出8Mhz主频时钟的源代码:


#include


void SysClock_Init(); //申明系统时钟初始化函数

void SetVcoreUp(unsigned int level); //申明核心电压调整函数


void main()

{

    WDTCTL = WDTPW + WDTHOLD;

    SetVcoreUp(0x01);   //核心电压等级必须逐级提升,不能直接跳跃提升

    SetVcoreUp(0x02);

    SetVcoreUp(0x03);

    SysClock_Init();


    while(1);

}


void SetVcoreUp(unsigned int level)

{

    //Open PMM register for write

    PMMCTL0_H = PMMPW_H;        //PMMCTL0_H是电源管理寄存器PMMCTL0的高8位,PMMPW_H解锁PMM所有的寄存器

    

    //Set SVS/SVM high side new level

     SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level; // SVLE --> 此位控制SVSL使能      SVMHE  --> 此位控制SVMHE使能

                                                                      //SVSHRVL --> SVSH 复位电平电压

    //Set SVM low side to new level

     SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 *level;  

   

    //Wait till SVM is settle

     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 SysClock_Init()

{

    UCSCTL3 = SELREF_2;         //设置DCO锁相环的时钟源为REFOCLK

    UCSCTL4 |= SELA_2;          //Set ACLK = REFO

    __bis_SR_register(SCG0);    //失能锁相环时钟,系统时钟切换到备用时钟,此时可以对时钟进行设置

    UCSCTL0 = 0X0000;           //将DCOx,MODx设置成最低

    UCSCTL1 = DCORSEL_4;        //设置DCO的频率范围   2~20Mhz

    UCSCTL2 = FLLD_0 + 762;     //FLLD_0  --->  32768Hz为基准时钟的分频  ,FFLN  ---> 是后面的数字

    //(N+1) * FLLRef = Fdco

                                //(243+1) * (32768/1) = 8Mhz

    __bic_SR_register(SCG0);    //使能锁相环时钟

    //最坏的情况下,DCO恢复的解决时间是(32 * 32 * n)/f_MCLK  =  Num MCLK cycles for DCO to settle

    // (32 *32 * 8Mhz)/32768Hz = 250K       ---->  n为我们要设置的频率

    __delay_cycles(250000);


    //进入循环直到XT1、XT2、DCO稳定为止,本例中只需循环到DCO稳定下来即可

    do

    {

        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

        //清除XT2、XT1、DCO 默认标志

        SFRIFG1 &= ~OFIFG;      //清除默认标志,SFRIFG1 --> 中断标志寄存器

        //OFIFG --> 振荡器故障中断标志   0:没有中断发生  1:有中断即将发生

    }while(SFRIFG1 & OFIFG);    //测试振荡器故障中断是否发生,如果发生就卡在此处循环

}


推荐阅读

史海拾趣

Akustica(Bosch)公司的发展小趣事

Akustica 公司是一家微机电系统(MEMS)技术公司,于2001年成立于美国匹兹堡,后来成为博世集团(Bosch)的子公司。以下是关于 Akustica 公司发展的五个相关故事:

  1. 公司成立和早期发展: Akustica 公司成立于2001年,由匹兹堡卡内基梅隆大学的研究团队创建。该公司专注于 MEMS 技术的研发和创新,致力于开发高性能的声学传感器和系统解决方案。在成立初期,Akustica 聚焦于市场需求日益增长的消费电子和汽车应用领域,并不断推出创新产品,赢得了市场认可。

  2. 博世收购: 随着市场竞争的加剧和技术进步的不断推动,Akustica 公司于2009年被博世集团收购。作为全球领先的技术和服务供应商,博世集团的收购加速了 Akustica 的发展步伐,并为其提供了更广阔的市场和资源,以加速产品创新和业务扩展。

  3. 技术创新和产品发展: 在博世集团的支持下,Akustica 公司不断进行技术创新和产品开发,推出了一系列声学传感器产品,包括麦克风、扬声器和超声波传感器等。这些产品在消费电子、汽车、工业和医疗等领域得到了广泛应用,为用户提供了更优质的声音和声学体验。

  4. 市场拓展和全球业务: 随着技术和产品的不断进步,Akustica 公司逐渐拓展了全球业务,并与各行各业的客户建立了合作关系。公司在美国、欧洲和亚洲等地建立了销售和服务网络,以更好地满足客户的需求,并开拓新的市场机会。

  5. 持续发展和未来展望: Akustica 公司作为博世集团的一部分,继续致力于声学传感器技术和产品的创新,不断提升产品性能和功能,以满足不断变化的市场需求。未来,公司将继续加强在智能手机、智能家居、车载系统、工业自动化和医疗设备等领域的业务拓展,助力客户实现更加智能、便捷和安全的生活和工作环境。

Capital Advanced Technologies公司的发展小趣事

CAT深知技术创新是企业发展的核心动力。因此,公司不断投入研发资源,推动技术创新与突破。经过多年的努力,CAT成功开发出了一系列具有自主知识产权的电子产品和技术,如高性能的电路板、精密的连接器以及先进的测试设备等。这些产品的推出,不仅提高了CAT的市场竞争力,也为整个电子行业的发展注入了新的活力。

意华(CZT)公司的发展小趣事

自1995年成立以来,意华(CZT)始终秉持“诚信”的合作态度和“创新”的发展思路。在公司初创阶段,面对激烈的市场竞争,意华坚持高质量的产品和服务,赢得了客户的信赖。同时,公司不断投入研发,推出了一系列具有创新性的电子产品和连接器,迅速在市场上树立了良好的口碑。

Crystek公司的发展小趣事

为了更好地满足客户需求和推动业务发展,Crystek公司设立了专门负责频率控制的部门——Crystek Crystals和Crystek Microwave。这两个部门分别致力于开发和制造使用石英谐振器的频率产品以及为微波行业开发频率控制和支持产品。这种专业化的分工不仅提高了公司的运营效率,也使得Crystek公司能够更好地为客户提供定制化的解决方案和优质的服务。

Amulet Technologies公司的发展小趣事

Crystek公司成立于1958年,自创立之初,就致力于成为射频微波和频率控制行业的高性能技术领导者。创业初期,Crystek公司凭借其敏锐的市场洞察力和前瞻性的技术视野,成功开发了一系列高质量的频率产品,包括石英晶振、时钟振荡器(XO)等,逐渐在市场中树立起了良好的口碑。通过不断的努力和创新,Crystek公司逐渐在电子行业中崭露头角,赢得了客户的信任和认可。

Electroswitch公司的发展小趣事

面对快速变化的电子行业环境,Electroswitch始终保持着敏锐的洞察力和创新精神。公司不断加大对新技术和新产品的研发力度,推出了一系列具有领先水平的开关产品。同时,公司还积极探索新的业务领域和市场机会,为未来的发展做好充分准备。展望未来,Electroswitch将继续秉承“质量、选择、产品创新和出色的支持”的理念,为客户提供更加优质的产品和服务。

请注意,以上故事框架仅供参考,您可以根据这些框架进一步扩展和丰富故事内容。

问答坊 | AI 解惑

usb

对usb感兴趣的同学注意了啊…

查看全部问答>

新闻早班车:节能的照明级、中性白光和暖白光LED

cree公司的LED技术方面还处于世界领先地位。 来看看新闻: Cree公司日前宣布色温介于2600 K-5000 K CCT之间的暖白光与中性白光 XLamp XP-G LED开始商用 。 暖白光 (3000 K) XLamp XP-G在 350 mA 的驱动电流下,可提供高达 114 lm的光通量和 1 ...…

查看全部问答>

WinCE上运行的安装盘能否将文件安装到 NandFlash上?

WinCE上运行的安装盘能否将文件安装到 NandFlash上?…

查看全部问答>

关于USB加载描述符,主机识别的问题

大家好,我调了SEED开发板上的的USB测试程序,运行正常。它的USB有两种枚举,一是EEPROM,一个是DSP枚举。都可以实现。现在我没弄清楚两种枚举是怎么实现的?也就是说开发板上EEPROM中写的是什么?(例如0xC4,IFCONFIG,POLAR,等等),加载描述符成功 ...…

查看全部问答>

高手帮忙介绍下嵌入式操作系统wince,uc/os2,linux的比较吗?

我正在学嵌入式,看了好几个嵌入式操作系统,想知道他们的区别和联系,以及主要偏向的应用,麻烦高手帮忙介绍下嵌入式操作系统wince,uc/os2,linux的比较,谢谢!…

查看全部问答>

请问WAVECOM Q2358C的AT指令可以访问WAP页面吗

问题如题,如果可以访问都用什么AT指令呢?…

查看全部问答>

新手求关于智能家居的问题

  我在和老师一起做智能家居的课题,大家认为好不好!有没有什么建议要是有技术支持那更好.小弟在这里先谢了!! 我们初步研究使者样的,通过INTERNET来实现对家电的控制.我们想通过一台电脑上网加载一个制作好的网页,网页存在网络中的服务器 ...…

查看全部问答>

wm5.0 ppc直接连网络上sql server2005不成功,怎么回事?

帮忙很急! 不用RDA 好像要sql2005上做配置, 现在conn.open()连接报登陆失败! 尝试了各种连接串 Standard Security: \"Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;\" - or - \"Server=Aron1;Database=pubs;User ...…

查看全部问答>