OpenEdv-开源电子网

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

关于定时器主从模式的问题

[复制链接]

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
发表于 2019-3-4 18:30:57 | 显示全部楼层 |阅读模式
10金钱
想要用 stm32的定时器1,定时器2,定时器3,定时器4生成图片中的PWM波,TIM2生成的2MHZ的占空比为50%的PWM波为总触发源,触发生成ICG和SH信号,ICG的下降沿再触发频率为500K的50%的PWM波。大概知道要用到定时器主从模式的知识,但不清楚能不能这样连续触发,想问一下大佬们大概这个要如何实现?

TCD 1304.jpg

最佳答案

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

去ST官网下一份AN4776, 你要求的, 一个定时器加一DMA就可以办到, 查看目录里的Arbitrary wavefomr generation using timer DMA。。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
 楼主| 发表于 2019-3-5 15:45:50 | 显示全部楼层
完成啦 ,最后用的方法还是主从模式,一开始以为很难,后来在网上看到了这篇文章,   http://www.elecfans.com/d/858302.html      
一下子就明白了,之后也还踩了不少坑,但所幸还是做出来了,感谢各位!在此结帖!


stm32 为TCD-304 的驱动信号.PNG
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-4 18:30:58 | 显示全部楼层
BUGMAN 发表于 2019-3-4 21:33
还有这种操作的嘛

去ST官网下一份AN4776, 你要求的, 一个定时器加一DMA就可以办到, 查看目录里的Arbitrary wavefomr generation using timer DMA。。。。。
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-3-4 19:55:14 | 显示全部楼层
看下中文参考手册
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-4 20:57:06 | 显示全部楼层
主从模式是可以的, 如果你用的是M0糸列, 可以直接用红外接口, 更方便
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
 楼主| 发表于 2019-3-4 21:23:33 | 显示全部楼层
edmund1234 发表于 2019-3-4 20:57
主从模式是可以的, 如果你用的是M0糸列, 可以直接用红外接口, 更方便

我用的是 F103c8t6  ,感觉主从模式好麻烦,有没有更简单的方法吗,比如用四个定时器直接生成这四个波,然后彼此调节相位来满足时序图上的要求,这样可以吗?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-4 21:28:41 | 显示全部楼层
BUGMAN 发表于 2019-3-4 21:23
我用的是 F103c8t6  ,感觉主从模式好麻烦,有没有更简单的方法吗,比如用四个定时器直接生成这四个波, ...

方法还是有别的, 但都是需要些技巧
比如用TIM_A定时触发DMA, DMA从表里把数值赋给TIM_B的任何寄存器, 你想咋改动波形都可以
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
 楼主| 发表于 2019-3-4 21:33:36 | 显示全部楼层
edmund1234 发表于 2019-3-4 21:28
方法还是有别的, 但都是需要些技巧
比如用TIM_A定时触发DMA, DMA从表里把数值赋给TIM_B的任何寄存器, ...

还有这种操作的嘛
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-4 21:35:44 | 显示全部楼层
比如是, TIM_A定时触发DMA, DMA从表把数值赋给TIM_B的CCER, 直接把输出口的值锁死为你喜欢的“0”或“1”
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
 楼主| 发表于 2019-3-4 21:53:03 | 显示全部楼层
edmund1234 发表于 2019-3-4 21:35
比如是, TIM_A定时触发DMA, DMA从表把数值赋给TIM_B的CCER, 直接把输出口的值锁死为你喜欢的“0”或“1 ...

受教了,那您觉得我这个驱动信号编写 用哪个方法好呢,我现在想将四个定时器用输出比较模式输出这四个波形,然后调节各个的CCRX来让他们同步,不知道这个行不行。这个已经是我目前的水平能想到的最好的办法了。。
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-9-7
在线时间
30 小时
 楼主| 发表于 2019-3-4 21:54:09 | 显示全部楼层
edmund1234 发表于 2019-3-4 21:43
去ST官网下一份AN4776, 你要求的, 一个定时器加一DMA就可以办到, 查看目录里的Arbitrary wavefomr gen ...

好的 ,我去看看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 21:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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