打印
[STM32F3]

PWM不能同步

[复制链接]
1275|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxmmi|  楼主 | 2020-8-27 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用STM32F3的TIM1和TIM8产生8路PWM时,有一个问题,就是最后使能TIM1和TIM8时,由于不能同时使能,所以两个定时器里产生出来的PWM不能同步,有一个相位差。

使用特权

评论回复
沙发
juventus9554| | 2020-8-27 22:50 | 只看该作者

楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
xxmmi|  楼主 | 2020-8-27 22:54 | 只看该作者
用库函数使能如下,发现相位差较大。
TIM_Cmd(TIM1,ENABLE);//使能TIM1
TIM_Cmd(TIM8,ENABLE);//使能TIM8
改用寄存器使能如下:
TIM1->CR1|=0x01;     //使能定时器1
TIM8->CR1|=0x01;     //使能定时器8
使用寄存器使能可以减小相位差,但是不能使两个PWM同步,请问有没有人有办法可以帮我解决这个困难?

使用特权

评论回复
地板
renyaq| | 2020-8-27 22:59 | 只看该作者
用外部信号来触发两个定时器。

使用特权

评论回复
5
ousj| | 2020-8-27 23:04 | 只看该作者
比方T1 配置为外部输入触发,TS=101(TI1FP1)SMS =110(触发模式),配置T1的MMS= 001,T1的使能信号作为TRGO输出到T8.

使用特权

评论回复
6
kangzj| | 2020-8-27 23:10 | 只看该作者
配置T8在T1的TRGO触发下开始运行,配置TS=000,SMS=110

使用特权

评论回复
7
zhuww| | 2020-8-27 23:14 | 只看该作者
其中一个定时器的主模式输出设置为使能,即TIMx_CR2的MMS为001。

使用特权

评论回复
8
tian111| | 2020-8-27 23:18 | 只看该作者
另外一个设置为从模式,方式选触发。TIMx_SMCR的SMS为110。

使用特权

评论回复
9
dingy| | 2020-8-27 23:22 | 只看该作者
这样设置好了后启动第一个定时器时,第二个会自动启动。

使用特权

评论回复
10
香水城| | 2020-8-28 13:35 | 只看该作者

使用特权

评论回复
11
xxmmi|  楼主 | 2020-8-28 22:19 | 只看该作者
/* Select the Master Slave Mode */
  TIM_SelectMasterSlaveMode(TIM1, TIM_MasterSlaveMode_Enable);
  /* Master Mode selection */
  TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Enable);

  TIM_SelectSlaveMode(TIM8, TIM_SlaveMode_Trigger);
  TIM_SelectInputTrigger(TIM8, TIM_TS_ITR0);

运行后T1 MMS=001    T8 SMS=0X06 ;

使用特权

评论回复
12
llljh| | 2020-8-28 22:25 | 只看该作者
波形看看

使用特权

评论回复
13
xxmmi|  楼主 | 2020-8-28 22:28 | 只看该作者

使用特权

评论回复
14
xxmmi|  楼主 | 2020-8-28 22:32 | 只看该作者
一样不同步

使用特权

评论回复
15
xxmmi|  楼主 | 2020-8-28 22:37 | 只看该作者
改成TIM_SelectSlaveMode(TIM8, TIM_SlaveMode_Gated);,就好了

使用特权

评论回复
16
wangzsa| | 2020-8-28 22:43 | 只看该作者
用一个定时器触发2路 pwm

使用特权

评论回复
17
wenfen| | 2020-8-28 22:47 | 只看该作者
能否把配置程序分享一下,谢谢。我现在也是遇到这个问题,改成了门控模式但是TIM8 无输出..

使用特权

评论回复
18
xxmmi|  楼主 | 2020-8-28 22:52 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
19
香水城| | 2020-8-31 23:16 | 只看该作者
xxmmi 发表于 2020-8-28 22:52
其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

其实基本原理就是 主定时器的计数器使能信号作为 从定时器的触发输出, 从定时器配置在 触发从模式。
这样就可以保证同步启动,不会产生相差。

使用特权

评论回复
20
天意无罪| | 2020-9-1 08:12 | 只看该作者
STM32的两个Timer定时器同步模式和两个ADC同步采样模式的工作原理类似,就是一主一从,主的使能信号同时作为从的使能信号,继而实现同步运行功能。

使用特权

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

本版积分规则

369

主题

4278

帖子

2

粉丝