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

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/664455/msp430f5529-msp430f5529

部件号:MSP430F5529

尊敬的本社区的慈善成员:

我有一个MSP430F5529LP,我计划在25MHz或更高频率下使用,所以我尝试了下面的代码,但它导致启动板以24MHz而不是25MHz运行,那么我在这里做了什么? 此外,我的频率高达40MHz,为什么TI不宣传此功能呢? 有人能给我详细解释一下超越宣传的25MHz的含义吗?  

#include "driverlib.h"

void initClocks();

//所需MCLK频率

#define MCLK_FREQ_kHz 2.5万 //25MHz

//板载晶体频率(以Hz为单位)

#define XT1_FREQ 3.2768万
#define XT2_FREQ 400万

//晶体频率以Hz为单位

#define XT1_kHz XT1_kHz XT1_kHz XT1_FREQ/1000
kHz

数控振荡器/XQ_1000 kHz使用的频率(定义XT2/XQ_T频率)
//使用1 MHz (XT2/4)

#define MCLK_FLLREF_Ratio MCLK_FREQ_KHz/(XT2_KHz/4)

UINT32_t MCLK =0;
UINT32_t smclk =0;
UINT32_t aclk =0;

int main(void){

WDT_A_HOLD (WDT_A_BASE);
initClocks();
aclk=ucs_getACLK();
MCLK=UCS_getMCLK();
smclk=ucs_getSMCLK();
P1DIR || BIT0|BIT2|BIT3;//引脚1.2 和1.3
同时(1)
{
P1OUT ^= 0x04;
}
}

作废initClocks(){

//设置核心电源模式

PMM_setVCore (PMM_Core_LEVEL_3);

//为晶体配置引脚

GPIO_setAsPeripheralModuleFunctionInputPin (
GPIO端口_P5,
GPIO_PIN4+GPIO_PIN2
);

GPIO_setAsPeripheralModuleFunctionOutputPin (
GPIO端口_P5,
GPIO _PIN5+GPIO _PIN3
);

//通知系统晶体频率

UCS_setExternalClockSource(.
xt1_FREQ,// XT1频率(以Hz为单位)。
XT2_FREQ // XT2的频率(以Hz为单位)。
);

//初始化晶体

UCS_turnOnXT2(//在以前的driverlib版本中曾是UCS_XT2Start
UCS_XT2_DRIVE_4MHz_8MHZ
);

UCS_turnOnLFXT1 (//以前的driverlib版本中曾是UCS_LFXT1Start
UCS_XT1_DRIVE_0,
UCS_XCAP_3
);

UCS_initClockSignal(.
UCS_FLLREF, //频率锁定回路的参考
UCS_XT2CLK_SELECT,//选择XT2
UCS_Clock_diver_4 // FLL参考将为1 MHz (4MHz XT2/4)
);

//启动FLL并让其稳定下来
//这将自动成为MCLCK和SMCLK

UCS_INITFLLSettle(.
MCLK_FREQ_kHz,
MCLK_FLLREF_Ratio
);

//可选:将SMCLK设置为非全速

UCS_initClockSignal(.
UCS_SMCLK,
UCS_DCOCLKDIV_SELECT,
UCS_CLOCK分隔符_1
);

//设置辅助时钟

UCS_initClockSignal(.
UCS_ACLK,
UCS_XT1CLK_SELECT,
UCS_CLOCK分隔符_1
);
}

附注:我没有编写这段代码,我从这里复制了它:  

提前感谢。

谨致问候

Subhronil Chaudhuri

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

    您好Subhronil,

    Jens-Michael Gross在以下主题中对此主题进行了出色的解释。 此外,我不建议超过最大25MHz DCO频率,因为届时无法保证数据表中提供的规格。

    此致,

    詹姆斯

    MSP客户应用程序

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢James,如果我理解正确的话,我建议使用25MHz及以上的外部晶体吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    是的,您肯定可以使用高达32 MHz的外部晶体来支持XT2。 但是,请记住fSYSTEM (MCLK)不得超过25 MHz (数据表第20页顶部提到)。

    此致,

    詹姆斯

    MSP客户应用程序

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

    Subhronil Chaudhuri 说:
    非常感谢James,如果我理解正确,我建议使用25MHz及以上的外部晶体吗?

    如果我们谈论性能,我看不到使用超过25MHz的XT2值的任何意义,而是将其除以2,以使MCLK / SMCLK包含在数据表规范中。 如果您希望每个数据表的最高性能,请使用25 MHz XT2作为MCLK源。 USB (PLL)可与25 MHz XT2配合使用,但出厂预装的BSL不支持(4,8,12和24 MHz XT2)。

       

    如果您想将其推入数据表规格之外,对于超频,您可以查看此主题...

    https://forum.43oh.com/topic/3906-msp430f5xx-overclocking/

    当我使用基于MSP的逻辑分析器时,我能够以双倍MCLK运行一些设备样本,48 MHz XT2作为MCLK源,启用USB并绕过PLL。

    https://forum.43oh.com/topic/3909-msp430f550x-based-logic-analyzer/

     

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

    此致,

    詹姆斯

    MSP客户应用程序