3271|6

38

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于MSP430G2553的程序运行频率及时钟问题 [复制链接]

void ConfigClocks(void)
{
         if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)                                       
            FaultRoutine();                                    // If calibration data is erased
                                                                // run FaultRoutine()
          BCSCTL1 = CALBC1_1MHZ;                         // Set range
          DCOCTL = CALDCO_1MHZ;                          // Set DCO step + modulation
          BCSCTL3 |= LFXT1S_2;                          // LFXT1 = VLO
          IFG1 &= ~OFIFG;                               // Clear OSCFault flag
          BCSCTL2 = 0;                                               // MCLK = DCO = SMCLK        
}


(1)我想问的是,时钟模块这样配置,main函数的运行频率怎么看?和MCLK的一样吗?
(2)如果时钟如下配置方式呢?
BCSCTL1 &=~ XTS;                              //LFXT1选择低频模式
  BCSCTL3 |= LFXT1S_2+XCAP_2;         //低频时钟源选择VLOCLK,振荡           器的电容选择10pF
  BCSCTL2 |=SELM_3+DIVM_1;         //主系统时钟选择VLOCLK,进行           2分频
     //  上述程序的主要功能是选择12KHz的VLOCLK作为主系统时钟的时钟源,并进行2分频,所以系统的时钟为6KHz。

辅助时钟ACLK该如何配置?难道不用配置吗?这种情况下,main函数运行的频率又是多少呢?




最新回复

272页: 基本时钟模块+ 可提供的三种时钟信号: • ACLK:辅助时钟。 ACLK 是由软件选择来作为 LFXT1CLK 或 VLOCLK。 ACLK经 1,2,4,8 分频后 得到。ACLK 可由软件选作各个外围模块。 • MCLK:主机时钟。 MCLK 由软件选择作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或 DCOCLK。 MCLK 由 1,2,4,8 分频得到。MCLK 用于 CPU 和系统。 • SMCLK:系统子时钟。 SMCLK 由软件选作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或 DCOCLK。 SMCLK 由 1,2,4,8 分频得到。SMCLK 可由软件选作各个外围模块。 你问的main函数运行的频率是指CPU运行频率,也就是MCLK:主机时钟。 273页的图已经相当清晰了,ACLK、MCLK和SMCLK分别有哪些来源,如何分频,该配置哪些寄存器都有体现。 CPU的时钟就是MCLK,ACLK是辅助时钟,一般提供给片上外设使用。 举个例子,让你对这几个时钟的概念有进一步的理解: 我给定时器TimerA1使用的时钟源是ACLK,由32768晶振经过8分频得到,那么我的ACLK就是4096Hz。 在进入TimerA1的时候,对ACLK再8分频,那么TimerA1的时钟频率就是512Hz。 然后将TimerA1的CCR0设置成256-1=255,那么TimerA1的中断周期就是2Hz,也就是每0.5s产生一个中断。 如此一来我的CPU频率还是DCO提供的8Mhz,当我完成CPU工作之后,可以进入LPM3模式,这时候CPU、DCO全部停止工作,只有ACLK还在工作。 外设TimerA1继续保持每0.5s产生一次中断,在中断服务程序中,将CPU唤醒继续执行之前的任务,通过这样的方式来降低功耗。 那么这个过程中,你说我的main函数的频率是8M也不合适,说32768Hz、2Hz等都不合适。 DCO频率:8MHz MCLK频率:8MHz LFXT频率:32768Hz ACLK频率:4096Hz TimerA1时钟频率:512Hz TimerA1中断频率:2Hz SMCLK频率:不关心 上面这个例子是真实存在的,可以下载下面这个链接的Transfer.zip查看。 在代码中,发送端每0.5s唤醒一次,通过NRF24L01发送出一帧数据。 https://bbs.eeworld.com.cn/thread-474891-1-1.html   详情 回复 发表于 2015-10-31 20:19
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

推荐
 
272页:

基本时钟模块+ 可提供的三种时钟信号:
• ACLK:辅助时钟。 ACLK 是由软件选择来作为 LFXT1CLK 或 VLOCLK。 ACLK经 1,2,4,8 分频后
得到。ACLK 可由软件选作各个外围模块。
• MCLK:主机时钟。 MCLK 由软件选择作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或
DCOCLK。 MCLK 由 1,2,4,8 分频得到。MCLK 用于 CPU 和系统。
• SMCLK:系统子时钟。 SMCLK 由软件选作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或
DCOCLK。 SMCLK 由 1,2,4,8 分频得到。SMCLK 可由软件选作各个外围模块。

你问的main函数运行的频率是指CPU运行频率,也就是MCLK:主机时钟
273页的图已经相当清晰了,ACLK、MCLK和SMCLK分别有哪些来源,如何分频,该配置哪些寄存器都有体现。
CPU的时钟就是MCLK,ACLK是辅助时钟,一般提供给片上外设使用。

举个例子,让你对这几个时钟的概念有进一步的理解:
我给定时器TimerA1使用的时钟源是ACLK,由32768晶振经过8分频得到,那么我的ACLK就是4096Hz。
在进入TimerA1的时候,对ACLK再8分频,那么TimerA1的时钟频率就是512Hz。
然后将TimerA1的CCR0设置成256-1=255,那么TimerA1的中断周期就是2Hz,也就是每0.5s产生一个中断。

如此一来我的CPU频率还是DCO提供的8Mhz,当我完成CPU工作之后,可以进入LPM3模式,这时候CPU、DCO全部停止工作,只有ACLK还在工作。

外设TimerA1继续保持每0.5s产生一次中断,在中断服务程序中,将CPU唤醒继续执行之前的任务,通过这样的方式来降低功耗。


那么这个过程中,你说我的main函数的频率是8M也不合适,说32768Hz、2Hz等都不合适。

DCO频率:8MHz
MCLK频率:8MHz
LFXT频率:32768Hz
ACLK频率:4096Hz
TimerA1时钟频率:512Hz
TimerA1中断频率:2Hz
SMCLK频率:不关心


上面这个例子是真实存在的,可以下载下面这个链接的Transfer.zip查看。
在代码中,发送端每0.5s唤醒一次,通过NRF24L01发送出一帧数据。
https://bbs.eeworld.com.cn/thread-474891-1-1.html

点评

你的回答是在太完美了,非常感谢!太有帮助了!  详情 回复 发表于 2015-11-2 20:35
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
查看详情

271-284页

特别需要留意273页的框图和281-284页的寄存器配置信息

点评

看过好几遍啦,可是没看明白,尤其在程序运行时如何体现上述问题。  详情 回复 发表于 2015-10-30 17:37
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
本帖最后由 小小一书生 于 2015-10-30 14:38 编辑

没有设置应该就是默认值,可以在寄存器的初值那看到。MCLK主时钟主要是用于MCU。

点评

MCLK,SMCK均可以在寄存器中看到,可是ACLK呢?  详情 回复 发表于 2015-10-30 17:36
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

4
 
小小一书生 发表于 2015-10-30 14:34
没有设置应该就是默认值,可以在寄存器的初值那看到。MCLK主时钟主要是用于MCU。

MCLK,SMCK均可以在寄存器中看到,可是ACLK呢?
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

5
 
qiushenghua 发表于 2015-10-30 12:03
http://www.ti.com/cn/lit/pdf/zhcu032

271-284页

特别需要留意273页的框图和281-284页的寄存器配置 ...

看过好几遍啦,可是没看明白,尤其在程序运行时如何体现上述问题。
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

7
 
qiushenghua 发表于 2015-10-31 20:19
272页:

基本时钟模块+ 可提供的三种时钟信号:
• ACLK:辅助时钟。 ACLK 是由软件选择来作为 LF ...

你的回答是在太完美了,非常感谢!太有帮助了!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表