查看: 1678|回复: 1

[已解决] lpc54606调频率失败

[复制链接]
  • TA的每日心情

    2018-11-1 15:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    20
    最后登录
    2019-5-10
    发表于 2018-11-2 15:37:32 | 显示全部楼层 |阅读模式
    用官方工具MCUXpresso Config Tools v4.0
    生成的C文件::


    1. /***********************************************************************************************************************
    2. * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file
    3. * will be overwritten if the respective MCUXpresso Config Tools is used to update this file.
    4. **********************************************************************************************************************/
    5. /*
    6. * How to set up clock using clock driver functions:
    7. *
    8. * 1. Setup clock sources.
    9. *
    10. * 2. Setup voltage for the fastest of the clock outputs
    11. *
    12. * 3. Set up wait states of the flash.
    13. *
    14. * 4. Set up all dividers.
    15. *
    16. * 5. Set up all selectors to provide selected clocks.
    17. */

    18. /* clang-format off */
    19. /* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
    20. !!GlobalInfo
    21. product: Clocks v4.0
    22. processor: LPC54606J512
    23. package_id: LPC54606J512BD100
    24. mcu_data: ksdk2_0
    25. processor_version: 3.0.1
    26. * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
    27. /* clang-format on */

    28. #include "fsl_power.h"
    29. #include "fsl_clock.h"
    30. #include "clock_config.h"

    31. /*******************************************************************************
    32. * Definitions
    33. ******************************************************************************/

    34. /*******************************************************************************
    35. * Variables
    36. ******************************************************************************/
    37. /* System clock frequency. */
    38. extern uint32_t SystemCoreClock;

    39. /*******************************************************************************
    40. ************************ BOARD_InitBootClocks function ************************
    41. ******************************************************************************/
    42. void BOARD_InitBootClocks(void)
    43. {
    44.     BOARD_BootClockRUN();
    45. }

    46. /*******************************************************************************
    47. ********************** Configuration BOARD_BootClockRUN ***********************
    48. ******************************************************************************/
    49. /* clang-format off */
    50. /* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
    51. !!Configuration
    52. name: BOARD_BootClockRUN
    53. called_from_default_init: true
    54. outputs:
    55. - {id: FRO12M_clock.outFreq, value: 12 MHz}
    56. - {id: FROHF_clock.outFreq, value: 96 MHz}
    57. - {id: MAIN_clock.outFreq, value: 180 MHz}
    58. - {id: SYSPLL_clock.outFreq, value: 180 MHz}
    59. - {id: System_clock.outFreq, value: 180 MHz}
    60. settings:
    61. - {id: SYSCON.MAINCLKSELB.sel, value: SYSCON.PLL_BYPASS}
    62. - {id: SYSCON.M_MULT.scale, value: '30', locked: true}
    63. - {id: SYSCON.N_DIV.scale, value: '1', locked: true}
    64. - {id: SYSCON.PDEC.scale, value: '2', locked: true}
    65. - {id: SYSCON_PDRUNCFG0_PDEN_SYS_PLL_CFG, value: Power_up}
    66. sources:
    67. - {id: SYSCON.fro_hf.outFreq, value: 96 MHz}
    68. * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
    69. /* clang-format on */

    70. /*******************************************************************************
    71. * Variables for BOARD_BootClockRUN configuration
    72. ******************************************************************************/
    73. /*******************************************************************************
    74. * Code for BOARD_BootClockRUN configuration
    75. ******************************************************************************/
    76. void BOARD_BootClockRUN(void)
    77. {
    78.     /*!< Set up the clock sources */
    79.     /*!< Set up FRO */
    80.     POWER_DisablePD(kPDRUNCFG_PD_FRO_EN);                   /*!< Ensure FRO is on  */
    81.     CLOCK_AttachClk(kFRO12M_to_MAIN_CLK);                  /*!< Switch to FRO 12MHz first to ensure we can change voltage without accidentally
    82.                                                                 being below the voltage for current speed */
    83.     POWER_SetVoltageForFreq(180000000U);             /*!< Set voltage for the one of the fastest clock outputs: System clock output */
    84.     CLOCK_SetFLASHAccessCyclesForFreq(180000000U);    /*!< Set FLASH wait states for core */

    85.     /*!< Set up SYS PLL */
    86.     const pll_setup_t pllSetup = {
    87.         .pllctrl =  SYSCON_SYSPLLCTRL_SELI(32U) | SYSCON_SYSPLLCTRL_SELP(16U) | SYSCON_SYSPLLCTRL_SELR(0U),
    88.         .pllmdec = (SYSCON_SYSPLLMDEC_MDEC(8191U)),
    89.         .pllndec = (SYSCON_SYSPLLNDEC_NDEC(770U)),
    90.         .pllpdec = (SYSCON_SYSPLLPDEC_PDEC(98U)),
    91.         .pllRate = 180000000U,
    92.         .flags =  PLL_SETUPFLAG_WAITLOCK | PLL_SETUPFLAG_POWERUP
    93.     };
    94.     CLOCK_AttachClk(kFRO12M_to_SYS_PLL);        /*!< Set sys pll clock source*/
    95.     CLOCK_SetPLLFreq(&pllSetup);                 /*!< Configure PLL to the desired value */

    96.     /*!< Set up dividers */
    97.     CLOCK_SetClkDiv(kCLOCK_DivAhbClk, 1U, false);                  /*!< Reset divider counter and set divider to value 1 */

    98.     /*!< Set up clock selectors - Attach clocks to the peripheries */
    99.     CLOCK_AttachClk(kSYS_PLL_to_MAIN_CLK);                  /*!< Switch MAIN_CLK to SYS_PLL */
    100.     SYSCON->MAINCLKSELA = ((SYSCON->MAINCLKSELA & ~SYSCON_MAINCLKSELA_SEL_MASK) | SYSCON_MAINCLKSELA_SEL(0U)); /*!< Switch MAINCLKSELA to FRO12M even it is not used for MAINCLKSELB */
    101.     /* Set SystemCoreClock variable. */
    102.     SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK;
    103. }

    复制代码



    运行之后频率只有12MHZ,正常都有48mhz的,求教哪里出错了?
    我就是在main里运行BOARD_BootClockRUN();

    最佳答案

    请将你在MCUXpresso Config Tools 配置完成的时钟走线截图一下,还有建议在debug时,查看相关寄存器的值,手动计算,进行二次确认
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20124
    最后登录
    2024-5-3
    发表于 2018-11-5 09:20:28 | 显示全部楼层
    请将你在MCUXpresso Config Tools 配置完成的时钟走线截图一下,还有建议在debug时,查看相关寄存器的值,手动计算,进行二次确认
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-4 12:06 , Processed in 0.123504 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表