MSP430F5510时钟模块

发布者:bobojrt最新更新时间:2021-05-28 来源: eefocus关键字:MSP430F5510  时钟模块  振荡器 手机看文章 扫描二维码
随时随地手机看文章

简介:好像时钟模块很复杂,其实,我们实际使用的时候比较简单,比如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;

}


关键字:MSP430F5510  时钟模块  振荡器 引用地址:MSP430F5510时钟模块

上一篇:设计基于MSP430单片机的微功耗中文人机界面
下一篇:基于MSP430F149的电力测控保护产品的应用设计

推荐阅读最新更新时间:2024-11-11 13:42

用于光探测和测量的光环形振荡器传感器
环形振荡器广泛地应用在时钟产生和系统定标的集成电路中。芯片制造商经常用新的制造技术制造环形振荡器和测量其振荡频率。这提供了有关数字电路基本构建单元 反向器电路传播延迟时间的直接信息。 简单的环形振荡器由奇数个反向器串联构成,最后级的输出馈入第1级的输入。从反馈通路分接输出并缓冲输出,使其有更好的时钟性能。与谐振和张弛 振荡器不同,环形振荡器可以提供多相时钟波形,每个时钟来自单独反相器的输出而且相邻反相器输出的相位是不同的。环形振荡器所产生的方波频率f为: f=1(2Ntpd) 其中N是环形振荡器链路中的反向器数,tpd是所用反相器的传播延迟。本文所述的光使能环形振荡器可以方便的用于探测光和测量光强非常小的变化。 光环形振荡器电
[测试测量]
Microchip发布全新数字增强型电源模拟控制器
全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商 Microchip Technology Inc.(美国微芯科技公司)日前推出了拥有电流、电压调节及温度监控功能的全新数字增强型电源模拟(DEPA)控制器产品。新器件进一步提升了电池充电方面的数字支持功能,非常适用于服务器、消费电子、工业和汽车应用等领域的DC-DC转换。 MCP19124/5支持各种化学电池的可配置充电算法,并拥有电池平衡和超级电容器充电功能。现在市场上还没有任何一款其它的单芯片电池充电方案能够像此次推出的新产品一样,可以按照所需的充电制度进行配置以为任意化学性能的电池或电压、电池装置充电。借助新器件,用户可以开发和实现自己独一无二的充
[电源管理]
Microchip发布全新数字增强型电源模拟控制器
占空比可调的多谐振荡器
iframe style="POSITION: absolute; TOP: 0px; LEFT: 0px" id=aswift_0 onload="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H ,w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.rep
[模拟电子]
占空比可调的多谐<font color='red'>振荡器</font>
低电压工作的极微功耗锯齿波振荡器
这一锯齿波振荡器电路仅需不到3.2μA的电流,且工作电压低于1V,是很有用的构件,非常符合极低功耗和低电压工作的要求。它可用作一个PWM控制回路、定时器或压控振荡器(VCO)的基础,或用作电容-频率转换器。这一电路的精妙之处在于:它采用漏极开路的比较器输出,做成一只精确的开关电流源;另外,它使用锁存功能,使一个简单比较器成为一个窗口比较器,而无需额外的元件。 这一电路的吸引力还在于它集小巧的外形、极少的外部元件和低供电电流于一身,并能够在电池电压变动时仍然保持恒定的波幅和频率。与传统的运算放大器非稳态多谐振荡器不同,这一设计的比较器阈值设定采用了精密基准电压,而不是运算放大器输出摆幅与电阻反馈的结合。 这种按照比率的固定频
[电源管理]
低电压工作的极微功耗锯齿波<font color='red'>振荡器</font>
10kHz振荡器电路图
10kHz振荡器电路图
[模拟电子]
10kHz<font color='red'>振荡器</font>电路图
ATmega8 低频晶体振荡器
为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置为“1001” 以选择低频晶体振荡器。晶体的连接方式如Figure 11 所示。通过对熔丝位CKOPT 的编 程,用户可以使能XTAL1 和XTAL2 的内部电容,从而去除外部电容。内部电容的标称数 值为36 pF。 选择了这个振荡器之后,启动时间由熔丝位SUT 确定,如Table 6 所示。 Note: 1. 这些选项只能用于启动时的频率稳定性对应用而言不重要的情况。
[单片机]
ATmega8 低频晶体<font color='red'>振荡器</font>
直接耦合离散非稳态多谐振荡器电路
这是一个自由的触发器电路。开关行动的支持通过电容器在每个发射器的电路。发射器产生一个三角形波。这两个晶体管能永久保持关断,然后将会产生自激振荡。C1和C2之间可以放置一个0.1 uF电容。 直接耦合离散非稳态 多谐振荡器电路 :
[电源管理]
直接耦合离散非稳态多谐<font color='red'>振荡器</font>电路
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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