5324|14

7219

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

【课后练习】课后练习三之DCO [复制链接]

1.  基本时钟系统概述

2.1时钟源概述

基本时钟模块包括 3个时钟输入源:

[1] LFXT1CLK

默认工作在低频模式(32.768kHz)手表晶振,也可以通过外接450kHz8MHz的高速晶体振荡器或谐振器工作在高频模式。

[2] XT2CLK

可选择的高频振荡器,可以通过标准的晶体振荡器、谐振器或外接 450kHz8MHz的时钟源工作。

[3] DCOCLK

内部数控RC 振荡器。

 

2.2 时钟信号概述

通过这些基本的时钟模块,我们可以得到3个有用的时钟信号:

[1] ACLK辅助时钟(Auxillary Clock

ACLKLFXT1CLK时钟源经1248分频后得到的。

ACLK可由软件选择作为各个外围模块的时钟信号,一般用于低速外设。

[2] MCLK主系统时钟(Main System Clock

MCLK可由软件选择来自LFXT1CLKXT2CLKDCOCLK三者之一,然后经 1248分频。

MCLK通常用于 CPU运行,程序的执行和其他使用到高速时钟的模块。

[3] SMCLK子系统时钟(Sub System Clock

SMCLK可由软件选择来自XT2CLKDCOCLK,然后经 12 48分频。

SMCLK通常用于高速外围模块。

 

1.3     

2.     

最新回复

ABT
在调试F149时发现内部默认的DCO为697K,不通过外接电阻,我们有没有办法将DCO调到800k,请楼主解答一下  详情 回复 发表于 2012-7-18 10:28
 
点赞 关注(1)

回复
举报

7219

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 

1.3    时钟源

[1]低速晶体震荡器(LFXT1)

手表晶振(32.768kHz)经过XINXOUT引脚直接连接到单片机,不需要其他外部器件(内部有12PF的负载电容)

[3] 数控震荡器

单片机的XT2振荡器产生的时钟信号可以经过 1248分频后当作系统主时钟 MCLK当振荡器失效时,DCO振荡器会被自动选为MCLK的时钟源。

DCO 振荡器的频率可由软件对 DCOxMODx RSELx 位的设置来调整。当 DCOCLK 信号没有用作SMCLKMCLK时钟信号时,可以用控制位 SCG0禁止直流发生器。

PUC 信号之后,DCOCLK 被自动选作 MCLK 时钟信号,根据需要,MCLK 的时钟源可以另外设置为LFXT1或者XT2。设置顺序如下:

(1)OSCOFF=1

(2)OFIFG=0

(3)延时等待至少50us

(4)再次检查 OFIFG,如果OFIFG=1,重复(3)(4)步骤,直到 OFIFG0为止。

 

2.      因为我么有焊接上晶振,所以采用数控震荡器DCO

 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

板凳
 

1.  应用

(1)设置1Mhz8Mhz观察闪烁灯闪烁的频率

//1Mhz

  BCSCTL1 = CALBC1_1MHZ;                    // Set range

  DCOCTL = CALDCO_1MHZ;                     // Set DCO step + modulation */

 

 //8Mhz

  BCSCTL1 = CALBC1_8MHZ;                    // Set range

  DCOCTL = CALDCO_8MHZ;                     // Set DCO step + modulation */

经过实际测试,的确8Mhz时闪烁的约1Mhz8倍。

注意;MSPG2231只有1Mhz,我用的是G2452

 
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

4
 
  1. #include <msp430g2452.h>

    void main(void)
    {
    WDTCTL=WDTPW+WDTHOLD;
    P1DIR|=BIT6;
    P1DIR|=BIT0;

    if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
    {
    while(1); // If calibration constants erased
    // do not load, trap CPU!!
    }
    //1Mhz
    BCSCTL1 = CALBC1_1MHZ; // Set range
    DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */

    //8Mhz
    //BCSCTL1 = CALBC1_8MHZ; // Set range
    //DCOCTL = CALDCO_8MHZ; // Set DCO step + modulation */

    /* //12Mhz
    BCSCTL1 = CALBC1_12MHZ; // Set range
    DCOCTL = CALDCO_12MHZ; // Set DCO step + modulation*/

    /* //16Mhz
    BCSCTL1 = CALBC1_16MHZ; // Set range
    DCOCTL = CALDCO_16MHZ; // Set DCO step + modulation*/

    P1DIR |= 0x13; // P1.0,1 and P1.4 outputs
    P1SEL |= 0x11; // P1.0,4 ACLK, SMCLK output

    while(1)
    {
    unsigned int i;
    P1OUT=BIT6;
    i = 60000;
    while(i--);
    P1OUT|=BIT0;
    i = 60000;
    while(i--);
    P1OUT =0x01;
    i = 60000;
    while(i--);
    P1OUT =0x00;
    i = 60000;
    while(i--);
    }
    }
复制代码

点评

i = 60000; while(i--); P1OUT|=BIT0; //////////////////////// i = 60000; while(i--); P1OUT =0x01; 上面两个句子不是一样的意思吗?分别有什么意思啊~大神求解·~~  详情 回复 发表于 2012-7-7 15:53
 
 
 

回复

6040

帖子

196

TA的资源

版主

5
 
嗯,不错不错,时钟这块很详细了。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

6
 

CALBC1_1MHZ的配置在哪个头文件可以找到

BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */
这些时钟的配置都在哪个头文件里?在#include《2553.h》里没有啊

点评

谢谢,共同努力啊! 不过我没找到里面有啊  详情 回复 发表于 2012-7-7 21:34
谢谢,共同努力啊!  详情 回复 发表于 2012-7-7 21:27
共同学习。最近我也在看DCO,这些定义在intrinsics.h里  详情 回复 发表于 2012-7-7 21:16
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(中级)

7
 
子曰:学而不厌诲人不倦。
好好学习。。。。。
 
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

8
 
共同学习 共同进步 哈哈
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 4楼 常见泽1 的帖子

i = 60000;
while(i--);
P1OUT|=BIT0;
////////////////////////
i = 60000;
while(i--);
P1OUT =0x01;
上面两个句子不是一样的意思吗?分别有什么意思啊~大神求解·~~

点评

没有什么特殊含义啦 自己当时乱写的 P1OUT|=BIT0; 在bit0亮的时候不影响其他口 P1OUT =0x01; 只有Bit0亮  详情 回复 发表于 2012-7-7 18:37
 
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

10
 

回复 9楼 mrm827915 的帖子

没有什么特殊含义啦
自己当时乱写的
P1OUT|=BIT0; 在bit0亮的时候不影响其他口
P1OUT =0x01; 只有Bit0亮
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 6楼 tang_jun_001 的帖子

共同学习。最近我也在看DCO,这些定义在intrinsics.h里
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

12
 

回复 6楼 tang_jun_001 的帖子

谢谢,共同努力啊!
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

13
 

回复 6楼 tang_jun_001 的帖子

谢谢,共同努力啊!
不过我没找到里面有啊
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

14
 
楼主好人
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

15
 
在调试F149时发现内部默认的DCO为697K,不通过外接电阻,我们有没有办法将DCO调到800k,请楼主解答一下
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表