OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7222|回复: 18

如何让三个PWM波完全同步?

[复制链接]

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-4-27 22:37:31 | 显示全部楼层 |阅读模式
10金钱
我为了控制一个八选一模拟开关,用三个PWM波作为选路信号,但是可能是启动时间先后有顺序差别,导致三个波稍微错开了,时间无法对上,因为PWM的周期是1us,2us,所以这个差别特别明显,请问有没有解决的方法!?
QQ图片20160427223707.jpg

最佳答案

查看完整内容[请看2#楼]

今天加班太晚了, 明天晚上再帮你搞, 想了几个方法, 如果只由一个定时器来完成, 脉冲输出速度有点高了, 按你的要求,A是1US, 有1MHZ,可能用中断有点吃紧, 明天晚上我试试!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3340
金钱
3340
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-27 22:37:32 | 显示全部楼层
mengheli 发表于 2016-4-29 19:46
要两个波这么完美吻合,但前提是不用主从模式,因为我的三个从通道已经占满了,A的频率是1us,b的是2us。 ...

今天加班太晚了, 明天晚上再帮你搞, 想了几个方法, 如果只由一个定时器来完成, 脉冲输出速度有点高了, 按你的要求,A是1US, 有1MHZ,可能用中断有点吃紧, 明天晚上我试试!
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-27 23:16:45 | 显示全部楼层
使用主从模式可以完美实现无误差,但是!我需要1主4从,而目前硬件条件只有1主3从,怎么办!
回复

使用道具 举报

3

主题

2165

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5759
金钱
5759
注册时间
2013-11-22
在线时间
1208 小时
发表于 2016-4-28 00:46:53 | 显示全部楼层
先设置比较值(CCRx),再打开定时器呢
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-28 22:44:14 | 显示全部楼层
lycreturn 发表于 2016-4-28 00:46
先设置比较值(CCRx),再打开定时器呢

试了一下并无太明显的改善,如果能一主四从就好了,主从模式信号完全没误差,只能牺牲要求不高的一路了
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11475
金钱
11475
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-4-28 23:53:40 | 显示全部楼层

同一个定时器,不可能差这么大。





回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3340
金钱
3340
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-29 01:02:51 | 显示全部楼层
用同一个定时器,边沿对齐模式,哪是确对起点是一样的, 也可用同一组的IO接口, 用一个定时中断, 在中断中用一条指令同时更改需要的IO为低电平或高是平, 用一计数器处理各路脉冲的长短,
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-29 08:51:55 | 显示全部楼层
likunxue 发表于 2016-4-29 01:02
用同一个定时器,边沿对齐模式,哪是确对起点是一样的, 也可用同一组的IO接口, 用一个定时中断, 在中断中用一 ...

你的意思是同一定时器多通道吗?可是同一定时器只能输出频率固定的两个PWM才对吧,我需要的是两个频率不一致的PWM波对齐
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11475
金钱
11475
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-4-29 08:55:47 | 显示全部楼层

考验时序功底的时候到了!

看下手册,看能不能把时序变化一下,用一个定时器来实现。
也许就行。

回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11475
金钱
11475
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-4-29 09:08:13 | 显示全部楼层

另外,
可以考虑定时器串联。


回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3340
金钱
3340
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-29 09:25:01 | 显示全部楼层
mengheli 发表于 2016-4-29 08:51
你的意思是同一定时器多通道吗?可是同一定时器只能输出频率固定的两个PWM才对吧,我需要的是两个频率不 ...

当然, 同一个定时器产生的 PWMI波, 除了脉宽可以不一样外, 频率是一样的!
你的意思是两个频率不一致,但每一次脉冲的起点都要对齐?
你说的是这个意思吗?

比如说, A输出1000个脉冲, B输出750个脉冲, C输出400个脉冲, D输出50个脉冲,需要均匀的分配在 最多的1000个脉冲内按完成, 且要求每输出个数少的脉冲每次输出脉冲时都需要与A输出的脉冲起点对对齐! 是这个样子吗
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-29 15:04:09 | 显示全部楼层
likunxue 发表于 2016-4-29 09:25
当然, 同一个定时器产生的 PWMI波, 除了脉宽可以不一样外, 频率是一样的!
你的意思是两个频率不一致 ...

是分频分出来的,意思就是A的周期是B的两倍,所以A的波形要正好对应两个B,不能有错位
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-29 15:04:50 | 显示全部楼层
xuande 发表于 2016-4-29 09:08
另外,
可以考虑定时器串联。

我现在就是主从模式,一个定时器触发三个,但是我需要四个
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-29 15:32:12 | 显示全部楼层
xuande 发表于 2016-4-28 23:53
同一个定时器,不可能差这么大。

...这很明显是三个定时器啊,一个定时器怎么可能三个频率完全不一样的波
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3340
金钱
3340
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-29 16:32:55 | 显示全部楼层
本帖最后由 likunxue 于 2016-4-29 16:38 编辑
mengheli 发表于 2016-4-29 15:04
是分频分出来的,意思就是A的周期是B的两倍,所以A的波形要正好对应两个B,不能有错位

A的频率要多快?也就是要多少 KHZ,
你用笔画一个需要实的的波形, 给我, 我帮搞一个看看, 这个应该没有哪么难
要求要写清楚
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-29 19:46:06 | 显示全部楼层
likunxue 发表于 2016-4-29 16:32
A的频率要多快?也就是要多少 KHZ,
你用笔画一个需要实的的波形, 给我, 我帮搞一个看看, 这个应该没 ...

要两个波这么完美吻合,但前提是不用主从模式,因为我的三个从通道已经占满了,A的频率是1us,b的是2us。谢谢了!
IMG_1650.JPG
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-4-30 07:59:42 | 显示全部楼层
likunxue 发表于 2016-4-30 03:17
今天加班太晚了, 明天晚上再帮你搞, 想了几个方法, 如果只由一个定时器来完成, 脉冲输出速度有点高了 ...

中断我试过了,是不行的。没关系!无论怎样都感谢您的热心指导!!
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-7-3
在线时间
3 小时
发表于 2016-5-13 14:37:20 | 显示全部楼层
每个定时器都可以设成 外部输入门控的 , 可以把这4个定时器的门控制连到同一个GPIO上, 用这个GPIO同时控制4个定时器.
参考用户手册TIMx and external trigger synchronization 章节
和 库例子 在目录 STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Project\STM32F4xx_StdPeriph_Examples\TIM 下
在路上
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-13 15:22:38 | 显示全部楼层
你妹紫宫初雪 发表于 2016-5-13 14:37
每个定时器都可以设成 外部输入门控的 , 可以把这4个定时器的门控制连到同一个GPIO上, 用这个GPIO同时控制4 ...

非常感谢!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 05:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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