This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5529:MSP430F5529 LP DCO 配置

Guru**** 2797575 points

Other Parts Discussed in Thread: MSP430F5529

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/738427/msp430f5529-msp430f5529-lp-dco-configuration

器件型号:MSP430F5529

我尝试按如下方式配置 msp430f5529 (launchpad)

32768Hz --> XT1 --> ACLK

4MHz --> XT2 --> FLL + DCO --> 24MHz --> SMCLK,MCLK

我遇到 DCO 故障,以下是我的代码;

//将 Vcore 设置为3
PMM_setVCore (PMM_CORE_LEVEL_3);

initPorts (); //配置所有 GPIO (输出低电平)

//////////////////////////////////////////////////////////////////// 使用 XT1 32768 Hz ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
P5SEL |= BIT4 + BIT5; //选择 XT1
UCSCTL6 &=~XT1OFF; //启用 XT1
UCSCTL6 |= XCAP_3; //内部负载电容

//////////////////////////////////////////////////////////////////////////// 使用 XT2 4.0 MHz /////////////////////////////////////////////////////////////////////////////////////////////////////////
P5SEL |= BIT2 + BIT3; //选择 XT2

UCSCTL6 &=~XT2OFF; //启用 XT2

__bis_SR_register (SCG0 + SCG1); //禁用 FLL 控制环路

UCSCTL3 |= SELREF_XT2CLK; // FLLref = XT2

UCSCTL0 = 0;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_1 + 5;// DCO= 24MHz、FLLREF= 4MHz (XT2)

__BIC_SR_register (SCG0 + SCG1); //启用 FLL 控制环路

// DCO 范围位已
更改时最坏情况下的稳定时间//为 n x 32 x 32 x f_MCLK /f_FLL_reference。
有关优化、请参阅5xx // UG 中的 UCS 一章。
// 32 x 32 x 24 MHz/4MHz = 6144 = MCLK 周期、以便 DCO 稳定
__delay_cycles (6144);

执行 //循环直到 XT1和 XT2稳定
{
UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG); //清除 XT2、XT1、DCO、FLL 故障标志
SFRIFG1 &=~OFIFG; //清除振荡器故障标志
} while (SFRIFG1 & OFIFG); //测试振荡器故障标志

UCSCTL6 &=~(XT2DRIVE0 + XT2DRIVE1); //减小 XT2驱动,因为它稳定
UCSCTL6 &=~(XT1DRIVE0 + XT1DRIVE1); //减小 XT1驱动、因为它稳定

// UCSCTL4 |= SELA_XT1CLK + SELESS_XT2CLK + SELM_XT2CLK;// ACLK = XT1、MCLK = XT2

UCSCTL4 |= SEL__XT1CLK +_ XCLK = XT1、MCLK = XCLK = XCLK = XCLK;SEL_= XCLK = XCLK = XCLK = XCLK = XCLK = XCLK = XCLK = XCLK = XCLK;SELMCDCO_MCDCOK = XCL