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.

[参考译文] MSP430FR6043:设置以16MHz 运行的 MSP430FR6043

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1381852/msp430fr6043-setup-msp430fr6043-running-at-16mhz

器件型号:MSP430FR6043

工具与软件:

大家好、我尝试让 FR6043以16MHz 模式运行。  

我已下载示例"cs_ex2_d307" 16MHz。 通过读取代码、我假设16MHz 将从引脚 P3.4输出。 但是、当我探测它时、这个引脚没有任何输出。  

另外、我必须注释掉等待插入行(下面以黄色突出显示的行)、否则会显示类似这样的错误消息。

谢谢!

文立

#include "driverlib.h"

uint32_t clockValue;

void main (void)

//停止 WDT
WDT_A_HOLD (WDT_A_BASE);
//将 DCO 频率设置为16MHz
CS_setDCOFreq (CS_DCORSEL_1、CS_DCOFSEL_4);

CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_CLOCK_DIVIDER_1);
CS_initClockSignal (CS_MCLK、CS_DCOCLK_SELECT、CS_CLOCK_DIVIDER_1);

//将等待状态设置为1
//FRAMCTL_configureWaitStateControl (FRAMCTL_ACCESS_TIME_CYCLES_1);

//将 P2.0设置为输出低电平(设置为 ACLK)。
/*

*选择端口2
*将引脚0设置为输出低电平。
*/
GPIO_setOutputLowOnPin (
GPIO_PORT_P3、
GPIO_PIN4
);

//将 P2.0设置为三元模块功能输出。
/*

*选择端口2
*将引脚0设置为输出三元模块功能(ACLK)。
*/
GPIO_setAsPeripheralModuleFunctionOutputPin (
GPIO_PORT_P3、
GPIO_PIN4、
GPIO_ternary_module_function
);

/*
*禁用 GPIO 上电默认高阻抗模式以激活
*先前配置的端口设置
*/
PMM_UNlockLPM5 ();

while (1);

}

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

    对于 FRAM 器件、正确的顺序是在通过8MHz 增加时钟之前设置等待状态。

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

    > GPIO_setAsPeripheralModuleFunctionOutputPin (GPIO_PORT_P3、GPIO_PIN4、GPIO_ternary_module_function);

    根据数据表(SLASEF5B)表9-36、SMCLK 输出为 PSEL=01、因此这一值应该是如此

    > GPIO_setAsPeripheralModuleFunctionOutputPin (GPIO_PORT_P3、GPIO_PIN4、GPIO_PRIMARY_MODULE_FUNCTION);

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

    您好、Wen。

    我想下面的示例给出了将 DCO 设置为16MHz 的寄存器级代码。 您可以检查它是否能与您的硬件板配合使用。

    msp430fr6043_cs_02.c (TI.com)

    顺便说一下、我想您使用 LaunchPad 来做实验。 也许您应该检查是否需要断开原理图中的某些跳线。

    B.R.

    SAL

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

    感谢您抓住这个问题、我认为此代码适用于 FR5969、但已发布在 FR6053下方。 总之、该方法解决了 p3.4多路复用器问题。 我可以看到来自 P3.4的时钟输出。 我的主要问题是如何在它以16 MHz 运行时设置等待状态。  

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

    感谢您的答复。  

    我可以编译并运行上述代码、确实时钟以16MHz 的频率运行。 我可以通过探测 P3.4来看到。 但我必须注释掉这条黄线(见上文)。  

    我的主要问题是如何 在 FRAM 以16 MHz 运行时插入等待状态。 示例代码在编译期间显示错误、这就是我必须注释掉黄线的原因。 然而、黄线意味着插入一个等待状态。 如何使黄线代码正常工作? 你们可以尝试在你们的计算机上编译这些代码吗?

    是的、我正在使用 EVM。

    谢谢。此致

    文立    

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

    这是对驱动程序库的调用、因此您应该查看其文档。 我从不使用这些东西。

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

    我怀疑它可能看起来像:

    > FRAMCTL_A_configureWaitStateControl (FRAMCTL_A_ACCESS_TIME_CYCLES_1);

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

    尊敬的 Wen:

    因此、我假设你错过了 David 描述的某个库。

    请检查您的包含路径以及是否正确。

    B.R.

    SAL

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

    我会毫不犹豫地不同意 SAL、但 FR6043具有 FRAMCTL_A (与 FR5969上的 FRAMCTL 相比)、因此 API 不同。

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

    Bruce、您好!

    是的、回答正确、FR6043具有 FRAMCTL_A 而不是 FRAMCTL。

    尊敬的 Wen:

    请查看 Bruce 提供的建议。 如果也不起作用、请重新检查您的包含路径。 该库也显示在上一屏幕快照中。

    B.R.

    SAL

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

    不请自来:我很确定

    >   FRCTL0 = FRCTLPW | NWAITS_1;// 1 FRAM wait state  

    适用于其中一个(以及 FR2系列)。