查看: 5603|回复: 7

[求助] 如何看kinetis系列 MCG内部时钟

[复制链接]

该用户从未签到

7

主题

14

帖子

0

注册会员

Rank: 2

积分
77
最后登录
1970-1-1
发表于 2012-12-18 14:38:55 | 显示全部楼层 |阅读模式
由于想查看kinetis K40 MCG内部某些时钟频率是否准确,故想通过SIM和PORT共同配置,将某些想要查看的时钟信号,输出到指定引脚上,以便用示波器查看所配置时钟是否准确,实现方法如下:
1: 能过PORT模式将指定将引功能配置为CLKOUT模式,即输出内部时钟
     例:  PTC3 这个引脚可通过PORTC_PCR3控制寄存器配为CLKOUT
2:通过SIM_SOPT2控制寄存器中的CLKOUTSEL指定哪种内部时钟输出到CLKOUT引脚上,如下图
   2.JPG
      1.jpg
但是我在操作过程中发现我这款K40 的 SIM_SOPT2 中的CLKOUTSEL部分是末使用的,也就是不能实现选输出哪种时钟的功能,而数据手册上标定是可用的,再查看K40,K60系列的头文件,发现对CLKOUTSEL这个功能末作定义,用CodeWarrior 的PE工具查看也发现CLKOUTSEL部分末使用,各位有没有碰到此情况?
我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

11

主题

288

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
610
最后登录
1970-1-1
发表于 2012-12-18 15:58:36 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

确实有这个问题,之前看别人好像发过类似的帖子。建议更新一下CW。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

79

帖子

0

中级会员

Rank: 3Rank: 3

积分
441
最后登录
1970-1-1
发表于 2012-12-18 18:21:30 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

你的PDF是新版本的,但你现在的头文件是旧版本的……所以没有
看官方AN4445文档更新记录,下载地址:cache.freescale.com/files/32bit/doc/app_note/AN4445.pdf
 

 
 
 
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

79

帖子

0

中级会员

Rank: 3Rank: 3

积分
441
最后登录
1970-1-1
发表于 2012-12-18 18:22:43 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

我们是通过串口模块分频,输出数据,数据的波特率来验证系统时钟和总线时钟频率
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

79

帖子

0

中级会员

Rank: 3Rank: 3

积分
441
最后登录
1970-1-1
发表于 2012-12-18 18:52:04 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

新版本的头文件,确认是有的

/* SOPT2 Bit Fields */
#define SIM_SOPT2_RTCCLKOUTSEL_MASK              0x10u
#define SIM_SOPT2_RTCCLKOUTSEL_SHIFT             4
#define SIM_SOPT2_CLKOUTSEL_MASK                 0xE0u
#define SIM_SOPT2_CLKOUTSEL_SHIFT                5
#define SIM_SOPT2_CLKOUTSEL(x)                   (((uint32_t)(((uint32_t)(x))
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

14

帖子

0

注册会员

Rank: 2

积分
77
最后登录
1970-1-1
 楼主| 发表于 2012-12-19 10:23:21 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

谢谢,野火和版主的回复,实际情况是这样:
1: 我对K40的单片机的SIM_SOPT2控制寄存器中的CLKOUTSEL进行写操作
   是无效的,也就是K40或K60单片机硬件上没实现此功能,而数据手册上
   却有.
2: 用串口去验证有点不准,波特率本身就会有微小差异,所以直接输出  
    FlexBus或Flash时钟到单片机引脚上直接查看,非常准确
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

288

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
610
最后登录
1970-1-1
发表于 2012-12-19 10:32:34 | 显示全部楼层

RE:如何看kinetis系列 MCG内部时钟

第一个问题,这个关键的愿意是旧版的手册和新版的手册之间的冲突。建议用最新版本的手册。更新CW。
第二个问题,IO口的操作,比较是延时,可能会有错误,如果用模块本身的时钟或者PWM模块来测试,相对是比较准确的。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

18

帖子

0

注册会员

Rank: 2

积分
51
最后登录
1970-1-1
发表于 2012-12-21 22:34:42 | 显示全部楼层

这样就可以,经过验证滴哦

    Delay(DelayTime);
    HWREG(SIM_CLKDIV1) = 0x01240000u;
    Delay(DelayTime);
    HWREGB(MCG_C5) = 0x01u;    // 用6MHz晶振时设为0x01,用12MHz晶振时设为0x03
    HWREGB(MCG_C6) = 0x10u;
    HWREGB(MCG_C2) = 0x9Cu;
    HWREGBITB(MCG_C5, 6) = 1;
    Delay(30000u);
    while (!HWREGBITB(MCG_S, 1)) ;
    Delay(DelayTime);
    while (!HWREGBITB(MCG_S, 6)) ;
    Delay(DelayTime);
    HWREGBITB(MCG_C6, 6) = 1;
    Delay(DelayTime);
    while (((HWREGB(MCG_S) >> 2) & 0x03) != 0x03) ;
    Delay(DelayTime);
    HWREGBIT(SIM_SOPT2, 16) = 1;
    Delay(DelayTime);
    HWREGBITB(MCG_C8, 6) = 1;
    HWREGBITB(MCG_C6, 5) = 1;
 
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 09:09 , Processed in 0.103741 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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