查看: 3188|回复: 8

[已解决] KS22外部晶振不工作

[复制链接]

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
发表于 2017-11-16 14:26:22 | 显示全部楼层 |阅读模式
       各位老师好:我在使用的MKS22FN256VLH12  的时候外部晶振不能正常工作,我怀疑我的封装设置不对(采用模板例程),因为是刚开始使用KDS+SDK2.0对对开发环境不太熟悉。 以前习惯了用PE 现在不清楚如何更改芯片的封装设置项,恳请高手协助!


最佳答案

ZTFYCX 发表于 2017-11-16 15:12 我用的是外部4M晶振  模板例程的使用的MCU是 MKS22FN256VLL12 我用的是VLH12 ,KDS 不知在那个位置更改封装 ... 封装类型影响不大,只要引脚分布一样就行,你看看使用内部 ...
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24876
最后登录
2025-7-18
发表于 2017-11-16 14:35:22 | 显示全部楼层
先检查一下电路吧,用示波器看看有没有信号产生?
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:05:08 | 显示全部楼层
小恩GG 发表于 2017-11-16 14:35
先检查一下电路吧,用示波器看看有没有信号产生?

谢谢您的回复,我查了一下没有信号。
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:06:31 | 显示全部楼层
/* Configuration for enter RUN mode. Core clock = 72MHz. */
const clock_config_t g_defaultClockConfigRun = {
    .mcgConfig =
    {
            .mcgMode = kMCG_ModePEE,             /* Work in PEE mode */
            .irclkEnableMode = MCG_IRCLK_DISABLE, /* MCGIRCLK enable */
            .ircs = kMCG_IrcSlow,                /* Select IRC32k */
            .fcrdiv = 0x1U,                        /* FCRDIV is 0 */

            .frdiv = 0x0U,
            .drs = kMCG_DrsMid,         /* Low frequency range */
            .dmx32 = kMCG_Dmx32Default, /* DCO has a default range of 25% */
            .oscsel = kMCG_OscselOsc,   /* Select OSC */

            .pll0Config =
                {
                    .enableMode =MCG_PLL_DISABLE, .prdiv = 0x1U, .vdiv = 0x0CU,
                },
    },
    .simConfig =
    {
            .pllFllSel = SIM_PLLFLLSEL_MCGFLLCLK_CLK,        /* PLLFLLSEL select PLL */
            .er32kSrc = SIM_OSC32KSEL_OSC32KCLK_CLK,         /* ERCLK32K selection, use RTC */
            .clkdiv1 = 0x10300000U, /* SIM_CLKDIV1 */
    },
    .oscConfig =
    {
                    .freq = BOARD_XTAL0_CLK_HZ,

                        .capLoad = (kOSC_Cap2P | kOSC_Cap4P | kOSC_Cap16P),/* Oscillator capacity load: 22pF */
            .workMode = kOSC_ModeExt,
            .oscerConfig =
             {
                   .enableMode = OSC_ER_CLK_DISABLE,
                   #if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER)
                          .erclkDiv = 0U,
                   #endif
                      }
             },
             .coreClock = 72000000U, /* Core clock frequency */
};
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:06:33 | 显示全部楼层
/* Configuration for enter RUN mode. Core clock = 72MHz. */
const clock_config_t g_defaultClockConfigRun = {
    .mcgConfig =
    {
            .mcgMode = kMCG_ModePEE,             /* Work in PEE mode */
            .irclkEnableMode = MCG_IRCLK_DISABLE, /* MCGIRCLK enable */
            .ircs = kMCG_IrcSlow,                /* Select IRC32k */
            .fcrdiv = 0x1U,                        /* FCRDIV is 0 */

            .frdiv = 0x0U,
            .drs = kMCG_DrsMid,         /* Low frequency range */
            .dmx32 = kMCG_Dmx32Default, /* DCO has a default range of 25% */
            .oscsel = kMCG_OscselOsc,   /* Select OSC */

            .pll0Config =
                {
                    .enableMode =MCG_PLL_DISABLE, .prdiv = 0x1U, .vdiv = 0x0CU,
                },
    },
    .simConfig =
    {
            .pllFllSel = SIM_PLLFLLSEL_MCGFLLCLK_CLK,        /* PLLFLLSEL select PLL */
            .er32kSrc = SIM_OSC32KSEL_OSC32KCLK_CLK,         /* ERCLK32K selection, use RTC */
            .clkdiv1 = 0x10300000U, /* SIM_CLKDIV1 */
    },
    .oscConfig =
    {
                    .freq = BOARD_XTAL0_CLK_HZ,

                        .capLoad = (kOSC_Cap2P | kOSC_Cap4P | kOSC_Cap16P),/* Oscillator capacity load: 22pF */
            .workMode = kOSC_ModeExt,
            .oscerConfig =
             {
                   .enableMode = OSC_ER_CLK_DISABLE,
                   #if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER)
                          .erclkDiv = 0U,
                   #endif
                      }
             },
             .coreClock = 72000000U, /* Core clock frequency */
};
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:06:38 | 显示全部楼层
/* Configuration for enter RUN mode. Core clock = 72MHz. */
const clock_config_t g_defaultClockConfigRun = {
    .mcgConfig =
    {
            .mcgMode = kMCG_ModePEE,             /* Work in PEE mode */
            .irclkEnableMode = MCG_IRCLK_DISABLE, /* MCGIRCLK enable */
            .ircs = kMCG_IrcSlow,                /* Select IRC32k */
            .fcrdiv = 0x1U,                        /* FCRDIV is 0 */

            .frdiv = 0x0U,
            .drs = kMCG_DrsMid,         /* Low frequency range */
            .dmx32 = kMCG_Dmx32Default, /* DCO has a default range of 25% */
            .oscsel = kMCG_OscselOsc,   /* Select OSC */

            .pll0Config =
                {
                    .enableMode =MCG_PLL_DISABLE, .prdiv = 0x1U, .vdiv = 0x0CU,
                },
    },
    .simConfig =
    {
            .pllFllSel = SIM_PLLFLLSEL_MCGFLLCLK_CLK,        /* PLLFLLSEL select PLL */
            .er32kSrc = SIM_OSC32KSEL_OSC32KCLK_CLK,         /* ERCLK32K selection, use RTC */
            .clkdiv1 = 0x10300000U, /* SIM_CLKDIV1 */
    },
    .oscConfig =
    {
                    .freq = BOARD_XTAL0_CLK_HZ,

                        .capLoad = (kOSC_Cap2P | kOSC_Cap4P | kOSC_Cap16P),/* Oscillator capacity load: 22pF */
            .workMode = kOSC_ModeExt,
            .oscerConfig =
             {
                   .enableMode = OSC_ER_CLK_DISABLE,
                   #if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER)
                          .erclkDiv = 0U,
                   #endif
                      }
             },
             .coreClock = 72000000U, /* Core clock frequency */
};
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:07:54 | 显示全部楼层
void BOARD_BootClockRUN(void)
{
    CLOCK_SetSimSafeDivs();

    CLOCK_InitOsc0(&g_defaultClockConfigRun.oscConfig);
    CLOCK_SetXtal0Freq(BOARD_XTAL0_CLK_HZ);

    CLOCK_BootToPeeMode(g_defaultClockConfigRun.mcgConfig.oscsel, kMCG_PllClkSelPll0,
                        &g_defaultClockConfigRun.mcgConfig.pll0Config);

   /* CLOCK_SetInternalRefClkConfig(g_defaultClockConfigRun.mcgConfig.irclkEnableMode,
                                  g_defaultClockConfigRun.mcgConfig.ircs, g_defaultClockConfigRun.mcgConfig.fcrdiv);*/

    CLOCK_SetSimConfig(&g_defaultClockConfigRun.simConfig);
//    CLOCK_CONFIG_SetPllFllSelDivFrac(SIM_PLLFLLSEL_DIV_0,
//                                         SIM_PLLFLLSEL_FRAC_0);
    SystemCoreClock = g_defaultClockConfigRun.coreClock;
}
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
226
最后登录
2025-3-12
 楼主| 发表于 2017-11-16 15:12:27 | 显示全部楼层
我用的是外部4M晶振  模板例程的使用的MCU是 MKS22FN256VLL12 我用的是VLH12 ,KDS 不知在那个位置更改封装

回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24876
最后登录
2025-7-18
发表于 2017-11-17 10:42:35 | 显示全部楼层
ZTFYCX 发表于 2017-11-16 15:12
我用的是外部4M晶振  模板例程的使用的MCU是 MKS22FN256VLL12 我用的是VLH12 ,KDS 不知在那个位置更改封装 ...

封装类型影响不大,只要引脚分布一样就行,你看看使用内部时钟能不能起来?
还有进入debug状态看看时钟配置卡在哪一步啊,这样可以把问题范围缩小
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-20 11:51 , Processed in 0.106161 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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