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.

[参考译文] CCS/MSP430FR5959:在 HFXIN 上使用16MHz 外部方波时出现问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/869559/ccs-msp430fr5959-problem-using-16mhz-external-square-wave-on-hfxin

器件型号:MSP430FR5959

工具/软件:Code Composer Studio

您好!

我可以使用 DCO 设置16MHz 时钟、但如果使用良好的外部方波信号进入 HFXIN、它将无法工作。

如果我使用 CS_BypassHFXT(),则代码会在该点卡住。

如果我使用 CS_BypassHFXTWithTimeout (10)、则它返回成功、但频率为默认的4.8MHz。

感谢您的任何见解。

Elwood

------------

int main (空)

const bool InternalClock = false;

WDTCTL = WDTPW | WDTHOLD;//停止 WDT

GPIO_setOutputLowOnPin (
GPIO_PORT_P3、
GPIO_PIN4
);

GPIO_setPeripheralModuleFunctionOutputPin (//在 P3.4上输出 MCLK
GPIO_PORT_P3、
GPIO_PIN4、
GPIO_ternary_module_function
);

P1DIR |= 0x01;//将 P1.0设置为输出方向

PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置


使用16MHz 时、//必须将等待状态设置为1
FRAMCTL_configureWaitStateControl (FRAMCTL_ACCESS_TIME_CYCESS_1);

if (InternalClock)//内部时钟
{CS_setDCOFreq (CS_DCORSEL_1、CS_DCOFSEL_4);//(CS_DCOFSEL_3 = 8MHz、4 = 16MHz)设置数字控制振荡器(内部振荡器)
CS_clockSignalInit (CS_MCLK、CS_DCOCLK_select、CS_clock_divider);//将 MCLK 设置为16MHz (1分频)
CS_clockSignalInit (CS_SMCLK、CS_DCOCLK_select、CS_clock_divider);//将 SMCLK 设置为16MHz (1分频)

else //外部时钟

cs_setExternalClockSource (0、16000000);//设置外部 LF 时钟、HF 时钟频率
if (CS_BypassHFXTWithTimeout (10)= STATUS_SUCCESS)//绕过内部振荡器
{CS_clockSignalInit (CS_MCLK、CS_HFXTCLK_select、CS_clock_divider _1);//将 MCLK 设置为16MHz (1分频)//用于外部时钟
CS_clockSignalInit (CS_SMCLK、CS_HFXTCLK_select、CS_clock_divider);//将 SMCLK 设置为16MHz (1分频)//用于外部时钟

其他
{P1OUT = 0x01;//时钟失败
while (1);

ClockValueMCLK = CS_getMCLK ();
ClockValueSMCLK = CS_getSMCLK ();

for (;;){
volatile unsigned long int i;// volatile 以阻止优化

P1OUT ^= 0x01;//使用异或切换 P1.0

I = 100000;// SW 延迟
我----
while (i!= 0);

返回0;

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

    您好、Elwood

    请参阅此演示代码 http://dev.ti.com/tirex/explore/node?node=AMCh66k8Fvv6RQmIfS1w5g__IOGqZri__LATEST

    本演示使用 LFXT 模式、HFXT 模式与之类似。

    此致

    Gary

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

    谢谢、

    愚蠢地、我没有为主要功能声明 HFXIN 引脚。

    GPIO_setPeripheralModuleFunctionInputPin (// PJ.6上的输入用于外部时钟信号
    GPIO_PORT_PJ、
    GPIO_PIN6、
    GPIO_PRIMARY_MODULE_FUNCTION
    );

x 出现错误。请重试或与管理员联系。