六路互补PWM

2019-07-21 04:35发布

本帖最后由 ningjing 于 2018-11-20 20:06 编辑

在T1和T4,T3和T6,T5和T2互补输出的条件下,
STM32F103 利用高级定时器TIM1能否实现T1,T2输出PWM波,T4,T5关闭。也就是H-PWM-L-PWM
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
douxiaolingyun
1楼-- · 2019-07-21 05:46
那是不是4,5开启的时候,1,2关闭。如果是这样的话,那我那个配置是可以用的。我做三相逆变的时候就是这么配置的。你所说的这个要求不是由配置决定的。而是看你程序是怎么写的。比如说查表法,这个就是由你定表格决定。
冻结的鱼
2楼-- · 2019-07-21 06:27
这样的话,T5 T4不就在T1 T2的时候导通了?
ningjing
3楼-- · 2019-07-21 08:26
 精彩回答 2  元偷偷看……
冻结的鱼
4楼-- · 2019-07-21 09:50
我之前的做法是使用同或门gate drive 实现你说的H-PWM-L-PWM
douxiaolingyun
5楼-- · 2019-07-21 11:55
用定期1 就可以实现6路互补
douxiaolingyun
6楼-- · 2019-07-21 13:03
我做三相逆变的时候就是用定期1。可以将通道1、2、3全部打开。例如如以下配置
        /* Channel_1   TIM_OCMode_PWM1模式 */         
        TIM_OCInitStructure.TIM_OCMode       = TIM_OCMode_PWM1;                //在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平
        TIM_OCInitStructure.TIM_OutputState  = TIM_OutputState_Enable;          //比较输出使能
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;         //PWM互补输出使能
        TIM_OCInitStructure.TIM_Pulse        = Channel1Pulse;                                //占空比 = TIM_Pulse/TIM_Period;
        TIM_OCInitStructure.TIM_OCPolarity   = TIM_OCPolarity_High;             //有效电平为高电平
        TIM_OCInitStructure.TIM_OCNPolarity  = TIM_OCNPolarity_High;           //互补PWM极性
        TIM_OCInitStructure.TIM_OCIdleState  = TIM_OCIdleState_Set;                   //输出空闲状态
        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;          //PWM互补输出空闲状态
        TIM_OC1Init(TIM1, &TIM_OCInitStructure);   

一周热门 更多>