历史上的今天
返回首页

历史上的今天

今天是:2025年04月28日(星期一)

正在发生

2020年04月28日 | MSP430G2553的时钟设置简析

2020-04-28 来源:eefocus


基本时钟系统的寄存器

DCOCTL-DCO控制寄存器




DCOx

DCO频率选择控制1

MODx

DCO频率校正选择,通常令MODx=0




注意:在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1.5MHz之间。

BCSCTL1-基本时钟控制寄存器1



XT2OFF

不用管,因为MSP430G2553内部没有XT2提供的HF时钟

XTS

不用管,默认复位后的0值即可

DIVAx

设置ACLK的分频数

00 /1

01 /2

10 /4

11 /8

RSELx

DCO频率选择控制2


BCSCTL2-基本时钟控制寄存器2



SELMx

MCLK的选择控制位

00 DCOCLK

01 DCOCLK

10 LFXT1CLK或者VLOCLK

11 LFXT1CLK或者VLOCLK

DIVMx

设置MCLK的分频数

00 /1

01 /2

10 /4

11 /8

SELS

SMCLK的选择控制位

0 DCOCLK

1 LFXT1CLK或者VLOCLK

DIVSx

设置SMCLK的分频数

00 /1

01 /2

10 /4

11 /8

DCOR

DCO直流发生电阻选择,此位一般设0

0 内部电阻

1 外部电阻


BCSCTL3-基本时钟控制寄存器3



XT2Sx

不用管


LFXT1Sx

00 LFXT1选为32.768KHz晶振

01 保留

10 VLOCLK

11 外部数字时钟源

XCAPx

LFXT1晶振谐振电容选择

00 1pF

01 6pF

10 10pF

11 12.5pF


msp430g2553.h中基本时钟系统的内容

/************************************************************

* Basic Clock Module

************************************************************/

#define __MSP430_HAS_BC2__/* Definition to show that Module is available */


SFR_8BIT(DCOCTL); /* DCO Clock Frequency Control */

SFR_8BIT(BCSCTL1); /* Basic Clock System Control 1 */

SFR_8BIT(BCSCTL2); /* Basic Clock System Control 2 */

SFR_8BIT(BCSCTL3); /* Basic Clock System Control 3 */


#define MOD0 (0x01)/* Modulation Bit 0 */

#define MOD1(0x02)/* Modulation Bit 1 */

#define MOD2(0x04)/* Modulation Bit 2 */

#define MOD3(0x08)/* Modulation Bit 3 */

#define MOD4(0x10)/* Modulation Bit 4 */

#define DCO0(0x20)/* DCO Select Bit 0 */

#define DCO1(0x40)/* DCO Select Bit 1 */

#define DCO2(0x80) /* DCOSelect Bit 2 */


#define RSEL0(0x01)/* Range Select Bit 0 */

#define RSEL1(0x02)/* Range Select Bit 1 */

#define RSEL2(0x04)/* Range Select Bit 2 */

#define RSEL3 (0x08)/* Range Select Bit 3 */

#define DIVA0(0x10)/* ACLK Divider 0 */

#define DIVA1(0x20)/* ACLK Divider 1 */

#define XTS(0x40)/* LFXTCLK 0:Low Freq. / 1: High Freq. */

#define XT2OFF(0x80)/* Enable XT2CLK */


#define DIVA_0(0x00)/* ACLK Divider 0: /1 */

#define DIVA_1(0x10)/* ACLK Divider 1: /2 */

#define DIVA_2 (0x20)/* ACLK Divider 2: /4 */

#define DIVA_3(0x30)/* ACLK Divider 3: /8 */


#define DIVS0(0x02)/* SMCLK Divider 0 */

#define DIVS1(0x04)/* SMCLK Divider 1 */

#define SELS(0x08)/* SMCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */

#define DIVM0(0x10)/* MCLK Divider 0 */

#define DIVM1(0x20)/* MCLK Divider 1 */

#define SELM0 (0x40)/* MCLK Source Select 0 */

#define SELM1(0x80)/* MCLK Source Select 1 */


#define DIVS_0(0x00)/* SMCLK Divider 0: /1 */

#define DIVS_1(0x02)/* SMCLK Divider 1: /2 */

#define DIVS_2(0x04)/* SMCLK Divider 2: /4 */

#define DIVS_3(0x06)/* SMCLK Divider 3: /8 */


#define DIVM_0(0x00)/* MCLK Divider 0: /1 */

#define DIVM_1(0x10)/* MCLK Divider 1: /2 */

#define DIVM_2(0x20)/* MCLK Divider 2: /4 */

#define DIVM_3(0x30)/* MCLK Divider 3: /8 */


#define SELM_0(0x00)/* MCLK Source Select 0: DCOCLK */

#define SELM_1(0x40)/* MCLK Source Select 1: DCOCLK */

#define SELM_2(0x80)/* MCLK Source Select 2: XT2CLK/LFXTCLK */

#define SELM_3(0xC0)/* MCLK Source Select 3: LFXTCLK */


#define LFXT1OF(0x01)/* Low/high Frequency Oscillator Fault Flag */

#define XT2OF(0x02)/* High frequency oscillator 2 fault flag */

#define XCAP0(0x04)/* XIN/XOUT Cap 0 */

#define XCAP1(0x08)/* XIN/XOUT Cap 1 */

#define LFXT1S0(0x10)/* Mode 0 for LFXT1 (XTS = 0) */

#define LFXT1S1(0x20)/* Mode 1 for LFXT1 (XTS = 0) */

#define XT2S0(0x40)/* Mode 0 for XT2 */

#define XT2S1(0x80)/* Mode 1 for XT2 */


#define XCAP_0(0x00)/* XIN/XOUT Cap : 0 pF */

#define XCAP_1(0x04)/* XIN/XOUT Cap : 6 pF */

#define XCAP_2(0x08)/* XIN/XOUT Cap : 10 pF */

#define XCAP_3(0x0C)/* XIN/XOUT Cap : 12.5 pF */


#define LFXT1S_0(0x00)/* Mode 0 for LFXT1 : Normaloperation */

#define LFXT1S_1 (0x10)/* Mode 1 for LFXT1 : Reserved */

#define LFXT1S_2(0x20)/* Mode 2 for LFXT1 : VLO */

#define LFXT1S_3(0x30)/* Mode 3 for LFXT1 : Digital input signal */


#define XT2S_0(0x00)/* Mode 0 for XT2 : 0.4 - 1 MHz */

#define XT2S_1(0x40)/* Mode 1 for XT2 : 1 - 4 MHz */

#define XT2S_2(0x80)/* Mode 2 for XT2 : 2 - 16 MHz */

#define XT2S_3(0xC0)/* Mode 3 for XT2 : Digital input signal */


基本时钟系统例程(DCO)

MSP430G2553在上电之后默认CPU执行程序的时钟MCLK来自于DCO时钟。TI提供的Launch Pad上,P1.0和P1.6分别接了红色和绿色的LED灯,下面写一个程序让它们交替闪烁;之后我们来改变DCO的频率,进而使软延时时间变化,可以看到LED闪烁间隔有变化。

#include "msp430g2553.h"

void main(void)

{

WDTCTL = WDTPW + WDTHOLD;

P1DIR |= BIT0 + BIT6;

while(1)

{

P1OUT ^= BIT0 + BIT6;

__delay_cycles(100000);

}

}

这段程序采用430上电后默认的DCO频率,假设是1MHz的话,则延时100000个DCO提供的MCLK大概是0.1s左右。

下面一段程序,将DCOx设置为1,RSELx设置为1,通过数据手册查得DCO频率大概在0.06~0.14MHz之间,所以明显MCLK要慢得多了,因此LED闪烁时间延长。




#include "msp430g2553.h"

void main(void)

{

WDTCTL = WDTPW + WDTHOLD;

DCOCTL |= DCO0;

DCOCTL &=~(DCO1 + DCO2);

BCSCTL1 |= RSEL0;

BCSCTL1 &=~ (RSEL1 + RSEL2 + RSEL3);

P1DIR |= BIT0 + BIT6;

while(1)

{

P1OUT ^= BIT0 + BIT6;

__delay_cycles(100000);

}

}

推荐阅读

史海拾趣

Alpha 3 Manufacturing公司的发展小趣事

Alpha 3 Manufacturing公司成立于XXXX年,初期面临着资金短缺、市场竞争激烈以及技术瓶颈等多重挑战。然而,创始人凭借对电子行业的深刻理解和敏锐的市场洞察力,看到了电子产品制造领域的巨大潜力。他带领团队攻克技术难关,开发出了一款具有创新性的电子产品,迅速获得了市场的认可,为公司的起步奠定了坚实的基础。

德力康(DLK)公司的发展小趣事

DLK公司一直将技术创新作为企业发展的核心驱动力。公司拥有一支高素质的研发团队,不断投入大量资金进行技术研发和产品创新。通过引进先进的生产设备和技术,结合自主研发,DLK公司成功开发出了一系列具有自主知识产权的连接器产品。这些产品不仅具有更高的性能和更稳定的品质,而且能够满足不同客户的个性化需求。技术创新使DLK公司在激烈的市场竞争中保持了领先地位。

Electro-Mech Components Inc公司的发展小趣事

在1966年,Electro-Mech Components, Inc. (EMC)做出了一个重要的战略决策——在墨西哥北下加利福尼亚州的蒂华纳开设一家制造工厂。这个决定标志着EMC正式进军国际市场,并开始了其在全球范围内的业务布局。蒂华纳工厂的建立为EMC带来了更低的制造成本和更广阔的市场前景。随着工厂规模的逐渐扩大,EMC的产品线也日益丰富,从最初的发光按钮开关逐渐扩展到指示灯和多开关互锁组件等多个领域。

GeneSiC公司的发展小趣事

EMC一直致力于技术研发和创新能力的提升。公司拥有一支专业的研发团队,不断投入资金和人力进行新产品的研发和技术创新。通过不断的努力,EMC在电气元件领域取得了多项专利和技术成果,其产品质量和技术水平在行业中处于领先地位。同时,EMC还积极参与行业标准的制定和推广工作,为推动整个行业的发展做出了积极贡献。

Carroll & Meynell Transformers Ltd公司的发展小趣事

随着国内市场的饱和,Carroll & Meynell Transformers Ltd公司开始将目光投向国际市场。公司积极参与国际电子行业的交流与合作,学习借鉴国际先进经验和技术。同时,公司还加大了对海外市场的拓展力度,通过参加国际展览、建立海外销售网络等方式,将产品推向全球。这一国际化战略不仅为公司带来了更广阔的市场空间,也提升了公司的国际影响力。

AC Interface Inc公司的发展小趣事

随着全球环保意识的增强,ABC Electronics Inc. 敏锐地捕捉到了绿色电子产品的市场潜力。公司开始研发和生产符合环保标准的产品,如低能耗的LED照明产品、可循环利用的电池等。同时,公司还优化了生产工艺,减少了生产过程中的环境污染。这些环保举措不仅赢得了消费者的青睐,也提升了公司的社会形象。

问答坊 | AI 解惑

国产芯片CH451

该芯片可用键盘扫描和数码管的点亮等,可方便节省单片机的资源…

查看全部问答>

求!vs2005,C#蓝牙通信程序~~~

小女子研究蓝牙通讯很久了 可是无任何紧张 现求C# 蓝牙通信程序,开发环境是vs2005 希望各位大侠帮帮忙~~小女子下辈子愿意给大侠做牛做马~~~…

查看全部问答>

求WINCE下压缩解压(RAR,ZIP等)C++库

在WINCE下,可以解压RAR,ZIP,压缩文件夹和文件,请问大家有没有什么DLL可以调用实现?谢谢了…

查看全部问答>

关于wince UI 问题??高手指点

各位高手: 我最近要做一个案子,需要有比较漂亮的UI界面,用在PDA上. 要求:1.对话框或窗体的底色可以显示一副图片 2.在该窗体上显示的按键也是图形的,并且是圆脚的,当有点击时按键还会变亮等.请问各位如何实现??请指教/…

查看全部问答>

pocket pc 应用程序如何移植到smartphone

有一个在 VS.NET 2003 中已完成的pocket pc手机终端项目,往客户的手机上安装时发现,他们有一部分人买的是 smartphone 这种不支持手写功能的手机,傻眼了!各位高手请帮帮忙 !提供一些解决方案吧 谢谢了!!在线等…

查看全部问答>

主动式传感器在汽车领域应用将越来越广

主动式传感器在汽车领域应用将越来越广  汽车性能的提升以及汽车市场的蓬勃发展,推动了汽车传感器的快速增长。被动式传感器在某些应用上已难以满足高精度要求,主动式传感器应用将越来越广。  随着汽车性能的提升以及中国汽车市场的 ...…

查看全部问答>

I2C读取问题

作主I2C使用,工作模式如下 下载 (5.76 KB) 2010-3-22 11:22 从从I2C读取一个字节,用示波器发现每次读的是两个字节 下载 (20.61 KB) 2010-3-22 11:22 程序使用的是等待模式,把程序也贴上 ...…

查看全部问答>

上次问题还未解决,现把程序全部删除了,只

剩下几个函数了,但是现歇象依然,程序如下:我只要注释掉// GPIO_WriteHigh(GPIO_V5_CON , V5_CON);  语句,主函数中delay(7)延时就增加19%左右, 真是郁闷,望高人指点.. 附项目工程 void     InitPort(void) { ...…

查看全部问答>

ZIGBEE芯片的新选择A7153资料下载

A7153是一个2.4GHZ扩频收发器;去年由AMMICOM公司推出; 由于内置ZIGEBEE RF4CE协议栈;并且已经通过ZIGBEE认证;…

查看全部问答>

STM32F107的ADC使用外部电压基准问题

小弟想使用STM32F107的ADC采集4~20MA信号,Vref-与VSSA相连接电源地,Vref+接一只LM336电压基准,通电后336的ADJ输出脚悬空情况下测量电压是2.43V,这个电压应该符合要求2.4V ≤ VREF+ ≤ VDDA,可是当我把该脚接至Vref+时电压就变0了。 以前使用C ...…

查看全部问答>