MSP430的时钟问题一直是模模糊糊,老是忘记,于是决定写下此文帮助记忆,以下内容均参考网络资料,仅供参考。(MSP430X1XX系列)
该MSP430系列单片机时钟源有3种,分别为:
1.LFXT1CLK:低频/高频时钟源, 可外接晶体振荡器,由于单片机内部集成可供选择的电容,则无需外接两个振荡电容器。较常使用的晶振为32768HZ,可选晶振范围450KHZ-8MHZ。(工作在高频模式下时,需外接振荡电容)
2.XT2CLK:高频时钟源,可外接晶体振荡器,需外接连个振荡电容器。较常使用的晶振为8MHZ,可选晶振范围450KHZ-8MHZ。
3.DCOCLK:数字可控制的RC振荡器,约800KHZ,它的频率随供电电压和温度变化而具有一定的不稳定性。MSP430可以通过操作控制寄存器软件调节来增强振荡频率的稳定性。 当LFXT1和XT2失效时,DCO振荡器会自动被选作MCLK的时钟源。振荡器失效引起的NMI中断请求可以得到响应,甚至在CPU关闭的情况下也可以。
该系列单片机提供3个时钟输出,分别为:
1.ACLK(Auxiliary clolck):辅助时钟,由LFXT1CLK信号经1、2、4、8分频后得到。ACLK可由软件选做各外围模块的时钟信号,一般用于低速外围模块。
2.MCLK(Main clock):主时钟,由软件选择来自LFXT1CLK、XT2CLK、DCOCLK,然后经过1、2、4、8分频得到。MCLK主要用于CPU和系统。
3.SMCLK(Sub-Main clock):子系统时钟,可由软件选择来自LFXT1CLK和DCOCLK(对于MXP430X11X和MSP430X12X)或者XT2CLK和DCOCLK然后经过1、2、4、8分频得到。SMCLK主要用于高速外围模块。
时钟初始化例程:
PUC信号后DCOCLK被自动选作MCLK时钟信号,根据需要MCLK的时钟源可以另外设置为LFXT1或者XT2.顺序如下:
a)复位OSCOFF
b)清除OFIFG
c)延时等待至少50us
d)再检查OFIFG,如果置位,则重复3,4步,直到OFIFG=0
void Initial_Crystal(void)
{
unsigned char i;
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BCSCTL1 &= ~(XT2OFF + XTS);//使能XT2,LPXT1选择低频
BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;//主时钟选择XT2,子系统时钟选择XT2
do
{
IFG1&=~OFIFG;
for(i=0xff;i>0;i--);
}
while((IFG1&OFIFG)!=0);
}
关键字:MSP430 时钟系统
引用地址:
MSP430的时钟系统问题
推荐阅读最新更新时间:2024-11-08 15:54
ucos2移植到msp430过程中出现的问题
1、main.c和其他文件无法链接。 所有的文件要在一个文件夹中。 2、ostimedly()函数 延时函数。延时期间,本任务被挂起,CPU执行其他就绪的优先级最高的任务。当延时满后,加入就绪任务队列,调度判断优先级最高的任务执行。 3、osstart()函数 任务开始,之前创建的任务均为就绪状态,调度判断优先级高的任务执行。 4、os_event osmboxcreate()等邮箱函数编译的时候显示undefined。 cpu_cfg.h中的so_mbox_en 的值修改为1,使能邮箱。 5、邮箱无法用 邮箱要先创建,才能用 eg. os_event * commbox; commbox=osmboxcreat
[单片机]
MSP430之枚举变量大小
一直都很好奇枚举变量到底是如何让占用存储空间的,网上好多文章都说是占用int字节的大小,但是今天测试了一下,发现不是那么回事。 操作系统:WIN7 64bit IDE:IAR 5.5 实验平台: MP430F4793 先说结论: 实际使用发现枚举变量的大小并不是固定不变的,而是跟随成员的取值范围而变化, 并且枚举变量为2个字节(正好是MSP430字节对齐的大小)时,存储占用反而变小。 下面是编译后的结果: 初始情况: 成员取值范围UINT8足以满足,所以是一个字节; 另外,增加成员并不会改变编译结果 给最后一个成员赋值65535: 此时,成员的取值范至少需要两个字节才能存储,所以可以看到枚举变量的大
[单片机]
MSP430F5529使用库函数后如何编写中断函数
代码 #include driverlib.h void main (void) { //Stop watchdog timer WDT_A_hold(WDT_A_BASE); //Set P1.0 to output direction GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 ); //Enable P1.4 internal resistance as pull-Up resistance GPIO_setAsInputPinWithPullUpResistor( GPIO_PORT_P1, GPIO_
[单片机]
基于MSP430FE42x的防窃电电能表及其应用分析
当前,电子式电能表的防窃电技术在电能表行业中的地位越来越重要,不同国家、地区的电能表市场都在不同程度上要求电能表的防窃电计量。人们所意识到的窃电现象和防窃电技术的类型在不断增多,而且每年都会针对新的窃电行为,研究出相应的防窃电技术。 在传统的电子式电能表设计中,由于以下几点原因,导致它们不能较完善的检测或处理窃电行为:仅使用进线端的电压和火线的进出端所流经的电流作为电能计量的依据;绝大多数没有使用很可靠的铅封;一些窃电方式很容易操作,但是很难检测。 MSP430FE42x系列单片机是美国德州仪器公司新推出的单相防窃电多功能电能表专用芯片,它是德州仪器MSP430系列产品的成员,是一款超低功耗的16位单片机。MSP430FE42
[工业控制]
MSP430液晶LCD048
概述 TI公司MSP430系列单片机是一种超低功耗的混合信号控制器,其中包括一系列器件,它们针对不用的应用由不同的模块组成。其中FLASH系列使高效电子系统变得轻巧,FLASH存储器也具有很强的灵活性。同时为了在低频率振荡器的驱动下得到较高的稳定频率,某些MSP430器件上使用了锁频技术FLL或增强型锁频环技术FLL+。如MSP430F425的时钟模块中使用了FLL+技术,这样可以得到稳定的频率。 液晶驱动 MSP430器件上的液晶显示器的控制/驱动将简化液晶显示器的显示。不同型号的液晶驱动能力不同,我们采用 MSP430的F42X系列,有128段驱动能力。 液晶的驱动有4种方法:静态,2MUX或1/2占空比,3MUX或
[单片机]
基于MSP430内嵌温度传感器的温度告警系统
1. 系统的总体方案 MSP430微控制器MCU(Micro Controller Unit)是TI公司推出的一款具有丰富片上外围的强大功能的超低功耗16位混合信号处理器。其中包括一系列的器件,可以应用在不同的场合。MSP430与MCS-51的一个显著不同就是它在片内集成了模数转换(ADC)模块,使得A/D转换得以容易的实现。其中在MSP430的13x、14x、43x、44x系列器件中,都有内嵌的温度传感器。它的输出送入ADC12模块的通道10,然后对其进行A/D转换,进而可以测量芯片内的温度。在本告警系统中就是采用这个温度传感器的输出来实现温度的实时告警。 图1 基于MSP430F449内嵌温度传感器的温度告警系统
[单片机]
基于MSP430的心电数字无线遥测系统
无线遥测产品的市场发展迅速,最近业界也掀起了一场无线应用的革命,无线遥测技术已经成为产品竞争力的一个重要因素。从发展的角度来看,医疗监护产品的无线化、网络化是发展趋势,移动型、具备无线联网功能的监护产品将成为未来市场的主流,另外,telemedicine(远程医疗)的发展也将使无线监护与无线互联技术大有用武之地。无线应用的前景广阔,因此研制开发无线监护产品势在必行。 在该系统中使用了ti公司的单片无线发送芯片trf4400和接收芯片trf6900。该芯片功耗低,抗干扰能力强,且使用ism频段,频率无需申请.可广泛应用于无线数据采集系统、无线监控系统、收费系统、智能卡、设备遥控等场合,应用前景十分广泛。 1.系统结
[单片机]
模数转换器ADS112C04
#define ADD_ADS112C04_write 0x80 #define ADD_ADS112C04_read 0x81 #define START 0x08 #define POWERDOWN 0x02 #define RDATA 0x10 #define RESET 0x06 #define WREG_0 0x40 #define WREG_1 0x44 #define WREG_2 0x48 #define WREG_3 0x4c #define RREG_0 0x20 #define RREG_1 0x24 #define RREG_2 0x28 #define RREG_3 0x2c
[单片机]