首页 论坛 原厂专区 NXP(freescale) MCU 【经验分享】kinetis K系列FTMEN非零情况下修改MOD值

发帖 回复

[资料] 【经验分享】kinetis K系列FTMEN非零情况下修改MOD值
520 查看
1 回复
 楼主 | 发布于 2020-10-12 | 只看楼主
分享到:
【经验分享】kinetis K系列FTMEN非零情况下修改MOD

一问题描述
    有些网友反映,在kinetis K(K20D50M)系列的FTMEN非零情况下修改MOD值失败,其实在FTMEN非零情况下修改MOD值是最简单的,它不同于FTMEN=1,需要做MOD寄存器同步更新。只需要直接修改MOD值,等到FTM counter满足了相应的条件之后,就可以更新MOD值。
问题解答
根据用户手册如下:

如果FTMEN=0,则按照PWM的模式有两种情况,CPWM和非CPWM如果是CPWM,则当MOD寄存器写入数据并且FTM的计数值从MODMOD-1的时候,就会实现真实MOD的改变。
如果是非CPWM,则当MOD寄存器写入数据并且FTM的计数值从MODCNTIN的时候,就会实现真实MOD的改变。如果是free-runing,则就是则当MOD寄存器写入数据并且FTM的计数值从0XFFFF0的时候,会实现真实MOD的改变。
为了便于网友测试,我这边使用CWPE做了一个FTM的例程,PWM模式是EPWM,然后通过测试实现MOD的改变。使用的FTM模块是init_FTM.
  测试结果
   测试平台:FRDM_K20D50M
   PWM 模式: EPWM
测试目的:将MOD6000变到5000.
时钟源:系统时钟并且2分频。
程序功能:MOD6000时跑一段时间后将MOD改为5000并查看波形。
测试结果显示,能够将MOD改变到自己想要的值。

1
Test1为改变MOD前读的值,test2为改变MOD后读的值,可以看到成功改到了5000

2
以上是实际测试的波形,可以看到后面的PWM的周期已经改变掉。

本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )
回复 举报

回复于 2020-10-12 沙发

感谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部