MSP430F5418学习笔记----UCS时钟模块配置
刚刚才把F5418的UCS模块调通,特此庆祝一番~~
动手之前,首先要阅读TI提供的430x54x Family User Guide(slau208d)和MIXED SIGNAL MICROCONTROLLER,了解一下这种全新的芯片的时钟模块的框图,有个整体把握:
下面是我翻译的MIXED SIGNAL MICROCONTROLLER第18页对UCS的介绍(觉得翻译不好可别拍砖哦):
@振荡器和系统时钟 (MIXED SIGNAL MICROCONTROLLER, P18)
在MSP430x5xx家族的器件中,时钟系统由统一时钟系统Unified Clock System(UCS)模块提供,它包含了一个32KHz钟表石英晶体(XT1 LF Mode),一个内部低功率,低频率震荡器(VLO),一个内部平衡的低频震荡器(REFO),一个集成的内部数字可控震荡器(DCO),和一个高频石英晶体振荡器(XT1 HF模式或XT2).这个UCS模块的设计符合了系统对低成本和低功耗的要求,它包含数字锁频环(FLL),通过连接一个数字的调制器,使DCO频率稳定成一个可编程倍数的钟表石英晶体频率.其内部DCO提供了一个快速开启的时钟源,并能够在低于5us内稳定.
统一时钟系统模块提供了如下时钟信号:
·Auxiliary辅助时钟(ACLK),可由32KHz钟表晶体,高频晶体,内部低频振荡器(VLO),平衡的低频振荡器(REFO)或内部数字控制振荡器(DCO)提供.
·Main系统时钟(MCLK),供CPU使用,信号提供与ACLK相同.
·Sub-Main系统子时钟(SMCLK),供外设模块使用,信号提供与ACLK相同.
·ACLK/n,由ACLK分频后缓冲输出,分频系数可为1,2,4,8,16,32.
当你不做任何时钟配置时,你仍然可以像使用普通单片机一样正常使用它,那么它是时钟默认是怎么配置的呢?这时候你就得了解USC模块的默认配置了,这部分在430x54x Family User Guide中第64页有讲解。我的翻译:
@Unified Clock System(UCS)操作---430x54x Family User Guide slau208d,P64
在上电清除信号(PUC)之后,UCS模块的默认配置是:
·XT1 低频模式被选择为XT1CLK时钟的振荡器。XT1CLK被选择为ACLK的时钟源。
·DCOCLKdiv作为MCLK的时钟源。
·DCOCLKdiv作为SMCLK的时钟源。
·FLL(锁频环)运行被使能,XT1CLK作为FLL参考时钟,即FLLREFCLK。
·XIN和XOUT引脚被设置为通用IO时,XT1保持禁能直到IO口置为XT1操作模式。
·如果XT2IN和XT2OUT引脚被设置为通用IO,XT2被禁能。
在初始状态,FLL以XT1为参考时钟的运行默认使能,但XT1被禁止。要使能XT1,相应管脚的PSEL位必须置位。当一个32.768KHz的晶振用作XT1CLK时,出错的控制逻辑电路直接造成REFOCLK作为ACLK的时钟源,因为XT1不会立即稳定。一旦振荡开始信号被获取到了,FLL就使MCLK和SMCLK稳定到1.048576MHz,f(DCO)=2.097152MHz。
状态寄存器控制位(SCG0,SCG1,OSCOFF和CPUOFF)配置MSP430的运行模式,还使能或禁能UCS模块的部分功能(参考系统复位,中断,运行模式等章节)。寄存器UCSCTL0到UCSCTL8配置UCS模块。
废话别太多,下面直接看程序:
如果想将MCLK、SMCLK的时钟源设为外部高速晶振(我接的是16MHz),在初始化时加入以下程序段
//使用XT2振荡器
P5SEL |= BIT2 + BIT3;//配置管脚为晶振输入
UCSCTL6 &= ~XT2OFF; //打开XT2振荡器
do
{
UCSCTL7 &= ~(XT2OFFG; //清除振荡器XT2失效标志
SFRIFG1 &= ~OFIFG; // 清除振荡器失效标志
//上面这句必须有,否则起振了也不会分配成功
}
while (UCSCTL7 & XT2OFFG); //判断XT2是否起振
UCSCTL6 &= ~XT2DRIVE0;//设置驱动电流最小以降低功耗
UCSCTL4 |= SELM__XT2CLK + SELS__XT2CLK; //选择MCLK、SMCLK为XT2
//UCSCTL5 |= divS__2;//SMCLK设为2分频
如果想让外部的XT1,XT2和内部DCO同时使用,并从端口输出以便于测试,连接图示意(参考ti例程)
// MSP430F5418
// -----------------
// /| | XIN|-
// | | | 32kHz
// ---|RST XOUT|-
// | |
// | |
// | XT2IN|-
// | | HF XTAL or Resonator (add capacitors)
// | XT2OUT|-
// | |
// | P1.0|--> ACLK = 32kHz Crystal Out
// | |
// | P1.6|--> SMCLK = High Freq Xtal or Resonator Out
// | |
// | P2.0|--> MCLK = Default DCO Frw
MSP430F541UCS时钟模块配 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)