6234|13

16

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【请教】G2231的DCO能否设置成8M or 16M [复制链接]

在例程中看到
  BCSCTL1 = CALBC1_1MHZ;                    // Set range
  DCOCTL = CALDCO_1MHZ;

可投文件中为何没有
  CALBC1_8MHZ & CALDCO_8MHZ?  

还请教如何设置~

[ 本帖最后由 mavericklx 于 2011-10-16 13:13 编辑 ]

最新回复

很不错 学习了  详情 回复 发表于 2011-11-4 13:47
 
点赞 关注

回复
举报

139

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
可以,看用户手册,时钟这块。我不在电脑帮边,手机回复
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 xylq0826 的帖子

可否 给个例子··?
我看了一下午还是很迷惑
没调出来。。。。
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(高级)

4
 
G2**1的只有1MHz的DCO频率有校正(在flash A段里面),其他频率得手动校正。
至于如何矫正,可看MSP430x2xx Family User's Guide (SLAU144H page 279)以及SLAS694C 的23页附近的一些说明,设置寄存器即可。多看看手册,很多东西(应该是所有东西)里面都有
 
 
 

回复

158

帖子

0

TA的资源

纯净的硅(初级)

5
 
给个取巧的办法~其他型号的头文件里面有~~~
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 4楼 TrueElement 的帖子

多谢!!我去找找~~
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

7
 

回复 楼主 mavericklx 的帖子

 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

8
 
#include "msp430x20x1.h"

#define DELTA_1MHZ    244                   // 244 x 4096Hz = 999.4Hz
#define DELTA_8MHZ    1953                  // 1953 x 4096Hz = 7.99MHz
#define DELTA_12MHZ   2930                  // 2930 x 4096Hz = 12.00MHz
#define DELTA_16MHZ   3906                  // 3906 x 4096Hz = 15.99MHz

unsigned char CAL_DATA[8];               
volatile unsigned int i;
int j;
char *Flash_ptrA;                         
void Set_DCO(unsigned int Delta);

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;               
  for (i = 0; i < 0xfffe; i++);          
  P1OUT = 0x00;                          
  P1SEL = 0x10;                     
  P1DIR = 0x11;                           

  j = 0;                                

  Set_DCO(DELTA_16MHZ);                
  CAL_DATA[j++] = DCOCTL;
  CAL_DATA[j++] = BCSCTL1;

  Set_DCO(DELTA_12MHZ);                     
  CAL_DATA[j++] = DCOCTL;
  CAL_DATA[j++] = BCSCTL1;

  Set_DCO(DELTA_8MHZ);                 
  CAL_DATA[j++] = DCOCTL;
  CAL_DATA[j++] = BCSCTL1;

  Set_DCO(DELTA_1MHZ);                    
  CAL_DATA[j++] = DCOCTL;
  CAL_DATA[j++] = BCSCTL1;

  Flash_ptrA = (char *)0x10C0;            
  FCTL2 = FWKEY + FSSEL0 + FN1;         
  FCTL1 = FWKEY + ERASE;                 
  FCTL3 = FWKEY + LOCKA;               
  *Flash_ptrA = 0x00;                    
  FCTL1 = FWKEY + WRT;                   
  Flash_ptrA = (char *)0x10F8;            
  for (j = 0; j < 8; j++)
    *Flash_ptrA++ = CAL_DATA[j];            // re-flash DCO calibration data
  FCTL1 = FWKEY;                            // Clear WRT bit
  FCTL3 = FWKEY + LOCKA + LOCK;             // Set LOCK & LOCKA bit

  while (1)
  {
    P1OUT ^= 0x01;                       
    for (i = 0; i < 0x4000; i++);           
  }
}

void Set_DCO(unsigned int Delta)            
{
  unsigned int Compare, Oldcapture = 0;

  BCSCTL1 |= DIVA_3;                    
  TACCTL0 = CM_1 + CCIS_1 + CAP;          
  TACTL = TASSEL_2 + MC_2 + TACLR;         

  while (1)
  {
    while (!(CCIFG & TACCTL0));           
    TACCTL0 &= ~CCIFG;                   
    Compare = TACCR0;                      
    Compare = Compare - Oldcapture;        
    Oldcapture = TACCR0;                  

    if (Delta == Compare)
      break;                                
    else if (Delta < Compare)
    {
      DCOCTL--;                        
      if (DCOCTL == 0xFF)                
        if (BCSCTL1 & 0x0f)
          BCSCTL1--;                   
    }
    else
    {
      DCOCTL++;                          
      if (DCOCTL == 0x00)                  
        if ((BCSCTL1 & 0x0f) != 0x0f)
          BCSCTL1++;                      
    }
  }
  TACCTL0 = 0;                          
  TACTL = 0;                             
  BCSCTL1 &= ~DIVA_3;                 
}

全部代码。

赞赏

1

查看全部赞赏

 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

9
 

回复 5楼 error_dan 的帖子

这样是不行的  信息段里面没有 怎么能够呢
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 9楼 lyzhangxiang 的帖子

(⊙o⊙)…
遇到高手了··
可还是不怎么明白,详细询问下
知道答案了定当分享给大家。
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 8楼 lyzhangxiang 的帖子

采用8楼的手法,运行了自写flash的程序后,修改头文件,8M DCO的 MClok运行成功~
感谢lyzhangxiang !
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

12
 
mark
 
 
 

回复

419

帖子

0

TA的资源

一粒金砂(高级)

13
 
你在P2.6、P2.7脚上接个32768的晶振,用8楼的程序跑一下就都校准好了。在你的程序里声明下8MHz的值就可以了啊!
 
 
 

回复

7230

帖子

195

TA的资源

五彩晶圆(高级)

14
 
很不错 学习了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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