- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSP430 Value Line MCU学习笔记 - 基础时钟模块.doc
MSP430 Value Line MCU学习笔记 - 基础时钟模块
2012-05-16 01:16:12| 分类: 软硬兼施 | 标签: |字号大中小 订阅
1. 关闭看门狗
由于要使用仿真器调试,加断点后MCU被挂起,会导致看门狗被触发而将MCU复位。因此在调试阶段,我们需要先关闭看门狗。关闭看门狗的方法是:
WDTCTL = WDTPW + WDTHOLD;
WDTCTL是一个16位的寄存器,顾名思义,就是看门狗的控制寄存器。WDTHOLD是控制看门狗开关的标志位。给WDTHOLD置位即关闭看门狗。但是这个WDTPW是什么呢?查手册得知WDTPW是看门狗的密码,这是一个宏,被定义为了0x5A00,这个密码是干什么用的呢?原来,WDTCTL寄存器是一个非常特殊的寄存器,为了防止程序异常时意外关闭看门狗,对它进行赋值操作时必须将其新值的高8位设为0x5A这个特定的值,也就是“密码”。如果赋值时新值的高8位不是0x5A,会导致MCU立即被复位。总之,对WDTCTL进行任何修改操作时,都要加上WDTPW的值。
2. 时钟系统
对于玩51单片机的人来说,学习MSP430的时钟系统是很痛苦的,也很颠覆的。MSP430为了做到超低功耗,对时钟系统进行了精妙的设计。网上有文章专门讲解MSP430的时钟系统,还有生动的配图。但遗憾的是这些讲解都多多少少的存在问题甚至是错误的。既然说人家讲得不好,我也就斗胆说说自己的理解。对时钟系统最精确的描述当然就是手册里的框图了:
我不喜欢看这种框图,觉得特别复杂,看起来累。但是静下心来看它时,你会发现其实它并不是那么复杂,很多困惑的问题也就迎刃而解了。唯一需要你了解的背景知识是,你必须要认识啥是多路选择器(Mux)。。。
首先,MSP430的时钟系统有这么几个概念。
时钟源:产生震荡的时钟信号。MSP430中最多有4个时钟源,分别是:DCO(数控晶振),VLO(超低功耗低频晶振),LFXT1(低频外部晶振),XT2(高频外部晶振)。在Value Line产品中,并非支持全部的四种时钟源。以MSP430G2231为例,内置了DCO和VLO,XT1可以自己焊接,XT2不支持。
时钟:供系统设备使用的时钟信号,通常是时钟源的原始信号经过分频后得到。MSP430有3个时钟,分别是:MCLK(主时钟,供CPU核心使用),ACLK(辅助时钟,供外围设备使用),SMCLK(子系统时钟,供外围设备使用)。
每个时钟都可以配置(1)从指定的时钟源获得信号 (2)对信号进行/1/2/4/8分频 (3)时钟开关
上面的框图我们从中间横向的红线分开看,上面一部分是低频时钟,LFXT1Sx这两个标志位用于选择使用哪个时钟源来驱动系统的低频时钟。蓝色的线就是低频时钟源的输出。下面一部分是高频时钟,红色的细线是高频时钟的输出(对没有XT2的芯片来说)。需要注意的是,这条蓝色线接在LFXT1Sx对应的数据选择器的后面。也就是说,系统只能选择一个低频时钟。比如我选择VLO作为ACLK的时钟源,那蓝色那条线上就是VLO的时钟信号。那即使我有外部晶振,也不能选择LFXT1作为MCLK的时钟源。就是这种机制,很多人没有理解清楚(或者没有表达清楚),致使网上的大部分教程都在说,MCLK是从ACLK和DCO中二选一,这样说是不准确的。因为蓝色的线在ACLK的分频器之前,所以并不受ACLK分频设置的影响,因此蓝色线上跑的并不是ACLK时钟信号,而是ACLK的时钟源信号。
更准确的理解是这样的:MCLK仍然是从DCO、VLO、LFXT1和XT2(如果有的话)中四选一,ACLK仍然是从LFXT1和VLO中二选一,SMCLK仍然可以从DCO和XT2(如果有的话)中二选一(如果没有XT2就在DCO、LFXT1、VLO中三选一)。只不过有一个约束,那就是如果MCLK或者SMCLK想要选择VLO或者LFXT1,那就必须跟ACLK选的一样。
在绝大部分Value Line产品中(以MSP430G2231为例),你可以采用更简单的记法:低频时钟源从LFXT1和VLO中选一个,高频时钟源只有DCO一个。因此对系统时钟(MCLK, ACLK, SMCLK)来说,只有2个时钟源,一个低频一个高频。三个系统时钟都可以选择使用低频时钟源(图中蓝线)或者高频时钟源(图中红线)。(2012年7月11日勘误:MCLK和SMCLK可以从低频和高频中选一个,而ACLK只能选择低频)
---------以下内容均以MSP430G2231和MSP430G2553芯片为例,即不存在XT2---------
3. 具体编程,对时钟源和系统时钟的配置和使用
(1)低频时钟源配置——寄存器BCSCTL3 (Basic Clock System Control Register 3)
配置
文档评论(0)