硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2399|回复: 6
收起左侧

[有问必答] 使用定时器的PWM遇到不理解的现象

[复制链接]

20

主题

56

回帖

116

积分

初级会员

积分
116
发表于 2019-6-21 22:11:02 | 显示全部楼层 |阅读模式
用STM32CUBEMX创建一个工程。内容是以TIM2作为时钟,TIM3以此时钟为基准分别输出4路PWM信号,这样TIM3的PSC=0,APR=3,CCR0=0,CCR1=1,CCR2=2,CCR3=3。用Keil的软仿真显示PWM波形,结果令人不理解。
工程的配置请先看图
QQ截图20190621214505.jpg
图1 选择TIM2使用系统时钟,以CH1输出时钟波形,作为TIM3的参考。TIM3以从方式获得TIM2的TIR1信号作为时钟,4个通道均设置为PWM输出。
QQ截图20190621213044.jpg
图2 使用RC内部时钟作为系统时钟
QQ截图20190621213058.jpg
图3 TIM2的配置
QQ截图20190621213209.jpg
图4 TIM3的配置,一个PWM周期为4个时钟周期,4个通道的CCR分别是0、1、2、3,分别模拟CCR的全部取值范围
QQ截图20190621214432.jpg
图5 软仿真波形。
不明白的地方是,假如CCR由0~3变化,占空比分别为0、25%、50%和100%,缺了75%的状态,获得的直流分量不是线性变化的。
请大家解答一下,谢谢!
t12.rar (8.08 MB, 下载次数: 13)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107424
QQ
发表于 2019-6-22 09:18:25 | 显示全部楼层
我记得你以前不是用标准库搞过,标准库是不是正常的。

可以考虑先不用级联,单独输出PWM是否正常。
HAL库的安装目录有这种方式的例子,可以对比下,是不是CubeMX生成的代码在某个地方有遗漏。
回复

使用道具 举报

20

主题

56

回帖

116

积分

初级会员

积分
116
 楼主| 发表于 2019-6-22 11:33:02 | 显示全部楼层
eric2013 发表于 2019-6-22 09:18
我记得你以前不是用标准库搞过,标准库是不是正常的。

可以考虑先不用级联,单独输出PWM是否正常。

级联只是为了提供一个模拟时钟的波形在屏幕上以方便对比。这个程序的核心是用TIM3的四个通道分别模拟TIM3_CCR分别为0、1、2、3的四种情景,取TIM3_APR为3主要是为了观察数数方便。从Keil跟踪的TIM3各寄存器的数值来看,是没有问题的,这说明结果与CUBE无关。根据用户手册的PWM介绍,
微信截图_20190622112417.jpg
当TIMx_CNT<TIMx_CCRx时PWM信号参考OCxREF为高,否则为低。根据资料描述,当TIM3_CCR为3时,TIM3_CNT分别为0、1、2时,通道输出高电平是对的,而TIM3_CNT计数到3时,TIMx_CNT不小于TIMx_CCRx,此刻通道应该输出低电平才对,这时输出波形应该是占空比75%,而不应是纯高电平。从这一点来看,实际结果与用户手册的描述不一致了,这是疑惑的地方。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107424
QQ
发表于 2019-6-22 11:46:55 | 显示全部楼层
bucker 发表于 2019-6-22 11:33
级联只是为了提供一个模拟时钟的波形在屏幕上以方便对比。这个程序的核心是用TIM3的四个通道分别模拟TIM3 ...

明白你的意思了

实际运行后的寄存器值PSC=0,APR=3,CCR0=0,CCR1=1,CCR2=2,CCR3=3没问题吧。

没问题,那的确与手册描述的不一样了
回复

使用道具 举报

20

主题

56

回帖

116

积分

初级会员

积分
116
 楼主| 发表于 2019-6-22 20:40:18 | 显示全部楼层
eric2013 发表于 2019-6-22 11:46
明白你的意思了

实际运行后的寄存器值PSC=0,APR=3,CCR0=0,CCR1=1,CCR2=2,CCR3=3没问题吧。

周一再找个硬件测试一下吧,暂不能排除Keil模拟器是否存在BUG。
回复

使用道具 举报

20

主题

56

回帖

116

积分

初级会员

积分
116
 楼主| 发表于 2019-6-25 21:14:18 | 显示全部楼层
经硬件验证,是Keil模拟器存在毛病。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107424
QQ
发表于 2019-6-26 09:28:56 | 显示全部楼层
bucker 发表于 2019-6-25 21:14
经硬件验证,是Keil模拟器存在毛病。

谢谢告知最后的原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-31 08:53 , Processed in 0.288276 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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