查看: 1257|回复: 1

[原创] TMR时钟模块时钟源为啥纹丝不动?

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
19991
最后登录
2024-4-23
发表于 2019-11-25 14:08:44 | 显示全部楼层 |阅读模式
TMR时钟模块时钟源为啥纹丝不动?
Ø 问题
       客户使用MCUXpresso ConfigTools 自定义了的一个时钟配置(如图1所示),目标是将系统时钟降到25MHz,实现低功耗运行。为了验证时钟配置是否正确,使用MCUXpresso Config Tools生成的clock_config.c和clock_config.h替代inputcapture_outputpwm工程中的clock_config.c和clock_config.h。在debug时,发现QTMR_SOURCE_CLOCK还是跟原先保持一致,都是125MHz,但是用示波器观察从J17_5脚输出的PWM波,发现频率为9.95 KHz,约为原先的1/5。这表明自定义的时钟配置其实是工作的了,但为啥QTMR_SOURCE_CLOCK还是保持125MHz呢?
Untitled.jpg
图1时钟配置
Untitled1.jpg
图2PWM脉冲
Ø 原因解释
         QTMR_SOURCE_CLOCK是通过CLOCK_GetFreq(kCLOCK_IpgClk)函数获得,而该函数是通过获取Periph clock和AHB_PODF,IPG_PODF分频系数后计算所得,在CLOCK_GetPeriphClkFreq函数中,直接返回的Periph clock:500 MHz在ARM_PODF分配系数为1时是正确的,而客户自定义了的时钟配置中,ARM_PODF却为5(如图4所示)。
        所以Periph clock实际应为500/5=100 MHz,而示波器中显示出的PWM脉冲频率也证明了这点。
Untitled2.jpg
图3CLOCK_GetPeriphClkFreq
2019-11-22_16-41-56.jpg
图4ARM_PODF:5
TMR时钟模块时钟源为啥纹丝不动?.pdf (442.81 KB, 下载次数: 0)
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92616
    最后登录
    2024-4-22
    发表于 2019-11-25 20:42:24 | 显示全部楼层
    这坑够大啊~客户自己没搞清楚原理之前就自己修改了……
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-24 00:56 , Processed in 0.113812 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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