历史上的今天
返回首页

历史上的今天

今天是:2025年05月28日(星期三)

正在发生

2021年05月28日 | MSP430F5510时钟模块

2021-05-28 来源:eefocus

简介:好像时钟模块很复杂,其实,我们实际使用的时候比较简单,比如XT1外接一个32.768K晶振,XT2外接一个12M晶振,然后ACLK=XT1,MCLK=SMCLK=XT2,就好了,这里说的,主要是说说DCO,和内部自己震荡源,比较特殊,一般不怎么用,除非你没有任何外接晶振,只能使用内部的振荡器。


我给出一张截图,需要注意的我都标在上面了,图片需要放大观看的。







下面是TI提供的一个例程,我不多说,简单说几句。


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

// MSP430F550x Demo - Software Toggle P1.1 with 12MHz DCO

//

// Description: Toggle P1.1 by xor'ing P1.1 inside of a software loop.

// ACLK is rought out on pin P1.0, SMCLK is brought out on P2.2, and MCLK

// is brought out on pin P4.7.

// ACLK = REFO = 32kHz, MCLK = SMCLK = 12MHz

//

// MSP430F550x

// -----------------

// /|| |

// | | P1.0|-->ACLK

// --|RST P4.7|-->MCLK

// | P2.2|-->SMCLK

// | |

// | P1.1|-->Port Pin

//

// D. Archbold

// Texas Instruments Inc.

// April 2009

// Built with CCSv4 and IAR Embedded Workbench Version: 4.21

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

#include


void SetVcoreUp (unsigned int level);


void main(void)

{

volatile unsigned int i;


WDTCTL = WDTPW+WDTHOLD;// Stop WDT


PMAPPWD = 0x02D52;// Enable Write-access to modify port mapping registers

P4MAP7 = PM_MCLK;

PMAPPWD = 0;// Disable Write-Access to modify port mapping registers


P1DIR |= BIT1; // P1.1 output


P1DIR |= BIT0; // ACLK set out to pins

P1SEL |= BIT0;

P2DIR |= BIT2; // SMCLK set out to pins

P2SEL |= BIT2;

P4SEL |= BIT7;

P4DIR |= BIT7; // MCLK set out to pins


UCSCTL3 |= SELREF_2; // Set DCO FLL reference = REFO

UCSCTL4 |= SELA_2; // Set ACLK = REFO


// Increase Vcore setting to level1 to support fsystem=12MHz

// NOTE: Change core voltage one level at a time..

SetVcoreUp (0x01);


// Initialize DCO to 12MHz

__bis_SR_register(SCG0); // Disable the FLL control loop

UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx

UCSCTL1 = DCORSEL_5; // Select DCO range 24MHz operation

UCSCTL2 = FLLD_1 + 374; // Set DCO Multiplier for 12MHz

// (N + 1) * FLLRef = Fdco

// (374 + 1) * 32768 = 12MHz


对照图片上面的公式,应该很清楚了。因为FLLD_1就是上面的D,它是1,所以就给省略了。

// Set FLL Div = fDCOCLK/2

__bic_SR_register(SCG0); // Enable the FLL control loop


// Worst-case settling time for the DCO when the DCO range bits have been

// changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx

// UG for optimization.

// 32 x 32 x 12 MHz / 32,768 Hz = 375000 = MCLK cycles for DCO to settle

__delay_cycles(375000);这段话在MSP430F5510datasheet里面有说明的,自己可以找一下。


// Loop until XT1,XT2 & DCO fault flag is cleared

do

{

UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);

// Clear XT2,XT1,DCO fault flags

SFRIFG1 &= ~OFIFG; // Clear fault flags

}while (SFRIFG1&OFIFG); // Test oscillator fault flag


while(1)

{

P1OUT ^= BIT1; // Toggle P1.0

__delay_cycles(600000); // Delay

}

}


void SetVcoreUp (unsigned int level)

{

// Open PMM registers for write

PMMCTL0_H = PMMPW_H;

// Set SVS/SVM high side new level

SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;

// Set SVM low side to new level

SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;

// Wait till SVM is settled

while ((PMMIFG & SVSMLDLYIFG) == 0);

// Clear already set flags

PMMIFG &= ~(SVMLVLRIFG + SVMLIFG);

// Set VCore to new level

PMMCTL0_L = PMMCOREV0 * level;

// Wait till new level reached

if ((PMMIFG & SVMLIFG))

while ((PMMIFG & SVMLVLRIFG) == 0);

// Set SVS/SVM low side to new level

SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;

// Lock PMM registers for write access

PMMCTL0_H = 0x00;

}


推荐阅读

史海拾趣

AK-Nord_GmbH公司的发展小趣事

随着技术的成熟,AK-Nord_GmbH开始积极拓展市场。公司首先在欧洲地区建立了稳固的销售网络,并逐步向亚洲和北美市场扩张。在市场拓展的过程中,AK-Nord_GmbH积极与各大电子厂商建立合作伙伴关系,共同推出了一系列创新产品。这些合作伙伴关系不仅帮助公司打开了新的市场,还提升了其品牌影响力和市场份额。

Genesys Logic公司的发展小趣事

90年代初期,“General Microcircuits”敏锐地捕捉到市场对定制化半导体解决方案的需求增长。公司迅速调整战略,成立专门的定制化服务部门,为客户提供从需求分析、设计开发到生产测试的全流程定制化服务。这种以客户为中心的服务模式赢得了众多客户的青睐,尤其是在通信、汽车电子等高端应用领域,公司凭借定制化的高性能芯片解决方案占据了重要的市场份额。

E-CMOS(飞虹高科)公司的发展小趣事

在电子行业的激烈竞争中,飞虹高科(E-CMOS)公司于XXXX年正式成立,专注于CMOS(互补金属氧化物半导体)技术的研发。初创时期,公司面临着资金短缺、技术壁垒和市场竞争等多重挑战。然而,公司创始人凭借对技术的深刻理解和敏锐的市场洞察力,成功获得了一笔风险投资,并招募了一支技术实力雄厚的研发团队。通过不懈努力,公司成功开发出了一款具有竞争力的CMOS图像传感器产品,开始在市场上崭露头角。

EPSON公司的发展小趣事

EPSON公司,原名精工爱普生,成立于1942年,最初以制造手表起家。然而,随着技术的不断进步和市场需求的变化,EPSON逐渐将业务扩展到电子领域。在创始人及其团队的带领下,EPSON凭借其卓越的技术创新能力,成功研发出了一系列具有划时代意义的电子产品,如世界上第一台微型打印机和喷墨打印机,奠定了其在电子行业的领先地位。

EOZ S.A.S公司的发展小趣事

EOZ S.A.S公司非常重视企业文化和团队建设。公司倡导“创新、协作、共赢”的价值观,鼓励员工积极参与创新活动并分享创新成果。同时,公司还注重员工的培训和发展,为员工提供丰富的培训资源和晋升机会。这些举措不仅激发了员工的积极性和创造力,也为企业的发展提供了有力的人才保障。在EOZ S.A.S公司的发展历程中,优秀的企业文化和团队成为公司最宝贵的财富之一。

EF Johnson Technologies Inc公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。EF Johnson公司深知这一点,始终将研发作为公司发展的核心驱动力。公司不断加大对研发的投入,积极引进高端人才,并与高校和研究机构建立紧密的合作关系。这些举措让EF Johnson在技术上始终保持领先地位,不断推出具有竞争力的新产品和解决方案。

问答坊 | AI 解惑

宝马与奔驰的展会PK(1)

2008新馆内,奔驰与宝马位置面对面,都可谓气势磅礴,奔驰携带34款新车出现在会场,阶梯式的排列两层。围观的、试驾的、拍照的拥挤不堪,当碰到一些问题想去咨询时,销售都一直忙着洽谈卖车的事情了,满头汗水,根本顾不上回答。奔驰的Smart系列吸 ...…

查看全部问答>

C程序 哪位帮看看该怎么改

#include   sbit led1=P0^0;   sbit led2=P0^1;   sbit led3=P0^2;   sbit led4=P2^7;   sbit sound=P2^6;   sbit scl=P3^7;   sbit sda=P3^6;    &nbs ...…

查看全部问答>

按键扫描程序取密码的问题

for循环取6次Key_scan()的返回值 for(i=0;i…

查看全部问答>

DSP2407 TBLW指令写不了FLASH

DSP2407 TBLW指令写不了FLASH,求救 我的代码这样写的 LDP  #6h SPLK #02D8h, 0 LACC #157h TBLW 0 执行完之后没反应,但用TBLR倒是可以读出来的,我用开发板是可以写进去的,不知道什么原因啊…

查看全部问答>

推荐开发板

有没有好的开发板给介绍下(500块左右),硬件全且要新点 资料要全,用来学习linux方面的 有用过的最好?…

查看全部问答>

关于Verilog的一个问题

小弟是初学者,刚刚学习Verilog不久, 想请问一道题目:如何用verilog 编写 频率可以控制的信号发生器(正弦或预先) 麻烦专家给出详细且具体的解答,万分感谢!!…

查看全部问答>

牛人是需要拿出来晒&来膜拜的~

  《植物大战僵尸》的移植版本一直层出不穷,这版《植物大战僵尸》牛的是用了数万行JS代码纯手写的,而且背后作者还是辣妈……   试想,可能我们周围还有很多像她这样的人:他们低调的活跃在网页开发或网页设计领域,他们身怀绝技却不为人所知 ...…

查看全部问答>

无线通信模块 nrf2401(软件)

#include \"main.h\"extern uchar initdata[15];extern uchar txdata[32];uchar temp,bytecnt1,bitcnt,bitcnt1,tempi;//**************************延时********************void delay500ns(void){    _NOP();}//********************** ...…

查看全部问答>

如何验证精密电阻是否真的如标的那样 千分之一甚至万分之五

本帖最后由 辛昕 于 2014-2-16 01:49 编辑 想了想,这个问题其实可以简化为 1.一个精密电流源; 2.一个精密电阻; 3.一个精密AD 再精密的东西都存在一定的误差范围。 那么,我该如何处理最后的结果 并评价其中 精密电阻 的 精度是否达标呢 ...…

查看全部问答>

“学模拟+《运算放大器噪声优化手册》04 示波器测量噪声

本帖最后由 dontium 于 2015-1-23 11:46 编辑 示波器可以使操作者观察到时域的噪声波形,大部分不同类型的噪声具有截然不同的波形,可根据波形来判定是何种类型的噪声主导。 模拟示波器的一个缺点就是不能捕获低频噪声(1/f) 数字示波器可以捕 ...…

查看全部问答>