打印
[STM32F1]

TIM1 比较翻转模式下电平输出的随机性

[复制链接]
1012|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengf|  楼主 | 2021-8-6 22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家都知道,STM32F的TIM1具有比较翻转模式,在这种工作模式下,CH1输出的方波与CH2输出的方波存在一个相位差的。
但是,如果我将TIM1_CH1的相位设为基准,只改变TIM1_CH2的比较值来改变相位,却发现CH2的输出电平会乱翻转的现象!
也就是:本应输出010101。。。的波形的,却变成了011010。。。因为有CH1的相位作参考,这种误翻转的现象很容易被发现。
这种电平误翻转的现象是随机发生的。要怎样来防止这种情况的发生呢?

使用特权

评论回复
沙发
pengf|  楼主 | 2021-8-6 22:35 | 只看该作者
尝试过好多办法仍未能解决,是否STM32F不能杜绝这种情况的发生?

使用特权

评论回复
板凳
zhaoxqi| | 2021-8-6 22:38 | 只看该作者
没有看明白什么问题. 是不是跟上升下降双向计数等模式也有关系

使用特权

评论回复
地板
pengf|  楼主 | 2021-8-6 22:40 | 只看该作者
TIM1有一种比较翻转输出功能,就是在计数器与比较器值相同时,将输出电平翻转。也就是由0变成1,或由1变成0.

使用特权

评论回复
5
zhanghqi| | 2021-8-6 22:42 | 只看该作者
本应该这样严格来出牌的

使用特权

评论回复
6
jlyuan| | 2021-8-6 22:47 | 只看该作者
但在改变CH2的比较器的值后,CH1与CH2的就有可能乱套了

使用特权

评论回复
7
zwll| | 2021-8-6 22:50 | 只看该作者
CH1由0变成1时,CH2也应该由0变成1,但CH2也有可能不变还是0.没有一个严格的约束机制。

使用特权

评论回复
8
llljh| | 2021-8-6 22:52 | 只看该作者
那是因为计数器的当前值可能正好在 你改的值和原值之间

使用特权

评论回复
9
pengf|  楼主 | 2021-8-6 22:53 | 只看该作者
实在找不到解决的办法,我只好放弃了这个方案了。

使用特权

评论回复
10
jiajs| | 2021-8-6 22:55 | 只看该作者
不是吧, 换个更新模式就可以了嘛.

使用特权

评论回复
11
songqian17| | 2021-8-6 22:57 | 只看该作者
我也碰到这样的 误动作 怎么解决那 !是否可以通过优先级来 搞的?

使用特权

评论回复
12
pengf|  楼主 | 2021-8-6 23:00 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

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

本版积分规则

718

主题

10129

帖子

3

粉丝