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.

[参考译文] MSP432P401R:如何在TI-RTOS中将MSP432P401时钟修改为HFTCLK,将Chagne模式修改为AM_LDO_VCORE1

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/631956/msp432p401r-how-to-modify-msp432p401-clock-to-hftclk-and-chagne-mode-to-am_ldo_vcore1-in-ti-rtos

部件号:MSP432P401R

你好,冠军,

我在MSP432Power.c中发现,TI-RTOS驱动程序设置MSP432默认使用内部DCDC和使用DCO输出48MHz MCLK。 现在,我的客户想要将其更改为AM_LDO_VCORE1和HFTCLK模式,那么如何操作? 是否只更改"PowerMSP432_perfleles"数组中的值?

#define NUMPERFLEVELS 5.
PowerMSP432_PerfLevel PowerMSP432_perfleveles[NUMPERFLEVELS]={
{.ActiveState = AM_DCDC_VCORE0,
.VCORE = 0,
.clockSource = CS_DCOCLK_SELECT,
.DCORESEL = CS_DCO_Frequency_12,
.DIVM = CS_Clock_diver_1,
.DIVHS = CS_CLOCK分隔符_4,
.divs = CS_Clock_diver_4,
.flashWaitStates = 0,
.enableFlashBuffer = false,
.MCLK = 1200万,
.HSMCLK = 300万,
.SMCLK = 300万,
.ACLK = 3.2768万
},
{.ActiveState = AM_DCDC_VCORE0,
.VCORE = 0,
.clockSource = CS_DCOCLK_SELECT,
.DCORESEL = CS_DCO_Frequency_24,
.DIVM = CS_Clock_diver_1,
.DIVHS = CS_CLOCK分隔符_4,
.divs = CS_Clock_diver_4,
.flashWaitStates = 1,
.enableFlashBuffer =真,
.MCLK = 2400万,
.HSMCLK = 600万,
.SMCLK = 600万,
.ACLK = 3.2768万
},
{.ActiveState = AM_DCC_VCORE1,
.VCORE = 1,
.clockSource = CS_DCOCLK_SELECT,
.DCORESEL = CS_DCO_Frequency_48,
.DIVM = CS_Clock_diver_1,
.DIVHS = CS_CLOCK分隔符_2,
.divs = CS_Clock_diver_4,
.flashWaitStates = 1,
.enableFlashBuffer =真,
.MCLK = 4800万,
.HSMCLK = 2400万,
.SMCLK = 1200万,
.ACLK = 3.2768万
},
{.ActiveState = AM_DCC_VCORE1,
.VCORE = 1,
.clockSource = CS_DCOCLK_SELECT,
.DCORESEL = CS_DCO_Frequency_48,
.DIVM = CS_Clock_diver_1,
.DIVHS = CS_CLOCK分隔符_1,
.divs = CS_Clock_diver_2,
.flashWaitStates = 1,
.enableFlashBuffer =真,
.MCLK = 4800万,
.HSMCLK = 4800万,
.SMCLK = 2400万,
.ACLK = 3.2768万
},
{.ActiveState = AM_LDO_VCORE1,
.VCORE = 1,
.clockSource = CS_HFXTCLK_SELECT,
.DCORESEL = CS_DCO_Frequency_48,
.DIVM = CS_Clock_diver_1,
.DIVHS = CS_CLOCK分隔符_1,
.divs = CS_Clock_diver_2,
.flashWaitStates = 1,
.enableFlashBuffer =真,
.MCLK = 4800万,
.HSMCLK = 4800万,
.SMCLK = 2400万,
.ACLK = 3.2768万
},
};

谢谢

巴西

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

    是否有任何更新?

    这对我的客户来说是一个非常紧迫的问题。

    谢谢!

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

    您好,Joe,

     无需修改PowerMSP432.c. 自定义性能级别可在主板文件"MSP_EXP432P401R.c"中定义。 这在 以下部分中说明

    另请看 另一个示例

    话虽如此,目前唯一受支持的时钟源是DCO (希望下一个SDK版本将支持HFXT),因此,在此期间,您必须使用driverlib调用,例如:

    /* for usleep()*/
    #include <unistd.h>
    #include <stddef.h>/*
    
    
    Driver Header files */
    #include <ti/drivers/spi.h>//
    #include <ti/drivers/iph.h>//包括<ti/drivers/idsph/undlib/#dleb
    驱动程序
    /#include <lib/sph/spool/fu/fu/fu/b>
    
    
    
    
    
    
    
    
    
    
    
    /*
    ========= gpioButtonFxn0 =========
    *用于BOARD_GPIO _BUTTON0上GPIO中断的回调函数。
    */
    void gpioButtonFxn0(uint_least8_t x)
    {
    UINT32_t delayDebouncy;
    
    GPIO禁用Int (BOD_GPIO _BUTTON0);
    
    /*在DCO和HFXT之间切换*/
    IF (使用HFXT)
    {
    MAP_CS_INITClockSignal (CS_MCLK,CS_HFXTCLK_SELECT,CS_CLock_diverer_4);
    useHFXT =假;
    }
    否则
    {
    MAP_CS_INITClockSignal (CS_MCLK,CS_DCOCLK_SELECT,CS_CLock_diver_1);
    useHFXT =真;
    }
    
    /*开关反跳延迟*/
    对于(delayDebounce = 0;delayDebounce < 2万;delayDebouncy++)
    ;
    GPIO_clearInt (BOD_GPIO _BUTTON0);
    gPIO_enableInt(BOD_gPIO_BUTTON0);
    }/*
    
    
    ==== mainThread =========
    */
    void *mainThread (void *arg0)
    {
    易失性UINT32_t等待时间;
    
    /*调用驱动程序初始化函数*/
    GPIO初始化();
    // I2C_INIT();
    // sdspi_init();
    // spi_init();
    // UART_INIT();
    // Watchdog初始化();
    
    /*设置外部中断S1 */
    GPIO _setCallback (BOD_GPIO _BUTTON0,gpioButtonFxn0);
    gPIO_enableInt (BOD_gPIO_BUTTON0);
    
    /*打开用户LED */
    GPIO写入(Board_GPIO _LED0,Board_GPIO _LED_ON);
    
    而(1){
    对于(WaitTime =10万;WaitTime >0;WaitTime--);
    GPIO切换(Board_GPIO _LED0);
    }
    }
    

    此示例在按下S1时在DCO和HFXT之间切换,如果您有其他问题,请查看并告知我们。

     此致,

       David

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

    您好,Joe,

     我注意到忘记 了包含 我启动HFXT的代码。 请参阅以下内容:

    /*启动HFXT */
    MAP_CS_setExternalClockSourceFrequency(048000000);
    
    /*为外围设备/晶体HFXT配置引脚*/
    MAP_GPIO设置外围模块功能输出引脚(GPIO_PORT_PJ,
    GPIO _PIN2 | GPIO _PIN3,GPIO主要模块功能);
    
    map_CS_startHFXT (FALSE);
    
    BIOS_START();
    

    我在BIOS_START之前给它打电话。

     此致,

       David

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

    您好,David:

    非常感谢! 但你说现在不支持外部晶体,这是否意味着我们现在不能使用HFXT模式? 只能使用DCO输出?

    谢谢!

    巴西

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

    目前,如果您要使用HFXT,您需要使用前面介绍的driverlib代码。

    此致,

    David