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.

[参考译文] RTOS/MSP432P401R:MSP432P401R 无法启用性能扩展功能

Guru**** 2563960 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/603334/rtos-msp432p401r-msp432p401r-cannot-enable-performance-scaling-feature

器件型号:MSP432P401R

工具/软件:TI-RTOS

您好!

我在 MSP-EXP432P401R LaunchPad 上有一个使用 TI-RTOS 的工作代码、其中包含 SPI 和 UART 驱动程序。 我目前正在尝试在我们最近设计的与 MSP-EXP432P401R 设计类似的另一个电路板上运行此代码。 但是、在使用 CCS 运行时代码被卡住、并且只有在我禁用"enablePerf"(启用性能调节功能)时代码才能运行、然后 SPI 驱动程序无法在8MHz 时正确初始化、因为 SMCLK 为3MHz、低于比特率。 但是、同一代码在 MSP-EXP432P401R 中运行得非常好 。  

是否有人可以告诉我可能导致此问题的原因或硬件/软件错误?

如果您需要更多详细信息、请告诉我。

谢谢、

Nalika。

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

    您好、Nalika、

    您使用的是 PerfLevel? 该文件可在 MSP_EXP432P401R.c 中找到

    *========================================= 电源================================================
    */
    const PowerMSP432_ConfigV1 PowerMSP432_config ={
    policyInitFxn =&PowerMSP432_initPolicy、
    policyFxn =&PowerMSP432_sleepPolicy、
    .initialPerfLevel = 2、
    .enablePolicy = true、
    .enablePerf = true、
    .enableParking = true
    }; 

    默认情况下、我们使用级别2

    *@代码
    *级别 MCLK (MHz) HSMCLK (MHz) SMCLK (MHz) ACLK (Hz)
    *-- ------ ------ ------ ------
    * 0 12. 3. 3. 32768
    * 1 24 6. 6. 32768
    * 2. 48 24 12. 32768
    * 3. 48 48 24 32768
    *@尾码 

    同时、所有这些配置都默认使用直流/直流稳压 器、因此、如果您没有推荐 VSW 和 VCORE 引脚之间的电感器等外部组件、则可能会遇到一些问题。

    禁用 enablePerf 后、器件将使用时钟默认值 LDO 和 DCO @ 3MHz (SMCLK/MCLK 源自 DCO)。 这就是您看到该行为的原因。

    请在您的 MSP_EXP432P401R.c 中添加以下代码

    *========================================= 电源================================================
    */
    #include 
    #include 
    
    PowerMSP432_PerfLevel myPerfLeels[]=
    {
    
    .ActiveState = PCM_AM_LDO_VCORE1、
    .VCORE = 1、
    .clockSource = CS_DCOCLK_SELECT、
    .dCORESEL = CS_DCO_FREQUENCY _48、
    .DIVM = CS_CLOCK 分频器_1、
    DIVHS = CS_clock_divider _2、
    .divs = CS_clock_divider 4、
    .flashWaitStates = 1、
    .enableFlashBuffer = true、
    .MCLK = 48000000、
    .HSMCLK = 24000000、
    .SMCLK = 12000000、
    .ACLK = 32768
    }、
    };
    
    const PowerMSP432_ConfigV1 PowerMSP432_CONFIG ={
    policyInitFxn =&PowerMSP432_initPolicy、
    policyFxn =&PowerMSP432_sleepPolicy、
    .initialPerfLevel = 4、
    .enablePolicy = true、
    .enablePerf = true、
    .enableParking = true、
    .customPerfLeeles= myPerfLeeles,
    .numCustom = sizeof (myPerfLeetels)/ sizeof (PowerMSP432_PerfLevel)
    }; 

    希望这对您有所帮助。

      David

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

    非常感谢您的快速响应。

    您的解决方案使我的代码运行非常顺利。 谢谢。 :-)

    我的硬件存在问题、因为 CPU 由1.8V 电压供电、因此无法使用直流/直流稳压器、因此 VSW 和 VCORE 引脚之间没有电感器、VSW 处于开路状态。
    我想您的解决方案提供了定制的性能水平、它在我的设置中运行良好。

    非常感谢。

    Nalika Dona。