查看: 1904|回复: 4

[分享] 巧用i.MX RT1170时钟观测器

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32017
    最后登录
    2024-4-9
    发表于 2021-11-4 10:26:44 | 显示全部楼层 |阅读模式
    巧用i.MX RT1170时钟观测器


    i.MX RT1170的CCM模块内置了一个时钟观测器,全称为Clock Observe。它就像示波器一样可以检测时钟的运行频率,在没有示波器的情况或者开发低功耗应用时非常有用。强大的特点,在于它几乎可以测量芯片内几乎所有的时钟源(Clock Source)和时钟根(Clock Root)。


    可测量的时钟源高达22个,基本覆盖了RT1170所有的时钟源。可测量的时钟根高达83个,覆盖了绝大多数的外设时钟根。具体可以测量的时钟源和时钟根列表可以参考 fsl_clock.h的宏定义,搜索关键词Clock OBSERVE SIGNALS即可找到相关的列表。
    14.png
    介绍完基本功能,我们来看一下如何使用这个时钟观测器,也就是如何获取想观测的时钟频率,非常简单,调用下面的API函数接口即可:
    1. uint32_t CLOCK_GetFreqFromObs(uint32_tobsSigIndex, uint32_t obsIndex)
    复制代码
    举个例子,用户想知道现在RT1170的主频,Bus总线的时钟频率,怎么办呢?凉拌!
    1. CLOCK_GetFreqFromObs(CCM_OBS_M7_CLK_ROOT);
    2. CLOCK_GetFreqFromObs(CCM_OBS_M4_CLK_ROOT);
    3. CLOCK_GetFreqFromObs(CCM_OBS_BUS_CLK_ROOT);
    4. CLOCK_GetFreqFromObs(CCM_OBS_BUS_LPSR_CLK_ROOT);
    复制代码
    直接调用的话,看起来不太方便,通过串口把这些数值打印到终端上,看起来就方便很多了。
    1. PRINTF("M7 CLK is %d MHz\r\n", CLOCK_GetFreqFromObs(CCM_OBS_M7_CLK_ROOT) / 1000000);
    2. PRINTF("M4 CLK is %d MHz\r\n", CLOCK_GetFreqFromObs(CCM_OBS_M4_CLK_ROOT) / 1000000);
    3. PRINTF("BUS CLK is %d MHz\r\n", CLOCK_GetFreqFromObs(CCM_OBS_BUS_CLK_ROOT) / 1000000);
    4. PRINTF("BUS LPSR CLK is %d MHz\r\n", CLOCK_GetFreqFromObs(CCM_OBS_BUS_LPSR_CLK_ROOT) / 1000000);
    复制代码
    下图为打印的结果,并不完全是上面代码真实的状态,只是看个意思,我们通过上面的函数即可测量出当前对应时钟根的工作频率。
    15.png
    将函数中的参数进行变换,我们就可以测量自己感兴趣的时钟频率。那么这个观测器在实际中都有哪些作用呢?


    测量时钟的工作频率
    在运行不熟悉代码的时候,不知道别人时钟是怎么配置的时候,获取其工作频率。而不用一行一行翻代码进行工作频率解析。笔者自己经常观测的就是PLL的PFD时钟频率。


    确定时钟源是否开启
    如果把之前提到的函数进行细部探究,便会发现程序中有一行while(),等待测量结束非0的状态。这行代码的功能主要是等待测量结果更新,如果时钟源没开则会在这里一直等下去。
    利用这个特性,就可以判断被测时钟源是否开启。当然这也是双刃剑,调试的时候要记得这个特性,不然程序运行到这里之后就会停下来,一直等下去。
    16.png
    需要注意的点:
    OBS的观测需要依靠外部的32K晶振时钟
    OBS的功能仅限于调试目的,精度上肯定比不上示波器,但是看个大概还是问题不大的。再强调一遍哦,调试目的,精度不保证,就看个大概!
    OBS应该在室温下工作,并且观测的频率不应该超过400MHz。关于400MHz这个限制,笔者在调试的过程中发现,其实大于这个数值也能测准,也能用。但是不负责,不保证,毕竟有这么大个NOTE在RM里写着呢。









    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    91

    主题

    2926

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    7803
    最后登录
    2024-4-23
    发表于 2021-11-4 12:07:36 | 显示全部楼层
    经验,就是缺块实验板
    加油哦
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32017
    最后登录
    2024-4-9
     楼主| 发表于 2021-11-4 13:22:46 | 显示全部楼层
    jundao721 发表于 2021-11-4 12:07
    经验,就是缺块实验板

    我可以在申请点样片来搞搞!
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    91

    主题

    2926

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    7803
    最后登录
    2024-4-23
    发表于 2021-11-4 16:02:38 | 显示全部楼层
    NXP管管 发表于 2021-11-4 13:22
    我可以在申请点样片来搞搞!

    嗯,多申请几片
    加油哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-21 22:25
  • 签到天数: 44 天

    [LV.5]常住居民I

    0

    主题

    110

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    228
    最后登录
    2022-3-21
    发表于 2021-11-16 08:34:45 | 显示全部楼层
    能申请到吗?
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-24 15:45 , Processed in 0.128209 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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