打印
[开发工具]

STM32L053 的 PWM 模式下, CounterMode, OC Mode 与 OCPolarity 的关系

[复制链接]
785|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一.前言
研究下 CounterModeOC Mode OCPolarity 的排列组合的关系  

使用特权

评论回复
沙发
可怜的小弗朗士|  楼主 | 2021-11-9 11:00 | 只看该作者
二.排列组合
这里的测试条件有:
CounterMode: TIM_COUNTERMODE_UP, TIM_COUNTERMODE_DOWN;
OC Mode: TIM_OCMODE_PWM1, TIM_OCMODE_PWM2;
OCPolarity: TIM_OCPOLARITY_HIGH, TIM_OCPOLARITY_LOW;
所有的源代码程序都是基于, DMA 控制 STM32L053 的 PWM 脉冲个数的例程。 只是更改不同的排列
组合,看看有什么差别。

使用特权

评论回复
板凳
可怜的小弗朗士|  楼主 | 2021-11-9 11:02 | 只看该作者
2.1 测试
1/CounterMode = TIM_COUNTERMODE_UP
OCMode = TIM_OCMODE_PWM1;
OCPolarity = TIM_OCPOLARITY_HIGH;
显示出来的波形如下图:



测量一下前端比较宽的电平:

发现前端的高电平与后面几个脉冲的高电平的持续时间不一样。
2/CounterMode = TIM_COUNTERMODE_UP;
OCMode = TIM_OCMODE_PWM1;
OCPolarity = TIM_OCPOLARITY_LOW;
显示的波形如下图:

上面的波形符合自己最初的设想,脉冲个数可控制的 PWM。
比较上面测试的 1/和 2/的波形,发现,第一个脉冲宽度不一样,脉冲结束后的电平也不一样。
而参数的设定只是 OCPolarity = TIM_OCPOLARITY_LOW;与 OCPolarity =
TIM_OCPOLARITY_HIGH;的区别。
为什么会有这样的区别呢?
同样的道理,可以测试下只改变 CounterMode = TIM_COUNTERMODE_UP(DOWN);或者只改变
OCMode = TIM_OCMODE_PWM1(PWM2);会发现仍然存在上述一样的差别。


使用特权

评论回复
地板
可怜的小弗朗士|  楼主 | 2021-11-9 11:04 | 只看该作者
2.2 分析原因
这种现象可以总结为这几个参数的搭配有一定的要求,
我这试下来貌似不是能随意搭配使用的。
究其原因进一步分析, 在参阅了数据手册之后发现:  


具体原因分析,电平为什么会多一个宽度? 执行什么语句之后电平发生了跳变?
程序加上示波器单步运行, 发现函数在执行完成这段函数后, 电平发生了跳变。

调用上面函数的是下面的函数指令, 也就是说在电平跳变之后, 定时器才 (__HAL_TIM_ENABLE);才
产生 PWM 波形, 造成了一定指令的延误。 换句话, 定时器的使能与否, 并不影响内部电平的比较输出。

跳变的电平变化如下图:

其实, 这个现象的原因在其他 MCU 系列中也会出现的。 因为电平的比较输出理论上不可能同时与定时
器使能同时打开。
如果先把定时器 Enable,然后再使能捕获通道呢? 程序修改如下图:

运行后的波形如下图: 第一个波形的脉宽有所改善, 但是脉冲的个数确是只有 5 个, 而程序的设定需
要的是 6 个, 还是不能彻底解决问题。

使用特权

评论回复
5
可怜的小弗朗士|  楼主 | 2021-11-9 11:08 | 只看该作者
所以, 综合比较下来, 最后一个电平为高或者为底, 是根据捕获通道的比较电平决定的。 而第一个脉
冲的宽度是由定时器的使能和捕获通道的使能的先后顺序决定的。 需要选择适合的参数去匹配自己的
设计需求。  

使用特权

评论回复
6
paotangsan| | 2021-12-6 12:06 | 只看该作者
这三个是什么呀

使用特权

评论回复
7
renzheshengui| | 2021-12-6 12:07 | 只看该作者
了解了 非常感谢楼主

使用特权

评论回复
8
wakayi| | 2021-12-6 12:08 | 只看该作者
还要注意采样率啊

使用特权

评论回复
9
tpgf| | 2021-12-6 12:10 | 只看该作者
看波形效果还不错

使用特权

评论回复
10
wowu| | 2021-12-6 12:12 | 只看该作者
确实是理论上不能同时

使用特权

评论回复
11
xiaoqizi| | 2021-12-6 12:13 | 只看该作者
不同的组合排列效果不一样啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

478

帖子

0

粉丝